struct todo_lis{
struct list_head list;
unsigned char name[30];
unsigned int value;
};
struct todo_list todoList={.list=LIST_HEAD_INIT(todoList.list)};
static int todoAddItem(struct todo_list *new){
struct list_head *ptr;
struct todo_list *item;
//list_for_each(ptr,&todoList) ,list_for_each_entry(ptr,&todoList,list)
for(ptr=todoList.list.next;ptr!=&todoList;ptr=ptr->next)
{
item=list_entry(ptr,struct todo_list,list);
if(item->value < new->value)
{
list_add_tail(&new->list,ptr);
return;
}
}
list_add_tail(&new->list,&todoList);
}
static todoList_probe(struct platform_device *pdev)
{
struct list_head *ptr;
int aaa[]={1,2,3,5,4,6,8,7,9,0};
struct todo_list *item;
int loop;
for(loop=0;loop<sizeof(aaa)/sizeof(int);loop++)
{
item=kzalloc(sizeof(struct todo_list),GFP_KERNEL);
item->value=aaa[loop];
printk(KERN_ERR "value=%d\n",item->value);
todoAddItem(item);
}
//list_for_each_entry(ptr,&todoList,list)
list_for_each(ptr,&todoList.list)
{
item=list_entry(ptr,struct todo_list,list);
printk(KERN_ERR "value=%d\n",item->value);
}
}