es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo importar LIST_HEAD_INIT en el núcleo de Linux.

Estoy usando el código fuente de git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git.

La ruta absoluta de mi archivo es /home/user/repos/linux/drivers/infiniband/hw/irdma/test_pble.c.

El archivo contiene el siguiente código.

#include "pble.c"
#include "list.h"

int main(void) {
    struct irdma_pble_prm first = {
        .clist = LIST_HEAD_INIT{first.clist};
}

LIST_HEAD_INIT se declara en /home/user/repos/linux/include/linux/list.h.

Mi IDE CLion me da la siguiente advertencia: Uso de identificador no declarado ‘LIST_HEAD_INIT’.
¿Cómo puedo importar correctamente la macro LIST_HEAD_INIT?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para importar correctamente la macro LIST_HEAD_INIT y evitar la advertencia en tu IDE, necesitas incluir el archivo de encabezado list.h en tu archivo test_pble.c utilizando la ruta de archivo correcta. Puedes modificar la parte superior de tu código de la siguiente manera:

    #include "../include/linux/list.h"
    #include "pble.c"
    
    int main(void) {
        struct irdma_pble_prm first = {
            .clist = LIST_HEAD_INIT(first.clist),
        };
        // Tu código restante va aquí
    }
    

    Al utilizar la ruta relativa correcta hacia list.h, tu compilador será capaz de localizar el archivo e importar adecuadamente la macro necesaria.

Comments are closed.