도와주세요!!
글 수 15,339
2003.12.29 23:10:52 (*.90.196.171)
6681
며칠동안 여기 저기 뒤져봤지만 도저히 방법을 모르겠어서 이렇게 질문을 합니
다.
디바이스 드라이버에 새로운 함수를 만들고 그 디바이스를 사용하는 어플리케
이션에서 그 함수를 호출하는 법좀 알려주세요.
static struct file_operations io_fops =
{
open : io_open,
release : io_release,
read : io_read,
write : io_write,
ioctl : io_ioctl,
};
이 구조체에 새로운 함수명을 넣으면 컴파일시 에러가 납니다. (함수명은 제
가 만든 함수명... 이렇게 하는게 아닌가여? ㅡㅡ;)
제가 이해한 방식은 어플리케이션에서 write같은 경우는
unistd.h 파일에 정의된 write라는 함수가 어떤 과정을 통해 저 위에 구조체
에 정의된 write : io_write 이부분에 의해 io_write라는 함수를 호출해 주
는것 으로 이해를 했습니다... 이것도 맞는것인지 모르겠습니다.
그리고 어플리케이션에서는 또한 어떻게 해야 그 함수명을 그대로 쓸수 있는지
도 궁금합니다. 디바이스 드라이버 헤더파일을 인클루드 해도 계속 정의가 안
된 함수라고 나옴니다. 디바이스 드라이버 헤더파일에 함수원형을 정의 해 줘
도 말입니다... 이거 어떻게 해야 하는건지....
그리고 추가로 SIGIO라는 것을 이용해서 인터럽트신호를 어플리케이션에서 받
을수 있다고 해서 어디선가 보고 대략적으로 프로그램을 해봤는데 안됨니다.
ㅠㅠ
컴파일은 되지만.... ㅠㅠ
이걸 해결하려다보니 위에 질문을 드리게 되었습니다.
제가 만든 소스는 파일에 추가하겠습니다. (보드를 샀을때 준 소스 수정한것)
그럼 고수님들의 답변 부탁드립니다~~ ^^
다.
디바이스 드라이버에 새로운 함수를 만들고 그 디바이스를 사용하는 어플리케
이션에서 그 함수를 호출하는 법좀 알려주세요.
static struct file_operations io_fops =
{
open : io_open,
release : io_release,
read : io_read,
write : io_write,
ioctl : io_ioctl,
};
이 구조체에 새로운 함수명을 넣으면 컴파일시 에러가 납니다. (함수명은 제
가 만든 함수명... 이렇게 하는게 아닌가여? ㅡㅡ;)
제가 이해한 방식은 어플리케이션에서 write같은 경우는
unistd.h 파일에 정의된 write라는 함수가 어떤 과정을 통해 저 위에 구조체
에 정의된 write : io_write 이부분에 의해 io_write라는 함수를 호출해 주
는것 으로 이해를 했습니다... 이것도 맞는것인지 모르겠습니다.
그리고 어플리케이션에서는 또한 어떻게 해야 그 함수명을 그대로 쓸수 있는지
도 궁금합니다. 디바이스 드라이버 헤더파일을 인클루드 해도 계속 정의가 안
된 함수라고 나옴니다. 디바이스 드라이버 헤더파일에 함수원형을 정의 해 줘
도 말입니다... 이거 어떻게 해야 하는건지....
그리고 추가로 SIGIO라는 것을 이용해서 인터럽트신호를 어플리케이션에서 받
을수 있다고 해서 어디선가 보고 대략적으로 프로그램을 해봤는데 안됨니다.
ㅠㅠ
컴파일은 되지만.... ㅠㅠ
이걸 해결하려다보니 위에 질문을 드리게 되었습니다.
제가 만든 소스는 파일에 추가하겠습니다. (보드를 샀을때 준 소스 수정한것)
그럼 고수님들의 답변 부탁드립니다~~ ^^