Changeset 8ff0bd2 in mainline for kernel/generic/src/adt/list.c
- Timestamp:
- 2011-09-04T11:30:58Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 03bc76a
- Parents:
- d2c67e7 (diff), deac215e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/adt/list.c
rd2c67e7 r8ff0bd2 43 43 /** Check for membership 44 44 * 45 * Check whether link is contained in the list head.46 * The membership is defined as pointer equivalence.45 * Check whether link is contained in a list. 46 * Membership is defined as pointer equivalence. 47 47 * 48 * @param link 49 * @param headList to look in.48 * @param link Item to look for. 49 * @param list List to look in. 50 50 * 51 51 * @return true if link is contained in head, false otherwise. 52 52 * 53 53 */ 54 int list_member(const link_t *link, const li nk_t *head)54 int list_member(const link_t *link, const list_t *list) 55 55 { 56 56 bool found = false; 57 link_t *hlp = head->next;57 link_t *hlp = list->head.next; 58 58 59 while (hlp != head) {59 while (hlp != &list->head) { 60 60 if (hlp == link) { 61 61 found = true; … … 68 68 } 69 69 70 71 70 /** Concatenate two lists 72 71 * 73 * Concatenate lists head1 and head2, producing a single74 * list head1 containing items from both (in head1, head275 * order) and empty list head2.72 * Concatenate lists @a list1 and @a list2, producing a single 73 * list @a list1 containing items from both (in @a list1, @a list2 74 * order) and empty list @a list2. 76 75 * 77 * @param head1First list and concatenated output78 * @param head2Second list and empty output.76 * @param list1 First list and concatenated output 77 * @param list2 Second list and empty output. 79 78 * 80 79 */ 81 void list_concat(li nk_t *head1, link_t *head2)80 void list_concat(list_t *list1, list_t *list2) 82 81 { 83 if (list_empty( head2))82 if (list_empty(list2)) 84 83 return; 85 84 86 head2->next->prev = head1->prev; 87 head2->prev->next = head1; 88 head1->prev->next = head2->next; 89 head1->prev = head2->prev; 90 list_initialize(head2); 85 list2->head.next->prev = list1->head.prev; 86 list2->head.prev->next = &list1->head; 87 list1->head.prev->next = list2->head.next; 88 list1->head.prev = list2->head.prev; 89 list_initialize(list2); 90 } 91 92 /** Count list items 93 * 94 * Return the number of items in the list. 95 * 96 * @param list List to count. 97 * @return Number of items in the list. 98 */ 99 unsigned int list_count(const list_t *list) 100 { 101 unsigned int count = 0; 102 103 list_foreach(*list, link) { 104 count++; 105 } 106 107 return count; 91 108 } 92 109
Note:
See TracChangeset
for help on using the changeset viewer.