Hay una macro LIST_HEAD_INIT y una macro INIT_LIST_HEAD en la lista vinculada del kernel de Linux ¿Cuál es la diferencia entre ellas?
Archivo: linux/include/linux/list.h
19 #define LIST_HEAD_INIT(nombre) { &(nombre), &(nombre) }
20
21 #define LIST_HEAD( nombre) \
22 struct list_head nombre = LIST_HEAD_INIT(nombre)
23
24 static inline void INIT_LIST_HEAD(struct list_head * lista)
25 {
26 lista-> siguiente = lista;
27 lista->prev = lista;
28 }
LIST_HEAD_INIT es una macro, e INIT_LIST_HEAD creo que es una función, del código fuente de Linux-2
.