C 编译linux内核时无法识别列表头

C 编译linux内核时无法识别列表头,c,linux,list,C,Linux,List,我正在编译内核的一个修改版本,它有一个我制作的C程序。我是新手,我无法摆脱这个错误: 错误:未知类型名称“列表头”;你是说“rcu头”吗 以下是指向错误行的行: //directives #include <linux/sched.h> #include <linux/list.h> #include <linux/sched/task.h> #include <asm-generic/barrier.h> #include <linux/r

我正在编译内核的一个修改版本,它有一个我制作的C程序。我是新手,我无法摆脱这个错误:

错误:未知类型名称“列表头”;你是说“rcu头”吗

以下是指向错误行的行:

//directives
#include <linux/sched.h>
#include <linux/list.h>
#include <linux/sched/task.h>
#include <asm-generic/barrier.h>
#include <linux/resource.h>

#define set_task_state(tsk, state_value)            \
    do {                            \
        (tsk)->task_state_change = _THIS_IP_;       \
        smp_store_mb((tsk)->state, (state_value));      \
    } while (0)

#define PROC_NUM 50
#define MILSEC_GAP 2

*(delta_entry) get_delta_entry(int num, *linked_list);
int get_delta_time(list_head *linked_list, delta_entry *de, int max);
//指令
#包括
#包括
#包括
#包括
#包括
#定义设置任务状态(tsk、状态值)\
做{\
(tsk)->任务状态变化=\u此\u IP\
smp_存储_mb((tsk)->状态(状态值))\
}而(0)
#定义进程数50
#定义密耳秒间隙2
*(增量项)获取增量项(int num,*链接列表);
int获取增量时间(列表头*链接列表,增量项*de,int最大值);

我知道
list.h
包括定义列表头的
types.h
。我做错了什么?

查看了
类型.h
,我觉得问题在于:
列表头
是结构标记的名称,而不是类型。所以你需要写作
struct list\u head…
而不是简单的
list\u head…
。换句话说,函数原型应该是

int get_delta_time(struct list_head *linked_list, delta_entry *de, int max);
无论何时需要变量,都需要将其声明为

struct list_head head;
head.next = ...
看 和

这是OP讨论的
结构列表\u head
定义。这是正确的答案!