2014-01-24 2 views
0

У меня есть вопросы о том, как file_operations в файле структура определены в Linux ядреО работе файлов в Linux ядре

vfs_read() звонков

ret = file->f_op->read(file, buf, count, pos); 

Я знаю, что это чтение является указателем на функцию, которая определяется в некотором коде драйвера, но есть ли способ найти, где он фактически определен?

+0

См. Http://stackoverflow.com/questions/4653100/struct-file-in-linux-driver –

+1

Это зависит от типа файловой системы, в котором находится файл. –

+0

Это «указатель на функцию», который * указывает на функцию, которая * определена в некотором коде драйвера » –

ответ

1

VFS - это «виртуальная файловая система». Это абстракция по основным данным файловой системы, которая, конечно, сильно отличается.

f_op - это набор file_operations, которые зависят от того, на какую файловую систему file.

Например, посмотрите на ext2_file_operations, где файловая система ext2 предоставляет ядру, которая функционирует для его файловых операций.

Если вы хотите больше узнать, найдите ссылки на struct file_operations в каталоге fs/.

+0

спасибо. Я нашел это. он определен здесь http://lxr.free-electrons.com/source/fs/read_write.c?v=3.1;a=arm#L322 – jiawen

Смежные вопросы