Editando e recompilando as estruturas de dados do kernel do Ubuntu

0

Estou tentando adicionar uma nova operação de dispositivo de bloco a

struct block_device_operations {
 ...
 int (*open) (struct block_device *, fmode_t);
 ...
};

Qual é definido em Linux-src/include/linux/blkdev.h e

Linux-src/debian/linux-headers-4.4.0-97/usr/src/linux-headers-4.4.0-97/include/linux/blkdev.h.

Eu adicionei minhas novas operações a esses arquivos

struct block_device_operations {
 ...
 int (*open) (struct block_device *, fmode_t);
+  long mynewdiskop (struct block_device *, fmode_t, long size, char *val); 
 ...
};

Agora estou tentando usar isso no meu LKM.

static const struct block_device_operations knap_fops = {
        .owner =                THIS_MODULE,
        .rw_page =              knap_rw_page,
        .ioctl =                knap_ioctl,
        .mynewdiskop =        knap_custom_operation,
};

No entanto, quando tento compilar meu novo módulo LKM. Estou recebendo este erro **unkown symbol "mynewdiskop"** .

O que mais devo fazer para adicionar esta operação ( mynewdiskop ) à estrutura block_device_operations. E para poder usar o meu módulo LKM?

Atenciosamente, K.

    
por aMa 07.11.2017 / 16:52

0 respostas