Creación de entrada proc usando proc_create_data en la versión del kernel 3.10 y superiores.

En el post «Creación de sólo lectura entrada proc en las versiones del núcleo por encima de 3,10.» vimos cómo crear una entrada proc utilizando la función proc_create.

Nota: El siguiente módulo sólo es válida de la versión del kernel 3.10 y superiores.

Otra de las funciones disponibles en la versión del kernel 3.10 y por encima de la creación de la entrada proc es proc_create_data que se define en proc_fs.hs como />
struct proc_dir_entry * proc_create_data (const char * nombre, el modo umode_t, struct proc_dir_entry * matriz, file_operations const struct * proc_fops, datos void *);

¿Dónde />
nombre: El nombre de la entrada
proc modo: El modo de acceso para proc entrada
padres: El nombre del directorio principal dentro de / proc
proc_fops: La estructura en la que se crearán las operaciones de archivo para la entrada proc.
datos: Si hay datos que debe transmitirse a la entrada proc.

Por ejemplo, para crear una entrada de proc por el nombre de «hola» en / proc se definirán las funciones anteriores son

proc = proc_create_data (» hola «, 0, NULL, & proc_fops, msg);

Junto con la creación de la entrada también están pasando una función al entrada proc en el uso de la porinter «msg».

Ahora tenemos que crear la estructura file_operations proc_fops en el que podemos asignar la función de lectura para la entrada proc.

A continuación tenemos que añadir la función read_proc que dará al espacio de usuario los datos que queremos exportar desde el espacio del núcleo.

Para acceder a los datos en el proc_dir_structure tenemos que hacer uso de la función PDE_DATA a la que pasamos el puntero de archivo. La función a su vez returs un puntero a los datos que se transmite a través de la creación de la entrada proc.

El mensaje que queremos mostrar se definirá en el create_new_proc_entry función en la que también vamos a llamar a la fuction para la creación de la entrada proc.

El init y limpiar las funciones del módulo son

int proc_init (void) {create_new_proc_entry (); return 0;} void proc_cleanup (void) {remove_proc_entry («hola», NULL);}

El código completo para la creación de la entrada proc usando proc_create_data es

proc_read_data.c

El makefile para la compilación de los módulos son

Compile y cargue el módulo usando

$ make $ sudo insmod proc_read_3_10.ko

Podemos ver la salida usando el comando cat

Artículos relacionados:.

La creación de sólo lectura entrada proc en las versiones del núcleo por encima de 3,10

Para la versión de kernel antes />
3.10 Creación de una entrada proc – 1

Creación de una entrada de lectura proc />

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *