커널에서 device read 하는것에대한 질문입니다...
글쓴이: rabbitkang / 작성시간: 일, 2004/10/10 - 6:46오전
character device 를 모듈로 적재하고
이 device를 open 하고 write하는것 은 되는데..
read하는것은 계속 system 이 멈춰버리는데..
왜 그런거죠??
이 함수를 라이브러리 함수로 해서 같은 형식으로 read하는데.. 왜 안되는지...
도움좀 부탁 합니다...
혹시 버전이 up 된건 아닌지..
커널 2.4를 사용하구 있구요...
/proc 같은 경우는 2.2 하고 2.4 버전하고 read 가 다르게 되있더라구요..
이것땜.. 3일 삽질..^^;;
아시는분 도움좀 부탁합니다...
int klib_fread(char *buf, int len, struct file *filp)
{
int readlen;
mm_segment_t oldfs;
if (filp == NULL)
return -ENOENT;
if (filp->f_op->read == NULL)
return -ENOSYS;
if (((filp->f_flags & O_ACCMODE) & O_RDONLY) != 0)
return -EACCES;
oldfs = get_fs();
set_fs(KERNEL_DS);
readlen = filp->f_op->read(filp, buf, len, &filp->f_pos);
set_fs(oldfs);
return readlen;
}
Forums:
댓글 달기