Loading...
Searching...
No Matches
L4::Vm Class Reference
Base API » Kernel Objects

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 permissions (only considering selected permissions).
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 Task::__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 Kobject::__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< Class > | c () 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< Class > | c () 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 17 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_fpage | Flexpage that describes an area in the address space of the destination task to map the vGICC page to.
  utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.

Returns
  Syscall return tag.

Definition at line 30 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:

- l4/sys/__vm-arm.h
- l4/sys/vm