Я работаю в ядре, и я пытаюсь сделать системный вызов, который принимает раздел в качестве ввода (т.е. /dev/sda1
), а затем печатает каждый файл в файловой системе, используя printk()
.
Я вхожу в раздел (т.е. /dev/sda1
) и помещаю printk()
в этот системный вызов для печати.
Сначала я попытался сделать это с процессом, потому что, если я прав, каждый процесс представлен task_struct
, и я попытался получить доступ к файлам с files_struct
. Но проблема в том, что у меня есть только файловые дескрипторы открытых файлов, а не все файлы.
Итак, я хочу передать имя раздела и printk()
имена всех файлов.
Например:
Я ввожу путь /dev/sda1
в качестве аргумента и предположим, что внутри этого раздела у меня есть файлы a.txt
и b.txt
, поэтому системный вызов должен вывести a.txt
и b.txt
.
Подпись будет такой:
asmlinkage long sys_acall(char *partition_name);