Вопрос

I want to save some information in a kernel module. I have seen similar question to mine here in stackoverflow, however mine is slightly different. Assuming I am using this code to write in a /proc file. How should I call it inside one of my kernel module? I have a custom kernel module called mymodule which is not the main file (does not have init_module()) inside it the below function is called. In this case what should be the input value to the function like value of file? Basically is it possible to create a /proc file inside a kernel module?

int procfile_write(struct file *file, const char *buffer, unsigned long count, void *data)

Это было полезно?

Решение

It is definitely possible to add a proc entry in a kernel module but you might be misunderstanding how file handling works in the kernel.

When you create a file in proc, you're not actually 'creating' a file like you would in userspace. You're registering a few callbacks that are called when userspace programs request your file.

That means, when userspace programs request a read, your file read callback has to provide data. When a userspace program requests a write, your file write callback has to handle it.

If you want to use it like a conventional file to store information, you have to allocate the required space and have your read callback copy data from there.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top