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 />

227<br />

문자 디바이스 드라이버의 구성<br />

<br />

<br />

<br />

<br />

<br />

<br />

커널 소스 헤더 파일<br />

문자 디바이스 드라이버 구현을 위해 저수준 파일 입출력에 대응<br />

하는 file_operations 구조체에 등록할 함수<br />

인터럽트를 사용하는 하드웨어 장치라면 인터럽트 함수 서비스<br />

함수<br />

file_operations 변수<br />

문자 디바이스 드라이버를 등록하는 모듈 초기화 함수<br />

문자 디바이스 드라이버를 제거하는 모듈 종료 함수<br />

http://eoslab.ssu.ac.kr<br />

Linux Device Driver<br />

문자 디바이스 드라이버의 등록과 해제 및 구성<br />

228<br />

디바이스 드라이버와 커널간의 통신<br />

<br />

<br />

<br />

문자 드라이버 : chrdevs[] 테이블 이용<br />

블록 드라이버 : blkdevs[], blk_dev[] 테이블 이용<br />

네트웍 드라이버 : <strong>device</strong> 구조 이용<br />

Major number<br />

0<br />

MAX_CHRDEV - 1<br />

http://eoslab.ssu.ac.kr<br />

chrdevs[]<br />

/* fs/<strong>device</strong>s.c */<br />

1<br />

struct <strong>device</strong>_struct { file_operations<br />

name;<br />

2<br />

lseek<br />

fops;<br />

read,<br />

} chrdevs[]; write,<br />

readdir<br />

poll,<br />

ioctl,<br />

mmap,<br />

open,<br />

flush,<br />

release<br />

fsync,<br />

…..<br />

…<br />

Linux Device Driver

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

Saved successfully!

Ooh no, something went wrong!