public static bool list_is_last(list_head *list, list_head *head) { return(list->next == head); }
public static void list_del_init(list_head *entry) { __list_del_entry(entry); INIT_LIST_HEAD(entry); }
public static bool list_is_singular(list_head *head) { return(!list_empty(head) && (head->next == head->prev)); }
public static bool list_is_first(list_head *list, list_head *head) { return(list->prev == head); }
public static void list_move_tail(list_head *list, list_head *head) { __list_del_entry(list); list_add_tail(list, head); }
public static bool list_empty(list_head *head) { return(head->next == head); }
private static void __list_del_entry(list_head *entry) { __list_del(entry->prev, entry->next); }
public static void list_del(list_head *entry) { __list_del(entry->prev, entry->next); entry->next = (list_head *)LIST_POISON1; entry->prev = (list_head *)LIST_POISON2; }
public static void list_add_tail(list_head *New, list_head *head) { __list_add(New, head->prev, head); }
private static void __list_del(list_head *prev, list_head *next) { next->prev = prev; prev->next = next; }
public static void list_add(list_head *New, list_head *head) { __list_add(New, head, head->next); }
public static void INIT_LIST_HEAD(list_head *list) { list->next = list; list->prev = list; }
public static void list_headless_splice_tail(list_head *list, list_head *head) { __list_splice(list, head->prev, head); }
public static void list_rotate_to_front(list_head *list, list_head *head) { list_move_tail(head, list); }
private static page *container_of(list_head *ptr) { return((page *)((byte *)ptr - (uint)&((page *)0)->lru)); }