6 #include "per_cpu_data.h"
11 extern Per_cpu<Timeout *> timeslice_timeout;
13 /* the check macro is like assert(), but it evaluates its argument
14 even if NDEBUG is defined */
17 # define check(expression) ((void)(expression))
19 # define check(expression) assert(expression)
25 class Initial_kobjects
39 First_alloc_cap = Log,
41 End_alloc_cap = First_alloc_cap + Num_alloc,
44 static Cap_index first() { return Cap_index(First_alloc_cap); }
45 static Cap_index end() { return Cap_index(End_alloc_cap); }
47 void register_obj(Kobject_iface *o, Initial_cap cap)
49 assert (cap >= First_alloc_cap);
50 assert (cap < End_alloc_cap);
52 int c = cap - First_alloc_cap;
59 Kobject_iface *obj(Cap_index cap) const
61 assert (cap >= first());
64 return _v[cxx::int_value<Cap_diff>(cap - first())];
68 Kobject_iface *_v[Num_alloc];
72 extern Initial_kobjects initial_kobjects;
75 //---------------------------------------------------------------------------
78 Initial_kobjects initial_kobjects;