list.c revision da04c52ab1036048520fca265cf02b61dca789e0
1da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin/*
2da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * Copyright (C) 2008 The Android Open Source Project
3da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin *
4da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * Licensed under the Apache License, Version 2.0 (the "License");
5da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * you may not use this file except in compliance with the License.
6da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * You may obtain a copy of the License at
7da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin *
8da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin *      http://www.apache.org/licenses/LICENSE-2.0
9da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin *
10da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * Unless required by applicable law or agreed to in writing, software
11da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * distributed under the License is distributed on an "AS IS" BASIS,
12da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * See the License for the specific language governing permissions and
14da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin * limitations under the License.
15da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin */
16da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin
17da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin#include <cutils/list.h>
18da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin
19da04c52ab1036048520fca265cf02b61dca789e0Dima Zavinvoid list_init(struct listnode *node)
20da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin{
21da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    node->next = node;
22da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    node->prev = node;
23da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin}
24da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin
25da04c52ab1036048520fca265cf02b61dca789e0Dima Zavinvoid list_add_tail(struct listnode *head, struct listnode *item)
26da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin{
27da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    item->next = head;
28da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    item->prev = head->prev;
29da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    head->prev->next = item;
30da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    head->prev = item;
31da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin}
32da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin
33da04c52ab1036048520fca265cf02b61dca789e0Dima Zavinvoid list_remove(struct listnode *item)
34da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin{
35da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    item->next->prev = item->prev;
36da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin    item->prev->next = item->next;
37da04c52ab1036048520fca265cf02b61dca789e0Dima Zavin}
38