10 int resume_vcpu(Context *, Vcpu_state *, bool) = 0;
13 template< typename VM >
16 static Kmem_slab_t<VM> a;
20 Kmem_slab_t<VM> Vm_allocator<VM>::a("Vm");
22 // ------------------------------------------------------------------------
27 class Mem_space_vm : public Mem_space
30 Mem_space_vm(Ram_quota *q) : Mem_space(q, false) {}
31 virtual Page_number map_max_address() const
32 { return Page_number::create(1UL << (MWORD_BITS - Page_shift)); }
35 struct Vm_space_factory
37 /** Create a usual Mem_space object. */
38 template< typename A1 >
39 static void create(Mem_space *v, A1 a1)
40 { new (v) Mem_space_vm(a1); }
42 template< typename S >
43 static void create(S *v)
49 Vm::Vm(Ram_quota *q) : Task(Vm_space_factory(), q)
53 template< typename VM >
56 { return &Vm_allocator<VM>::a; }
59 // ------------------------------------------------------------------------
60 IMPLEMENTATION [ia32]:
62 PROTECTED static inline
67 // ------------------------------------------------------------------------
68 IMPLEMENTATION [amd64]:
70 PROTECTED static inline