Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
초기화와 종료 처리<br />
249<br />
Open() 함수 호출 시 초기화 처리<br />
<br />
<br />
<br />
<br />
<br />
디바이스 드라이버가 처음 열렸을 때 하드웨어 초기화<br />
디바이스 드라이버의 동작에 필요한 에러 체크<br />
부번호에 대한 처리가 필요한 경우 파일 오퍼레이션 구조체의 갱<br />
신<br />
프로세스별 메모리 할당과 초기화<br />
모듈의 사용 횟수 증가<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver<br />
초기화와 종료 처리<br />
250<br />
디바이스 드라이버의 release() 함수<br />
<br />
<br />
<br />
응용 프로그램에서 하드웨어의 제어가 끝나 디바이스 드라이버를 사용할<br />
필요가 없다면 디바이스 파일을 닫아야 한다<br />
if (fd >= 0) close(fd);<br />
정상적으로 열린 디바이스 파일을 close() 함수를 이용해 닫으면, 등록된<br />
디바이스 드라이버의 file_operations 구조체의 release 필드에 선언된 함<br />
수가 호출 된다<br />
struct file_operations call_fops =<br />
{<br />
…<br />
release : xxx_release,<br />
…<br />
}<br />
file_operations 구조체의 release 필드에 대입되는 함수 형식<br />
int xxx_release(struct inode *inode, struct file *filp)<br />
{<br />
// close 시처리내용<br />
return 0;<br />
}<br />
http://eoslab.ssu.ac.kr<br />
Linux Device Driver