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 > > > -- > http://vger.kernel.org/vger-lists.html > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx > Please read the FAQ at http://kernelnewbies.org/FAQ > > -- Thanks - Manish ================================== [$\*.^ -- I miss being one of them ================================== -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ