]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/queue_item.cpp
579040fe4cc4d32966505ebddab60de5b7563939
[l4.git] / kernel / fiasco / src / kern / queue_item.cpp
1 INTERFACE:
2
3 #include <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 "kdb_ke.h"
22 #include "std_macros.h"
23
24 PUBLIC inline
25 bool
26 Queue_item::queued() const
27 { return cxx::D_list_cyclic<Queue_item>::in_list(this); }
28
29 PUBLIC inline NEEDS["kdb_ke.h"]
30 Queue *
31 Queue_item::queue() const
32 {
33   assert_kdb (queued());
34   return _q;
35 }
36
37 PUBLIC inline NEEDS["kdb_ke.h"]
38 Queue_item::Status
39 Queue_item::status() const
40 {
41   assert_kdb (!queued());
42   return Status((unsigned long)_q);
43 }
44