디바이스 드라이버
글 수 70
2011.01.18 19:58:30 (*.138.143.120)
33280
디바이스 드라이버를 작성하다 보면 file_operations 함수를 작성하게 된다
open(), release() 함수는 인자중에 struct inode *inode 가 있어 이곳에서 다음과 같이 마이너 번호를 얻는다.
MINOR(inode->i_rdev)
하지만 기타의 함수에는 inode 인자가 없다. 이때 인자중 반드시 있는 struct file *filp 를 이용하여 마이너 번호를 구할 수 있다.
MINOR(file->f_path.dentry->d_inode);
또하나 MINOR 매크로 보다는 아래의 inline 매크로를 사용하도록 하자
iminor(inode->i_rdev);
iminor(file->f_path.dentry->d_inode);
iminor() 함수도 동일하게 MINOR() 를 호출하지만 나중을 위해서 이렇게 사용하는게 좋을 듯 하다.
iminor을 사용할때는
iminor(inode);
iminor(file->f_dentry->d_inode);
========================================
linux/fs.h
...