]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/queue_item.cpp
Some minor fixes.
[l4.git] / kernel / fiasco / src / kern / queue_item.cpp
1 INTERFACE:
2
3 #include <cxx/dlist>
4
5 class Queue;
6
7 class Queue_item : public cxx::D_list_item
8 {
9   friend class Queue;
10 public:
11   enum Status { Ok, Retry, Invalid };
12
13 private:
14   Queue *_q;
15 } __attribute__((aligned(16)));
16
17
18 //--------------------------------------------------------------------------
19 IMPLEMENTATION:
20
21 #include "assert.h"
22
23 PUBLIC inline
24 bool
25 Queue_item::queued() const
26 { return cxx::D_list_cyclic<Queue_item>::in_list(this); }
27
28 PUBLIC inline NEEDS["assert.h"]
29 Queue *
30 Queue_item::queue() const
31 {
32   assert (queued());
33   return _q;
34 }
35
36 PUBLIC inline NEEDS["assert.h"]
37 Queue_item::Status
38 Queue_item::status() const
39 {
40   assert (!queued());
41   return Status((unsigned long)_q);
42 }
43