1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2019-2020 Broadcom
6 /* Linked List Functions */
11 /* init linked list */
12 void ll_init(struct ll *ll)
18 /* insert entry in linked list */
19 void ll_insert(struct ll *ll,
20 struct ll_entry *entry)
22 if (ll->head == NULL) {
28 entry->next = ll->head;
30 entry->next->prev = entry;
31 ll->head = entry->next->prev;
35 /* delete entry from linked list */
36 void ll_delete(struct ll *ll,
37 struct ll_entry *entry)
39 if (ll->head == entry && ll->tail == entry) {
42 } else if (ll->head == entry) {
43 ll->head = entry->next;
44 ll->head->prev = NULL;
45 } else if (ll->tail == entry) {
46 ll->tail = entry->prev;
47 ll->tail->next = NULL;
49 entry->prev->next = entry->next;
50 entry->next->prev = entry->prev;