도와주세요!!
글 수 15,339
2003.12.31 08:35:49 (*.186.46.87)
6664
안녕하세요..
ioctl에 대한 설명을 하기는 힘드네요...
참고할만한 곳을 가르켜드릴께요..[ http://www.falinux.com/win/07_driver/010_io/index.htm ]
저희 홈페이지의 강좌 >> 디바이스드라이버 >> 8) 디바이스 드라이버 예제 >> strongARM의 데이터
버스를 이용한 LED와 스위치의 I/O 제어의 소스 내용을 보시면 어플리케이션에서 ioctl관련 부분이
주석처리되어 있는것을 볼 수 있습니다.
또한 io.h 헤더파일에 보시면
// ioctl 함수의 command
#define MAGIC_SAMPLE_IO 'i'
#define SAMPLE_IO_READ _IOR( MAGIC_SAMPLE_IO, 1, long )
#define SAMPLE_IO_WRITE _IOW( MAGIC_SAMPLE_IO, 2, long )
위와 같이 되어있습니다....
즉, 어플에서 읽기 위해서는 ioctl( dev, SAMPLE_IO_READ, 0 ); 를 사용합니다.
dev는 장치 드라이버가 되겠죠..../dev/dio
SAMPLE_IO_READ는 io.h에 정의 되어 있습니다.
0 : 디바이스 드라이버에 넘겨줄 값입니다. io.h에 long형으로 선언되어 있습니다..
이렇게 어플에서 읽기 위해서 넘겨받은 인자들은 디바이스 드라이버에서
int io_ioctl( struct inode *minode, struct file *mfile, unsigned int cmd, unsigned long arg )
{
switch (cmd)
{
case SAMPLE_IO_READ : // 어떤일을 수행한다.
return 0;
case SAMPLE_IO_WRITE : // 어떤일을 수행한다.
return 0;
}
return -EINVAL;
}
를 수행하게 됩니다.......
도움이 될지는 모르겠지만 디바이스 드라이버에 관한 강좌는 인터넷을 돌아다니면 찾아보시면 됩니다.
또한 리눅스 디바이스 드라이버라는 책을 보시면 이에 관한 내용도 있습니다.
그럼 수고하세요..
ioctl에 대한 설명을 하기는 힘드네요...
참고할만한 곳을 가르켜드릴께요..[ http://www.falinux.com/win/07_driver/010_io/index.htm ]
저희 홈페이지의 강좌 >> 디바이스드라이버 >> 8) 디바이스 드라이버 예제 >> strongARM의 데이터
버스를 이용한 LED와 스위치의 I/O 제어의 소스 내용을 보시면 어플리케이션에서 ioctl관련 부분이
주석처리되어 있는것을 볼 수 있습니다.
또한 io.h 헤더파일에 보시면
// ioctl 함수의 command
#define MAGIC_SAMPLE_IO 'i'
#define SAMPLE_IO_READ _IOR( MAGIC_SAMPLE_IO, 1, long )
#define SAMPLE_IO_WRITE _IOW( MAGIC_SAMPLE_IO, 2, long )
위와 같이 되어있습니다....
즉, 어플에서 읽기 위해서는 ioctl( dev, SAMPLE_IO_READ, 0 ); 를 사용합니다.
dev는 장치 드라이버가 되겠죠..../dev/dio
SAMPLE_IO_READ는 io.h에 정의 되어 있습니다.
0 : 디바이스 드라이버에 넘겨줄 값입니다. io.h에 long형으로 선언되어 있습니다..
이렇게 어플에서 읽기 위해서 넘겨받은 인자들은 디바이스 드라이버에서
int io_ioctl( struct inode *minode, struct file *mfile, unsigned int cmd, unsigned long arg )
{
switch (cmd)
{
case SAMPLE_IO_READ : // 어떤일을 수행한다.
return 0;
case SAMPLE_IO_WRITE : // 어떤일을 수행한다.
return 0;
}
return -EINVAL;
}
를 수행하게 됩니다.......
도움이 될지는 모르겠지만 디바이스 드라이버에 관한 강좌는 인터넷을 돌아다니면 찾아보시면 됩니다.
또한 리눅스 디바이스 드라이버라는 책을 보시면 이에 관한 내용도 있습니다.
그럼 수고하세요..