About head of kernel linked list structure

Huaicheng Li lhcwhu at gmail.com
Thu May 7 06:52:22 EDT 2015


Hi Robert,

You got my point and I’m sorry for not stating it in a clear way. You are right about the "prev-to-left" and "next-to-right" when drawing the line. At that time, I just wanted to show which node they were pointing at.  Anyway, you solved my puzzle. Also thanks for your excellent article.

--
Best Regards
Huaicheng Li






> On May 7, 2015, at 3:45 AM, Robert P. J. Day <rpjday at crashcourse.ca> wrote:
> 
> On Wed, 6 May 2015, Huaicheng Li wrote:
> 
>> In my understanding, the head initialised using LIST_HEAD_INIT or
>> defined by LIST_HEAD corresponds to no *real* data field.
> 
>  correct. a better way to describe it would be that it corresponds to
> no real enclosing payload, so it should never be dereferenced to get
> to said payload.
> 
>> But it *does* have its own _next_ and _prev_ pointers. The _next_
>> pointer points to the first real node in the doubly linked list, and
>> the _prev_ pointer points to the last real node.
> 
>  so far, so good -- by "real", you mean list heads that actually
> correspond to an enclosing payload.
> 
>> I'm wondering if the picture shown at the very bottom of
>> http://kernelnewbies.org/FAQ/LinkedLists is wrong about this.
>> Because
> 
>> I believe head's _prev_ should point to the last node, which is at
>> the very right. And the last node's _next_ should point to the head.
>> Just as shown like the red line.
>> 
>> Am I right?
> 
>  it looks fine to me, although my standard is to show next pointers
> going to the right, and prev to the left, but this way looks fine.
> maybe i'm misunderstanding your objection.
> 
>  i once wrote a tutorial on LLs:
> 
> http://www.crashcourse.ca/introduction-linux-kernel-programming/intermission-lets-talk-about-linked-lists-and-containerof-free
> 
> rday
> 
> -- 
> 
> ========================================================================
> Robert P. J. Day                                 Ottawa, Ontario, CANADA
>                        http://crashcourse.ca
> 
> Twitter:                                       http://twitter.com/rpjday
> LinkedIn:                               http://ca.linkedin.com/in/rpjday
> ========================================================================




More information about the Kernelnewbies mailing list