Kernel Linked Lists (list_splice)

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

 



Hello all!

I was reading the __list_splice () function code and I had a doubt. The code is:

274 static inline void __list_splice(const struct list_head *list,
275                                  struct list_head *prev,
276                                  struct list_head *next)
277 {
278         struct list_head *first = list->next;
279         struct list_head *last = list->prev;
280
281         first->prev = prev;
282         prev->next = first;
283
284         last->next = next;
285         next->prev = last;
286 }

What happens with the *list head? As I understood, when you call
list_splice (list_a, list_b, list_b->next), the code joins the two
lists together such that the list_a is put before list_b. The code
grabs list->next and list->prev but what about *list itself?


-- 
Leandro Moreira Barbosa

_______________________________________________
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