Re: About head of kernel linked list structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
========================================================================

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux