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