Linux/Device Driver

I/O 맵드 입, 출력 처리 함수

aucd29 2013. 9. 26. 16:38
#include <asm/io.h> 를 소스에 포함 시켜야 한다.

//
// 하드웨어에서 데이터를 읽기
//
inb(unsigned short port);
inw(unsigned short port);
insb(unsigned short port, void *addr, unsigned long count);
insw(unsigned short port, void *addr, unsigned long count);
insl(unsigned short port, void *addr, unsigned long count);

//
// 하드웨어에 데이터를 써 넣는다.
//
outb(unsigned char data, unsigned short port);
outw(unsigned char data, unsigned short port);
outl(unsigned long data, unsigned short port);
outsb(unsigned short port, void *addr, unsigned long count);
outsw(unsigned short port, void *addr, unsigned long count);
outsl(unsigned short port, void *addr, unsigned long count);

이곳에 b, w, l 은 각각 byte(8bit), word(16bit), long(32bit)의
의미로 처리되는 데이터의 크기를 나타낸다.