L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4::Vm Class Reference

Virtual machine host address space. More...

#include <vm>

+ Inheritance diagram for L4::Vm:
+ Collaboration diagram for L4::Vm:

Public Member Functions

l4_msgtag_t vgicc_map (l4_fpage_t const vgicc_fpage, l4_utcb_t *utcb=l4_utcb()) noexcept
 Map the GIC virtual CPU interface page to the task in case Fiasco detected a GIC version 2.
 
- Public Member Functions inherited from L4::Task
l4_msgtag_t map (Cap< Task > const &src_task, l4_fpage_t const &snd_fpage, l4_umword_t snd_base, l4_utcb_t *utcb=l4_utcb()) noexcept
 Map resources available in the source task to a destination task.
 
l4_msgtag_t unmap (l4_fpage_t const &fpage, l4_umword_t map_mask, l4_utcb_t *utcb=l4_utcb()) noexcept
 Revoke rights from the task.
 
l4_msgtag_t unmap_batch (l4_fpage_t const *fpages, unsigned num_fpages, l4_umword_t map_mask, l4_utcb_t *utcb=l4_utcb()) noexcept
 Revoke rights from a task.
 
l4_msgtag_t delete_obj (L4::Cap< void > obj, l4_utcb_t *utcb=l4_utcb()) noexcept
 Release capability and delete object.
 
l4_msgtag_t release_cap (L4::Cap< void > cap, l4_utcb_t *utcb=l4_utcb()) noexcept
 Release object capability.
 
l4_msgtag_t cap_valid (Cap< void > const &cap, l4_utcb_t *utcb=l4_utcb()) noexcept
 Check whether a capability is present (refers to an object).
 
l4_msgtag_t cap_equal (Cap< void > const &cap_a, Cap< void > const &cap_b, l4_utcb_t *utcb=l4_utcb()) noexcept
 Test whether two capabilities point to the same object with the same rights.
 
l4_msgtag_t add_ku_mem (l4_fpage_t *fpage, l4_utcb_t *utcb=l4_utcb()) noexcept
 Add kernel-user memory.
 
- Public Member Functions inherited from L4::Kobject
l4_msgtag_t dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb())
 Decrement the in kernel reference counter for the object.
 

Additional Inherited Members

- Protected Types inherited from L4::Kobject_t< Vm, Task, L4_PROTO_VM >
typedef Vm Class
 The target interface type (inheriting from Kobject_t)
 
typedef Typeid::Iface< PROTO, Vm__Iface
 The interface description for the derived class.
 
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Base::__Iface_list > __Iface_list
 The list of all RPC interfaces provided directly or through inheritance.
 
- Protected Types inherited from L4::Kobject_t< Task, Kobject, L4_PROTO_TASK, Type_info::Demand_t< 2 > >
typedef Task Class
 The target interface type (inheriting from Kobject_t)
 
typedef Typeid::Iface< PROTO, Task__Iface
 The interface description for the derived class.
 
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Base::__Iface_list > __Iface_list
 The list of all RPC interfaces provided directly or through inheritance.
 
- Protected Member Functions inherited from L4::Kobject_t< Vm, Task, L4_PROTO_VM >
L4::Cap< Classc () const noexcept
 Get the capability to ourselves.
 
- Protected Member Functions inherited from L4::Kobject_t< Task, Kobject, L4_PROTO_TASK, Type_info::Demand_t< 2 > >
L4::Cap< Classc () const noexcept
 Get the capability to ourselves.
 
- Protected Member Functions inherited from L4::Kobject
l4_cap_idx_t cap () const noexcept
 Return capability selector.
 
- Static Protected Member Functions inherited from L4::Kobject_t< Vm, Task, L4_PROTO_VM >
static void __check_protocols__ () noexcept
 Helper to check for protocol conflicts.
 
- Static Protected Member Functions inherited from L4::Kobject_t< Task, Kobject, L4_PROTO_TASK, Type_info::Demand_t< 2 > >
static void __check_protocols__ () noexcept
 Helper to check for protocol conflicts.
 

Detailed Description

Virtual machine host address space.

L4::Vm is a specialisation of L4::Task, used for virtual machines. The microkernel employs an appropriate page-table format for hosting VMs, such as ePT on VT-x. On Arm, it offers a call to make the virtual GICC area available to the VM.

Definition at line 28 of file __vm-arm.h.

Member Function Documentation

◆ vgicc_map()

l4_msgtag_t L4::Vm::vgicc_map ( l4_fpage_t const  vgicc_fpage,
l4_utcb_t utcb = l4_utcb() 
)
inlinenoexcept

Map the GIC virtual CPU interface page to the task in case Fiasco detected a GIC version 2.

Parameters
vgicc_fpageFlexpage that describes an area in the address space of the destination task to map the vGICC page to.
utcbUTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.
Returns
Syscall return tag.

Definition at line 41 of file __vm-arm.h.

References L4::Kobject::cap().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: