Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/adt/list.c

    rdf13836 r9d58539  
    5252 *
    5353 */
    54 bool list_member(const link_t *link, const list_t *list)
     54int list_member(const link_t *link, const list_t *list)
    5555{
    5656        bool found = false;
     
    6868}
    6969
    70 /** Moves items of one list into another after the specified item.
    71  *
    72  * Inserts all items of @a list after item at @a pos in another list.
    73  * Both lists may be empty.
    74  *
    75  * @param list Source list to move after pos. Empty afterwards.
    76  * @param pos Source items will be placed after this item.
     70/** Concatenate two lists
     71 *
     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.
     75 *
     76 * @param list1         First list and concatenated output
     77 * @param list2         Second list and empty output.
     78 *
    7779 */
    78 void list_splice(list_t *list, link_t *pos)
     80void list_concat(list_t *list1, list_t *list2)
    7981{
    80         if (list_empty(list))
     82        if (list_empty(list2))
    8183                return;
    82        
    83         /* Attach list to destination. */
    84         list->head.next->prev = pos;
    85         list->head.prev->next = pos->next;
    86        
    87         /* Link destination list to the added list. */
    88         pos->next->prev = list->head.prev;
    89         pos->next = list->head.next;
    90        
    91         list_initialize(list);
     84
     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);
    9290}
    9391
     
    9997 * @return              Number of items in the list.
    10098 */
    101 unsigned long list_count(const list_t *list)
     99unsigned int list_count(const list_t *list)
    102100{
    103         unsigned long count = 0;
     101        unsigned int count = 0;
    104102       
    105         link_t *link = list_first(list);
    106         while (link != NULL) {
     103        list_foreach(*list, link) {
    107104                count++;
    108                 link = list_next(link, list);
    109105        }
    110106       
Note: See TracChangeset for help on using the changeset viewer.