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.