@@ -16,58 +16,57 @@ void semu_timer_rebase(semu_timer_t *timer, uint64_t time);
1616/* Linux-like queue API */
1717
1818#if defined(__GNUC__ )
19- #define __QUEUE_HAVE_TYPEOF 1
19+ #define __list_HAVE_TYPEOF 1
2020#endif
2121
22- /* Merely a doubly-linked list */
23- struct queue_head {
24- struct queue_head * prev , * next ;
22+ struct list_head {
23+ struct list_head * prev , * next ;
2524};
2625
27- #define QUEUE_HEAD (head ) struct queue_head head = {&(head), &(head)}
26+ #define list_HEAD (head ) struct list_head head = {&(head), &(head)}
2827
29- static inline void INIT_QUEUE_HEAD (struct queue_head * head )
28+ static inline void INIT_LIST_HEAD (struct list_head * head )
3029{
3130 head -> next = head ;
3231 head -> prev = head ;
3332}
3433
35- /* Push the node to the end of queue */
36- static inline void queue_push (struct queue_head * node , struct queue_head * head )
34+ /* Push the node to the end of list */
35+ static inline void list_push (struct list_head * node , struct list_head * head )
3736{
38- struct queue_head * prev = head -> prev ;
37+ struct list_head * prev = head -> prev ;
3938
4039 prev -> next = node ;
4140 node -> next = head ;
4241 node -> prev = prev ;
4342 head -> prev = node ;
4443}
4544
46- static inline int queue_empty (const struct queue_head * head )
45+ static inline int list_empty (const struct list_head * head )
4746{
4847 return (head -> next == head );
4948}
5049
51- static inline void queue_del (struct queue_head * node )
50+ static inline void list_del (struct list_head * node )
5251{
53- struct queue_head * next = node -> next ;
54- struct queue_head * prev = node -> prev ;
52+ struct list_head * next = node -> next ;
53+ struct list_head * prev = node -> prev ;
5554
5655 next -> prev = prev ;
5756 prev -> next = next ;
5857
59- node -> prev = (struct queue_head * ) (0x00100100 );
60- node -> next = (struct queue_head * ) (0x00200200 );
58+ node -> prev = (struct list_head * ) (0x00100100 );
59+ node -> next = (struct list_head * ) (0x00200200 );
6160}
6261
63- static inline void queue_del_init (struct queue_head * node )
62+ static inline void list_del_init (struct list_head * node )
6463{
65- queue_del (node );
66- INIT_QUEUE_HEAD (node );
64+ list_del (node );
65+ INIT_LIST_HEAD (node );
6766}
6867
6968#ifndef container_of
70- #ifdef __QUEUE_HAVE_TYPEOF
69+ #ifdef __list_HAVE_TYPEOF
7170#define container_of (ptr , type , member ) \
7271 __extension__({ \
7372 const __typeof__(((type *) 0)->member) *__pmember = (ptr); \
@@ -79,30 +78,30 @@ static inline void queue_del_init(struct queue_head *node)
7978#endif
8079#endif
8180
82- #define queue_entry (node , type , member ) container_of(node, type, member)
81+ #define list_entry (node , type , member ) container_of(node, type, member)
8382
84- #define queue_first_entry (head , type , member ) \
85- queue_entry ((head)->next, type, member)
83+ #define list_first_entry (head , type , member ) \
84+ list_entry ((head)->next, type, member)
8685
87- #define queue_last_entry (head , type , member ) \
88- queue_entry ((head)->prev, type, member)
86+ #define list_last_entry (head , type , member ) \
87+ list_entry ((head)->prev, type, member)
8988
90- #define queue_for_each (node , head ) \
89+ #define list_for_each (node , head ) \
9190 for (node = (head)->next; node != (head); node = node->next)
9291
93- #ifdef __QUEUE_HAVE_TYPEOF
94- #define queue_for_each_entry (entry , head , member ) \
95- for (entry = queue_entry ((head)->next, __typeof__(*entry), member); \
96- &entry->member != (head); \
97- entry = queue_entry (entry->member.next, __typeof__(*entry), member))
92+ #ifdef __list_HAVE_TYPEOF
93+ #define list_for_each_entry (entry , head , member ) \
94+ for (entry = list_entry ((head)->next, __typeof__(*entry), member); \
95+ &entry->member != (head); \
96+ entry = list_entry (entry->member.next, __typeof__(*entry), member))
9897#endif
9998
100- #define queue_for_each_safe (node , safe , head ) \
99+ #define list_for_each_safe (node , safe , head ) \
101100 for (node = (head)->next, safe = node->next; node != (head); \
102101 node = safe, safe = node->next)
103102
104- #define queue_for_each_entry_safe (entry , safe , head , member ) \
105- for (entry = queue_entry ((head)->next, __typeof__(*entry), member), \
106- safe = queue_entry (entry->member.next, __typeof__(*entry), member); \
107- &entry->member != (head); entry = safe, \
108- safe = queue_entry (safe->member.next, __typeof__(*entry), member))
103+ #define list_for_each_entry_safe (entry , safe , head , member ) \
104+ for (entry = list_entry ((head)->next, __typeof__(*entry), member), \
105+ safe = list_entry (entry->member.next, __typeof__(*entry), member); \
106+ &entry->member != (head); entry = safe, \
107+ safe = list_entry (safe->member.next, __typeof__(*entry), member))
0 commit comments