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