diff options
author | John Anthony <johnanthony@lavabit.com> | 2013-06-15 20:06:41 +0100 |
---|---|---|
committer | John Anthony <johnanthony@lavabit.com> | 2013-06-15 20:06:41 +0100 |
commit | 0bab0bb4a7c11a7ad4563e86838ba2cff804389a (patch) | |
tree | f27de009b7ef3054f3a443aa566d76fb23db4e63 | |
parent | 3dc1040569cf98ae5b7efc32f8d652e803a126db (diff) | |
download | nyancat-0bab0bb4a7c11a7ad4563e86838ba2cff804389a.tar.gz nyancat-0bab0bb4a7c11a7ad4563e86838ba2cff804389a.tar.bz2 nyancat-0bab0bb4a7c11a7ad4563e86838ba2cff804389a.zip |
Tidied out list implementation
-rw-r--r-- | list.h | 69 |
1 files changed, 33 insertions, 36 deletions
@@ -1,10 +1,11 @@ #ifndef __LIST_H #define __LIST_H -/* This file is from Linux Kernel (include/linux/list.h) +/* This file is from the Linux Kernel (include/linux/list.h) * and modified by simply removing hardware prefetching of list items. - * Here by copyright, credits attributed to wherever they belong. + * Copyright, credits attributed to wherever they belong. * Kulesh Shanmugasundaram (kulesh [squiggly] isis.poly.edu) + * Modified to round out my personal collection by John Anthony */ /* @@ -54,8 +55,8 @@ static inline void __list_add(struct list_head *new, * Insert a new entry after the specified head. * This is good for implementing stacks. */ -static inline void list_add(struct list_head *new, struct list_head *head) -{ +static inline void +list_add(struct list_head *new, struct list_head *head) { __list_add(new, head, head->next); } @@ -67,8 +68,8 @@ static inline void list_add(struct list_head *new, struct list_head *head) * Insert a new entry before the specified head. * This is useful for implementing queues. */ -static inline void list_add_tail(struct list_head *new, struct list_head *head) -{ +static inline void +list_add_tail(struct list_head *new, struct list_head *head) { __list_add(new, head->prev, head); } @@ -79,8 +80,8 @@ static inline void list_add_tail(struct list_head *new, struct list_head *head) * This is only for internal list manipulation where we know * the prev/next entries already! */ -static inline void __list_del(struct list_head *prev, struct list_head *next) -{ +static inline void +__list_del(struct list_head *prev, struct list_head *next) { next->prev = prev; prev->next = next; } @@ -88,10 +89,11 @@ static inline void __list_del(struct list_head *prev, struct list_head *next) /** * list_del - deletes entry from list. * @entry: the element to delete from the list. - * Note: list_empty on entry does not return true after this, the entry is in an undefined state. + * Note: list_empty on entry does not return true after this. this + * is undefiend behaviour. */ -static inline void list_del(struct list_head *entry) -{ +static inline void +list_del(struct list_head *entry) { __list_del(entry->prev, entry->next); entry->next = (void *) 0; entry->prev = (void *) 0; @@ -101,8 +103,8 @@ static inline void list_del(struct list_head *entry) * list_del_init - deletes entry from list and reinitialize it. * @entry: the element to delete from the list. */ -static inline void list_del_init(struct list_head *entry) -{ +static inline void +list_del_init(struct list_head *entry) { __list_del(entry->prev, entry->next); INIT_LIST_HEAD(entry); } @@ -112,10 +114,10 @@ static inline void list_del_init(struct list_head *entry) * @list: the entry to move * @head: the head that will precede our entry */ -static inline void list_move(struct list_head *list, struct list_head *head) -{ - __list_del(list->prev, list->next); - list_add(list, head); +static inline void +list_move(struct list_head *list, struct list_head *head) { + __list_del(list->prev, list->next); + list_add(list, head); } /** @@ -123,32 +125,29 @@ static inline void list_move(struct list_head *list, struct list_head *head) * @list: the entry to move * @head: the head that will follow our entry */ -static inline void list_move_tail(struct list_head *list, - struct list_head *head) -{ - __list_del(list->prev, list->next); - list_add_tail(list, head); +static inline void +list_move_tail(struct list_head *list, struct list_head *head) { + __list_del(list->prev, list->next); + list_add_tail(list, head); } /** * list_empty - tests whether a list is empty * @head: the list to test. */ -static inline int list_empty(struct list_head *head) -{ +static inline int +list_empty(struct list_head *head) { return head->next == head; } -static inline void __list_splice(struct list_head *list, - struct list_head *head) -{ +static inline void +__list_splice(struct list_head *list, struct list_head *head) { struct list_head *first = list->next; struct list_head *last = list->prev; struct list_head *at = head->next; first->prev = head; head->next = first; - last->next = at; at->prev = last; } @@ -158,8 +157,8 @@ static inline void __list_splice(struct list_head *list, * @list: the new list to add. * @head: the place to add it in the first list. */ -static inline void list_splice(struct list_head *list, struct list_head *head) -{ +static inline void +list_splice(struct list_head *list, struct list_head *head) { if (!list_empty(list)) __list_splice(list, head); } @@ -171,9 +170,8 @@ static inline void list_splice(struct list_head *list, struct list_head *head) * * The list at @list is reinitialised */ -static inline void list_splice_init(struct list_head *list, - struct list_head *head) -{ +static inline void +list_splice_init(struct list_head *list, struct list_head *head) { if (!list_empty(list)) { __list_splice(list, head); INIT_LIST_HEAD(list); @@ -207,7 +205,7 @@ static inline void list_splice_init(struct list_head *list, pos = pos->prev) /** - * list_for_each_safe - iterate over a list safe against removal of list entry + * list_for_each_safe - iterate over a list safe against removal * @pos: the &struct list_head to use as a loop counter. * @n: another &struct list_head to use as temporary storage * @head: the head for your list. @@ -228,7 +226,7 @@ static inline void list_splice_init(struct list_head *list, pos = list_entry(pos->member.next, typeof(*pos), member)) /** - * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry + * list_for_each_entry_safe - iterate list entries safe against removal * @pos: the type * to use as a loop counter. * @n: another type * to use as temporary storage * @head: the head for your list. @@ -240,5 +238,4 @@ static inline void list_splice_init(struct list_head *list, &pos->member != (head); \ pos = n, n = list_entry(n->member.next, typeof(*n), member)) - #endif |