7 class Kobject_mappable;
16 virtual char const *kobj_type() const = 0;
17 virtual Address kobject_start_addr() const = 0;
19 virtual bool is_local(Space *) const = 0;
20 virtual Mword obj_id() const = 0;
21 virtual void initiate_deletion(Kobject ***) = 0;
22 virtual void destroy(Kobject ***) = 0;
23 virtual bool put() = 0;
25 virtual Kobject_mappable *map_root() = 0;
27 virtual Kobject_dbg *dbg_info() = 0;
28 virtual Kobject_dbg const *dbg_info() const = 0;
30 virtual Kobject *kobject() = 0;
31 virtual Kobject const *kobject() const = 0;
34 class Kobject_iface : public virtual Kobject_common
37 virtual void invoke(L4_obj_ref self, Mword rights, Syscall_frame *, Utcb *) = 0;
38 virtual Kobject_iface *downgrade(unsigned long del_attribs)
39 { (void)del_attribs; return this; }
46 Kobject_iface::commit_result(Mword error,
47 unsigned words = 0, unsigned items = 0)
49 return L4_msg_tag(words, items, 0, error);
54 Kobject_iface::commit_error(Utcb const *utcb, L4_error const &e,
55 L4_msg_tag const &tag = L4_msg_tag(0, 0, 0, 0))
57 const_cast<Utcb*>(utcb)->error = e;
58 return L4_msg_tag(tag, L4_msg_tag::Error);