Map a page directory.
See
VM attributes for the mapping. Possible values for this type are given in
A mapping already exists for this level in at .
The does not have a PDPT mapped at .
Or, is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
The is in the kernel virtual address range.
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to an ASID pool.
Or, is already mapped in a VSpace.
Unmap a page directory.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
A copy of the capability exists.
Retrieve the accessed and dirty bits of a page mapped into an address space.
See
A structure.
The is a CPtr to a capability of the wrong type.
The does not have a mapping at .
Or, is in the kernel virtual address range.
The is a CPtr to a capability of the wrong type.
Map a page table into an address space.
Takes a capability as an argument,
and installs a reference to the invoked
in a specified slot in the .
VM attributes for the mapping. Possible values for this type are given in
A mapping already exists for this level in at .
The does not have a Page Directory mapped at .
Or, is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
The is in the kernel virtual address range.
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to an ASID pool.
Or, is already mapped in a VSpace.
Unmap a page table from its address space and zero it out.
Removes the reference to the invoked from its containing
.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
A copy of the capability exists.
Map an IO page table into an IOSpace.
See
All required page tables are already mapped in at .
The does not have a paging structure at the required level mapped at .
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to a PCI device.
Or, is already mapped in an IOSpace.
Unmap an IO page table from an IOSpace.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Map a page into an address space or update the mapping attributes.
Takes a VSpace capability, as an
argument and installs a reference
to the given in the lowest-level unmapped paging structure
corresponding to the given address, or updates the mapping attributes if the page is already mapped at this address. If the required paging structures are not present
this operation will fail, returning a seL4_FailedLookup error.
Rights for the mapping. Possible values for this type are given in
VM attributes for the mapping. Possible values for this type are given in
The is not aligned to the page size of .
A mapping already exists in at .
The does not have a paging structure at the required level mapped at .
Or, is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
Or, is already mapped in an IOSpace.
The is already mapped in at a different virtual address.
Or, is in the kernel virtual address range.
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to an ASID pool.
Or, is already mapped in a different VSpace.
Unmap a page.
Removes an existing mapping.
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Map a page into an IOSpace.
See
Rights for the mapping. Possible values for this type are given in
A mapping already exists in at .
The does not have a sufficient number of IO Page Tables mapped at .
The is a CPtr to a capability of the wrong type.
No rights were specified in .
Or, the rights in the capability do not include .
The or is a CPtr to a capability of the wrong type.
Or, is already mapped.
Or, is not a page of size 4 KiB.
Or, is not assigned to a PCI device.
Get the physical address of the underlying frame.
See
A struct that contains a
, which holds the physical address of the page,
and . See for a description
of the message register and tag contents upon error.
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
TODO
The is not aligned to the page size of .
A mapping already exists in at .
The does not have a paging structure at the required level mapped at .
Or, is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to an ASID pool.
Or, is already mapped.
Or, has an unsupported page size.
Create an X86 ASID pool.
Together with a capability to , which is passed as an argument,
create an . The untyped capability must represent a
4K memory object. This will create an ASID pool with enough space for 1024 VSpaces.
The destination slot contains a capability.
Or, there are no more ASID pools available.
The or is invalid (see ).
Or, is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is not the exact size of an ASID pool object.
Or, is a device untyped (see ).
The is invalid (see ).
The has been used to retype an object.
Or, a copy of the capability exists.
Assign an ASID pool.
Assigns an ASID to the VSpace associated with the passed in as an argument.
There are no more ASIDs available in .
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is already assigned to an ASID pool.
Issue an IO port sub range.
See
The destination slot contains a capability.
The or is invalid (see ).
Or, is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
The is less than .
The is a CPtr to a capability of the wrong type.
The is invalid (see ).
One or more ports in the requested range have already been issued.
Read 8 bits from an IO port.
See
A structure as described in .
The is a CPtr to a capability of the wrong type.
Or, reading from is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Read 16 bits from an IO port.
See
A structure as described in .
The is a CPtr to a capability of the wrong type.
Or, reading from and is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Read 32 bits from an IO port.
See
A structure as described in .
The is a CPtr to a capability of the wrong type.
Or, reading from ports through is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Write 8 bits to an IO port.
See
The is a CPtr to a capability of the wrong type.
Or, writing to is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Write 16 bits to an IO port.
See
The is a CPtr to a capability of the wrong type.
Or, writing to and is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Write 32 bits to an IO port.
See
The is a CPtr to a capability of the wrong type.
Or, writing to ports through is not authorized by the capability.
The is a CPtr to a capability of the wrong type.
Create an IRQ handler capability for an interrupt from an IOAPIC.
See and .
The destination slot contains a capability.
The or is invalid (see ).
Or, is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Or, an IOAPIC is not in use.
The is a CPtr to a capability of the wrong type.
The , , or is invalid.
Or, or is not 0 or 1.
Or, is invalid (see ).
An IRQ handler capability for has already been created.
Create an IRQ handler capability for an interrupt from an MSI.
See and .
The destination slot contains a capability.
The or is invalid (see ).
Or, is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Or, an IOAPIC is not in use.
The is a CPtr to a capability of the wrong type.
The , , , or is invalid.
Or, the is invalid (see ).
An IRQ handler capability for has already been created.
Set the EPT root of a thread
See .
The or is a CPtr to a capability of the wrong type.
Or, is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
Bind TCB to VCPU
Configures the one-to-one binding of a VCPU and TCB, overwriting any previous binding
in both. See .
The or is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Read VMCS field from the hardware
Thin wrapper around the instruction that is performed on the
VMCS region that is part of the VCPU object. After validating that a legal
field is requested the value of `vmread` is returned directly in the result.
A struct that contains a
, which holds the return result of the instruction,
and . See for a description
of the message register and tag contents upon error.
The is a CPtr to a capability of the wrong type.
Or, is invalid or unsupported.
The is a CPtr to a capability of the wrong type.
Write VMCS field to the hardware
Thin wrapper around the `vmwrite` instruction that is performed on the
VMCS region that is part of the VCPU object. As well as validating that
a legal field is requested, the value may be modified to ensure any
bits that are fixed in the hardware are correct, and that any features
required for kernel correctness are not disabled (see ).
The final value written to the hardware is returned and can be compared
to the input parameter to determine what bits the kernel changed.
A struct that contains a
, which holds the final value written with the instruction,
and . See for a description
of the message register and tag contents upon error.
The is a CPtr to a capability of the wrong type.
Or, is invalid or unsupported.
The is a CPtr to a capability of the wrong type.
Enable I/O port range in guest execution
Enables a range of I/O ports for direct access by the execution mode in
the . The requested port range must be a sub range
of the provided I/O port capability.
This also establishes a link between the provided I/O port capability and
the , see for details.
The or is a CPtr to a capability of the wrong type.
The or IO port exceeds the range authorized by .
The is a CPtr to a capability of the wrong type.
Disable I/O port range in privileged execution
Disable a range of I/O ports for direct access by the execution mode in
the .
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Set guest mode registers to the fields of a given
Sets the guest mode registers, which is any registers not already part of the VMCS.
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
Map an EPT page directory page table.
See
VM attributes for the mapping. Possible values for this type are given in
A mapping already exists for this level in at .
The is not assigned to an ASID pool.
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is already mapped in a VSpace.
Or, is not assigned to an ASID pool.
Unmap an EPT page directory page table.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
A copy of the capability exists.
Map an EPT page directory.
See
VM attributes for the mapping. Possible values for this type are given in
A mapping already exists for this level in at .
The is not assigned to an ASID pool.
Or, does not have an EPTPDPT mapped at .
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is already mapped in a VSpace.
Or, is not assigned to an ASID pool.
Unmap an EPT page directory.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
A copy of the capability exists.
Map an EPT page table.
See
VM attributes for the mapping. Possible values for this type are given in
A mapping already exists for this level in at .
The is not assigned to an ASID pool.
Or, does not have an EPTPD mapped at .
The is a CPtr to a capability of the wrong type.
The or is a CPtr to a capability of the wrong type.
Or, is already mapped in a VSpace.
Or, is not assigned to an ASID pool.
Unmap an EPT page table.
See
The is a CPtr to a capability of the wrong type.
The is a CPtr to a capability of the wrong type.
A copy of the capability exists.