This source file includes following definitions.
- enqueue
- dequeue
- queue_insert
- queue_remove
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <sys/queue.h>
34
35
36
37
38 void
39 enqueue(queue_t head, queue_t item)
40 {
41 item->next = head;
42 item->prev = head->prev;
43 item->prev->next = item;
44 head->prev = item;
45 }
46
47
48
49
50 queue_t
51 dequeue(queue_t head)
52 {
53 queue_t item;
54
55 if (head->next == head)
56 return ((queue_t)0);
57 item = head->next;
58 item->next->prev = head;
59 head->next = item->next;
60 return item;
61 }
62
63
64
65
66 void
67 queue_insert(queue_t prev, queue_t item)
68 {
69 item->prev = prev;
70 item->next = prev->next;
71 prev->next->prev = item;
72 prev->next = item;
73 }
74
75
76
77
78 void
79 queue_remove(queue_t item)
80 {
81 item->prev->next = item->next;
82 item->next->prev = item->prev;
83 }
|