기존 FreeBSD 장치 드라이버에 몇 가지 코드를 추가하려고하는데 사용자 공간에서 드라이버로 char*
을 전달하려고합니다. 그래서 같은 _IOW
매크로를 사용하여 사용자 정의 ioctl()
명령을 구현했습니다 : #define TIBLOOMFILTER _IOW(0,253,char*)
FreeBSD에서 ioctl() 명령을 구현합니다.
내 호출은 다음과 같은 : 내가 ioctl()
를 호출 할 때
int file_desc = open("/dev/ti0", O_RDWR);
ioctl(file_desc, TIBLOOMFILTER, (*filter).getBitArray());
close(file_desc);
내가 얻을 : 오류 메시지로 Inappropriate ioctl for device
. 어떤 일이 잘못되었을 수도 있습니다. 내 장치 드라이버에서 동일한 매크로를 정의하고 case
문에 추가했습니다.
드라이버에 ioctl 처리기 코드를 게시하십시오. 그리고 드라이버 등록도 게시하십시오. – osgx