01.01.2015 Views

device_driver-08.pdf(1.9MB)

device_driver-08.pdf(1.9MB)

device_driver-08.pdf(1.9MB)

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!