diff options
author | Raul E Rangel <rrangel@chromium.org> | 2021-11-01 13:40:14 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-11-03 08:29:16 +0000 |
commit | 4c8c8442ab6d3b0cdc267f5c479dc5d54bf87525 (patch) | |
tree | 29b2dde483588e9db54b5093d2b18cbd75e36d40 /src | |
parent | 74a06296608e4c868e101ea47c0a1389977ecd91 (diff) |
lib/list: Add list_append
This method will add a node to the end of the list.
BUG=b:179699789
TEST=Boot guybrush to the OS
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I1792e40f789e3ef16ceca65ce4cae946e08583d1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58805
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/include/list.h | 2 | ||||
-rw-r--r-- | src/lib/list.c | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/include/list.h b/src/include/list.h index 6f0b54d818..bfd92a747b 100644 --- a/src/include/list.h +++ b/src/include/list.h @@ -15,6 +15,8 @@ void list_remove(struct list_node *node); void list_insert_after(struct list_node *node, struct list_node *after); // Insert list_node node before list_node before in a doubly linked list. void list_insert_before(struct list_node *node, struct list_node *before); +// Appends the node to the end of the list. +void list_append(struct list_node *node, struct list_node *head); #define list_for_each(ptr, head, member) \ for ((ptr) = container_of((head).next, typeof(*(ptr)), member); \ diff --git a/src/lib/list.c b/src/lib/list.c index 01d5c8914e..c3f8ee42c8 100644 --- a/src/lib/list.c +++ b/src/lib/list.c @@ -28,3 +28,11 @@ void list_insert_before(struct list_node *node, struct list_node *before) if (node->prev) node->prev->next = node; } + +void list_append(struct list_node *node, struct list_node *head) +{ + while (head->next) + head = head->next; + + list_insert_after(node, head); +} |