You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
초기화와 종료 처리<br />
265<br />
struct file *filp<br />
<br />
struct file의 형태<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver<br />
초기화와 종료 처리<br />
266<br />
<br />
자주 사용되는 필드<br />
• unsigned int f_flags;<br />
• 응용 프로그램에서 디바이스 파일을 열었을 때 flags에 설정된 값<br />
• O_RDONLY : 읽기 전용 처리<br />
• O_NONBLOCK, O_NDELAY : 블록 처리를 수행 안함<br />
• O_SYNC : 써넣는 데이터는 반드시 디바이스에 적용<br />
• loff_t f_pos;<br />
• f_pos 필드 변수는 현재의 읽기/쓰기 위치를 담으며, read(), write(),<br />
llseek()과 같이 읽기/쓰기의 위치를 변경할 수 있는 함수에 의해 변경<br />
• void *private_data;<br />
• 디바이스 드라이버에서 프로세스가 함수간 메모리를 공유할 필요가 있<br />
을 때 사용<br />
• struct file_operations *f_op;<br />
• 부번호에 따라 다른 응답을 처리해야 할 경우<br />
• open() 함수 처리시에 이 필드는 직접 변경하여 부번호에 따라 다르게 동<br />
작하는 디바이스 드라이버 작성 가능<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver