You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
초기화와 종료 처리<br />
247<br />
<br />
디바이스 파일이 있고 디바이스 파일의 주번호에 해당하는 디바<br />
이스 드라이버가 커널에 등록된 상태이면, 디바이스 드라이버의<br />
file_operations 구조체의 open 필드에 선언된 함수가 호출된다<br />
struct file_operations call_fops =<br />
{<br />
…<br />
open : xxx_open,<br />
…<br />
}<br />
<br />
file_operations 구조체의 open 필드에 대입되는 함수 형식<br />
int open(struct inode *inode, struct file *filp)<br />
{<br />
int err = 0;<br />
// open 시 처리 내용들<br />
…<br />
return error;<br />
}<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver<br />
초기화와 종료 처리<br />
248<br />
<br />
<br />
Error<br />
• ENODEV<br />
• ENOMEM<br />
• EBUSY<br />
: 하드웨어가 존재하지 않는다<br />
: 커널 메모리가 부족하다<br />
: 디바이스가 이미 사용중이다<br />
에러 값이 양수이므로 에러를 반환시에는 음수로 변환한 값을 사<br />
용<br />
• return –ENODEV;<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver