On Sat, Oct 9, 2010 at 12:27 PM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote: > On Fri, Oct 8, 2010 at 11:38 PM, Bond <jamesbond.2k.g@xxxxxxxxx> wrote: >> Hi,in >> http://lxr.linux.no/#linux+v2.6.18/include/linux/list.h >> following section of code >> there is a structure which is defined as >> >> struct list_head { >> struct list_head *next, *prev; >> }; >> >> It is used in another file as >> >> #define LIST_HEAD_INIT(name) { &(name), &(name) } >> >> #define LIST_HEAD(name) \ >> struct list_head name = LIST_HEAD_INIT(name) >> >> static inline void INIT_LIST_HEAD(struct list_head *list) >> { >> list->next = list; >> list->prev = list; >> } >> >> >> I came across a book where the code is given as follows in an example >> >> include/linux/list.h >> struct list_head { >> struct list_head *next,*prev; >> }; >> #define LIST_HEAD_INIT(name) {&(name),&(name)} >> >> #define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name) >> #define INIT_LIST_HEAD(prt) do {\ >> (ptr)->next = (ptr);(ptr)->prev= (ptr);\ >> }while(0) >> >> >> I was not able to understand above code segment. >> I am aware of what a #define is but still I could not understand above thing. >> Can some one help in understanding with some example. >> Not related to Linux Kernel a normal example where I >> can make a link list with above defined way. > > http://kernelnewbies.org/FAQ/LinkedLists > >> I read that link but could not understand much out of it. -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ