coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
list.c
Go to the documentation of this file.
1 /* Taken from depthcharge: src/base/list.c */
2 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 
4 #include <list.h>
5 
6 void list_remove(struct list_node *node)
7 {
8  if (node->prev)
9  node->prev->next = node->next;
10  if (node->next)
11  node->next->prev = node->prev;
12 }
13 
14 void list_insert_after(struct list_node *node, struct list_node *after)
15 {
16  node->next = after->next;
17  node->prev = after;
18  after->next = node;
19  if (node->next)
20  node->next->prev = node;
21 }
22 
23 void list_insert_before(struct list_node *node, struct list_node *before)
24 {
25  node->prev = before->prev;
26  node->next = before;
27  before->prev = node;
28  if (node->prev)
29  node->prev->next = node;
30 }
31 
32 void list_append(struct list_node *node, struct list_node *head)
33 {
34  while (head->next)
35  head = head->next;
36 
37  list_insert_after(node, head);
38 }
void list_append(struct list_node *node, struct list_node *head)
Definition: list.c:32
void list_insert_before(struct list_node *node, struct list_node *before)
Definition: list.c:23
void list_insert_after(struct list_node *node, struct list_node *after)
Definition: list.c:14
void list_remove(struct list_node *node)
Definition: list.c:6
Definition: list.h:7
struct list_node * next
Definition: list.h:8
struct list_node * prev
Definition: list.h:9