C 编译linux内核时无法识别列表头
我正在编译内核的一个修改版本,它有一个我制作的C程序。我是新手,我无法摆脱这个错误: 错误:未知类型名称“列表头”;你是说“rcu头”吗 以下是指向错误行的行: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
//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
定义。这是正确的答案!