On Fri, Oct 8, 2010 at 11:38 PM, Bond <[email protected]> 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 [email protected]
> 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 [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to