도와주세요!!
글 수 15,339
2002.12.19 00:09:34 (*.219.41.173)
6672
(읽으시는분이 없어서 제목을 고쳤습니다... ^^)
답변은 감사합니다.
그런데... 제가 궁굼한건...
static struct file_operations xxx_fops =
{
open : xxx_open,
release : xxx_release,
read : xxx_read,
write : xxx_write,
ioctl : xxx_ioctl,
poll : xxx_poll,
};
에서 어떻게 open이 xxx_open이라고 할수 있는지를 알고싶은데요...
어플리케이션에서 process가 하나 생성되가지구 task_struct를 만들잖아요...
여기어 어떤 디바이스를 건드려야 한다면 task_struct의 files를 통해서
files_struct의 fd[]를 하나 만들어 디바이스를 건들게 되고...
이쪽에서 file 이라는 구조체를 통해서 f_dentry로 흘러가고...
f_dentry를 통해서 inode를 디바이스 드라이버랑 연결하는것까지는 알겠는
데... f_op에 open,release,read,...들의 함수들이랑
디바이스 드라이버의 xxx_open, xxx_release, xxx_read...들이랑 연결되는 부
분을 커널 소스에서 찾을수가 없네요...
이게 어떻게 연결되는거죠? (아는게 없어서...T.T)
(질문 내용이 이곳의 게시판과 잘 어울리지 않을까 걱정이네요...)
답변은 감사합니다.
그런데... 제가 궁굼한건...
static struct file_operations xxx_fops =
{
open : xxx_open,
release : xxx_release,
read : xxx_read,
write : xxx_write,
ioctl : xxx_ioctl,
poll : xxx_poll,
};
에서 어떻게 open이 xxx_open이라고 할수 있는지를 알고싶은데요...
어플리케이션에서 process가 하나 생성되가지구 task_struct를 만들잖아요...
여기어 어떤 디바이스를 건드려야 한다면 task_struct의 files를 통해서
files_struct의 fd[]를 하나 만들어 디바이스를 건들게 되고...
이쪽에서 file 이라는 구조체를 통해서 f_dentry로 흘러가고...
f_dentry를 통해서 inode를 디바이스 드라이버랑 연결하는것까지는 알겠는
데... f_op에 open,release,read,...들의 함수들이랑
디바이스 드라이버의 xxx_open, xxx_release, xxx_read...들이랑 연결되는 부
분을 커널 소스에서 찾을수가 없네요...
이게 어떻게 연결되는거죠? (아는게 없어서...T.T)
(질문 내용이 이곳의 게시판과 잘 어울리지 않을까 걱정이네요...)