#include #include #define LENGTH 5 struct node { struct list_head l; int dato; }; int init_module(void) { int i; struct node head, aux[LENGTH], *aux2; struct list_head* iter; INIT_LIST_HEAD(&head.l); head.dato = 666; for (i = 0; i < LENGTH; i++) { aux[i].dato = i; list_add_tail(&aux[i].l, &head.l); } list_for_each(iter, &head.l) { aux2 = list_entry(iter, struct node, l); printk(KERN_INFO "%d", aux2->dato); } printk(KERN_INFO "Por cierto, en 0x0 hay: %d", ((struct node *)0)->dato); return 0; } void cleanup_module(void) { } MODULE_AUTHOR("Guillermo Ramos"); MODULE_LICENSE("GPL");