定义相关结构体
20 LIST_HEAD(task_queue_head);
21 struct task_queue{
22 struct task_struct *sleep_task;
23 int count;
24 struct list_head list;
25 };
添加fifo节点
struct task_queue *t_queue = NULL;
41 t_queue = kmalloc(sizeof(struct task_queue),
42 GFP_KERNEL);
43 if(!t_queue)
44 {
45 printk(KERN_ALERT"fail to kmalloc/n");
46 return -ENOMEM;
47 }
48 t_queue->count = open_count;
49 list_add_tail(&t_queue->list,&task_queue_head);
删除fifo节点
struct task_queue *first = NULL;
84 struct list_head *ptr;
85 if(!list_empty(&task_queue_head))
86 {
87 ptr = task_queue_head.next;
88 first = list_entry(ptr,struct task_queue,
89 list);
90 printk(KERN_ALERT"first is %d/n",first->count);
91 list_del(ptr);
92 kfree(first);
93 }