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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

초기화와 종료 처리<br />

259<br />

read() 함수의 구현<br />

<br />

<br />

buf에 전달되는 값은 응용 프로그램에서 전달한 버퍼의 주소이므<br />

로 디바이스 드라이버에서 직접적으로 사용 불가능<br />

커널 메모리 공간과 사용자 메모리 공간의 이동을 위한 함수<br />

• copy_ to_ user(to, from, n)<br />

• 커널 메모리 from을 사용자 메모리 to로 n만큼 복사<br />

• put_user(x, ptr)<br />

• x 변수값을 ptr의 사용자 메모리값에 대입<br />

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

Linux Device Driver<br />

초기화와 종료 처리<br />

260<br />

<br />

read() 함수에서 하드웨어를 다룰 경우에 대한 함수<br />

• inb, inw, inl, insb, insw, insl<br />

• outb, outw, outl, outsb, outsw, outsl<br />

• readb, readw, readl<br />

• writeb, writew, writel<br />

• memset_io, memcpy_fromio, memcpy_toio<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!