1 #ifndef __LWP_QUEUE_INL__
2 #define __LWP_QUEUE_INL__
4 static __inline__ lwp_node* __lwp_queue_head(lwp_queue *queue)
6 return (lwp_node*)queue;
9 static __inline__ lwp_node* __lwp_queue_tail(lwp_queue *queue)
11 return (lwp_node*)&queue->perm_null;
14 static __inline__ u32 __lwp_queue_istail(lwp_queue *queue,lwp_node *node)
16 return (node==__lwp_queue_tail(queue));
19 static __inline__ u32 __lwp_queue_ishead(lwp_queue *queue,lwp_node *node)
21 return (node==__lwp_queue_head(queue));
24 static __inline__ lwp_node* __lwp_queue_firstnodeI(lwp_queue *queue)
29 printk("__lwp_queue_firstnodeI(%p)\n",queue);
33 new_first = ret->next;
34 queue->first = new_first;
35 new_first->prev = __lwp_queue_head(queue);
39 static __inline__ void __lwp_queue_init_empty(lwp_queue *queue)
41 queue->first = __lwp_queue_tail(queue);
42 queue->perm_null = NULL;
43 queue->last = __lwp_queue_head(queue);
46 static __inline__ u32 __lwp_queue_isempty(lwp_queue *queue)
48 return (queue->first==__lwp_queue_tail(queue));
51 static __inline__ u32 __lwp_queue_onenode(lwp_queue *queue)
53 return (queue->first==queue->last);
56 static __inline__ void __lwp_queue_appendI(lwp_queue *queue,lwp_node *node)
60 printk("__lwp_queue_appendI(%p,%p)\n",queue,node);
62 node->next = __lwp_queue_tail(queue);
69 static __inline__ void __lwp_queue_extractI(lwp_node *node)
72 printk("__lwp_queue_extractI(%p)\n",node);
81 static __inline__ void __lwp_queue_insertI(lwp_node *after,lwp_node *node)
86 printk("__lwp_queue_insertI(%p,%p)\n",after,node);
95 static __inline__ void __lwp_queue_prepend(lwp_queue *queue,lwp_node *node)
97 __lwp_queue_insert(__lwp_queue_head(queue),node);
100 static __inline__ void __lwp_queue_prependI(lwp_queue *queue,lwp_node *node)
102 __lwp_queue_insertI(__lwp_queue_head(queue),node);
105 static __inline__ lwp_node* __lwp_queue_getI(lwp_queue *queue)
107 if(!__lwp_queue_isempty(queue))
108 return __lwp_queue_firstnodeI(queue);