2010-02-25 2 views
0

나는이 작업을 수행하는 몇 가지 예제 코드를 본 적이 :proc_entry-> write_proc에 인수가있는 ioctl을 사용한다고 알려주시겠습니까?

proc_entry->read_proc = module_read; 
proc_entry->write_proc = module_write; 

하지만, 내 모듈에서, 내가 사용했던 IOCTL을 대신 읽기 및 쓰기. 읽기

int mytimer_ioctl(struct inode *inode, struct file *file, unsigned int fcn, unsigned long args) 

, "FCN은"IOCTL_GET_TIMER, 그리고 쓰기 위해, 내 "FCN"IOCTL_SET_TIMER 내입니다 : 여기 내 IOCTL 함수 프로토 타입입니다. 어쨌든

는 다음과 같이 할 수 있습니다 :

proc_entry->read_proc = module_ioctl(IOCTL_GET_TIMER); 
proc_entry->write_proc = module_ioctl(IOCTL_SET_TIMER); 

을 그러나 "인수"인수를 전달하지?

또는 더 쉬운 방법은 module_read 및 module_write 함수를 작성하고 그 함수에 ioctl을 호출하는 것입니다.

도움 주셔서 감사합니다.

답변

1

이 작업을 수행 할 방법이 없습니다. 전달 기능을 구현하기 만하면됩니다.

+0

감사합니다, 나는 그것에 대해 연구 할 것입니다 ... 그러나, 나는 ioctl 호출이 * inode와 * file 입력을 필요로하기 때문에 어떻게 더 이상 전달할 수 있을지 확신하지 못합니다. – hahuang65

+0

읽기 및 쓰기 호출은 "struct file * pfil"을 사용합니다. 그렇지 않습니까? 그렇다면 나는 그것이 "filp-> f_dentry-> d_inode"라고 믿는다. –

관련 문제