|
Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
|
Manage Xen I/O request servers and related device-model state. More...
Files | |
| file | dmop.h |
| Xen device-model operations. | |
Functions | |
| int | dmop_create_ioreq_server (domid_t domid, uint8_t handle_bufioreq, ioservid_t *id) |
| Create an I/O request server in the given Xen domain. | |
| int | dmop_destroy_ioreq_server (domid_t domid, ioservid_t id) |
| Destroy a previously created I/O request server. | |
| int | dmop_map_io_range_to_ioreq_server (domid_t domid, ioservid_t id, uint32_t type, uint64_t start, uint64_t end) |
| Map a specified I/O address range to an existing I/O request server. | |
| int | dmop_unmap_io_range_from_ioreq_server (domid_t domid, ioservid_t id, uint32_t type, uint64_t start, uint64_t end) |
| Unmap an I/O address range from an I/O request server. | |
| int | dmop_set_ioreq_server_state (domid_t domid, ioservid_t id, uint8_t enabled) |
| Enable or disable an existing I/O request server. | |
| int | dmop_nr_vcpus (domid_t domid) |
| Query the number of virtual CPUs in a Xen domain. | |
| int | dmop_set_irq_level (domid_t domid, uint32_t irq, uint8_t level) |
| Set the interrupt level for a specific IRQ in a Xen domain. | |
Manage Xen I/O request servers and related device-model state.
| int dmop_create_ioreq_server | ( | domid_t | domid, |
| uint8_t | handle_bufioreq, | ||
| ioservid_t * | id ) |
#include <zephyr/xen/dmop.h>
Create an I/O request server in the given Xen domain.
This function issues the XEN_DMOP_create_ioreq_server hypercall to create a server that handles I/O requests on behalf of the guest domain.
CONFIG_XEN_DMOP.| domid | Xen domain identifier where the server is created. | |
| handle_bufioreq | Flag indicating whether buffered I/O requests should be handled. Set to non-zero to enable buffered handling. | |
| [out] | id | Output pointer to receive the newly created server ID. |
| int dmop_destroy_ioreq_server | ( | domid_t | domid, |
| ioservid_t | id ) |
#include <zephyr/xen/dmop.h>
Destroy a previously created I/O request server.
Issues the XEN_DMOP_destroy_ioreq_server hypercall to tear down the specified I/O request server.
CONFIG_XEN_DMOP.| domid | Xen domain identifier where the server exists. |
| id | I/O request server ID returned by dmop_create_ioreq_server(). |
| int dmop_map_io_range_to_ioreq_server | ( | domid_t | domid, |
| ioservid_t | id, | ||
| uint32_t | type, | ||
| uint64_t | start, | ||
| uint64_t | end ) |
#include <zephyr/xen/dmop.h>
Map a specified I/O address range to an existing I/O request server.
This function issues the XEN_DMOP_map_io_range_to_ioreq_server hypercall to grant access to the given I/O address range for the specified server.
CONFIG_XEN_DMOP.| domid | Xen domain identifier where the mapping is applied. |
| id | I/O request server ID returned by dmop_create_ioreq_server(). |
| type | Type identifier for the I/O range (e.g., MMIO, port I/O). |
| start | Start physical address of the I/O range. |
| end | End physical address (inclusive) of the I/O range. |
| int dmop_nr_vcpus | ( | domid_t | domid | ) |
#include <zephyr/xen/dmop.h>
Query the number of virtual CPUs in a Xen domain.
This function issues the XEN_DMOP_nr_vcpus hypercall to retrieve the current vCPU count for the specified domain.
CONFIG_XEN_DMOP.| domid | Xen domain identifier to query. |
| int dmop_set_ioreq_server_state | ( | domid_t | domid, |
| ioservid_t | id, | ||
| uint8_t | enabled ) |
#include <zephyr/xen/dmop.h>
Enable or disable an existing I/O request server.
CONFIG_XEN_DMOP.This function issues the XEN_DMOP_set_ioreq_server_state hypercall to change the operational state of the specified I/O request server.
| domid | Xen domain identifier. |
| id | I/O request server ID to modify. |
| enabled | Non-zero to enable the server, zero to disable it. |
#include <zephyr/xen/dmop.h>
Set the interrupt level for a specific IRQ in a Xen domain.
This function issues the XEN_DMOP_set_irq_level hypercall to adjust the signal level (assert or deassert) for the given IRQ line.
CONFIG_XEN_DMOP.| domid | Xen domain identifier. |
| irq | IRQ number whose level is to be set. |
| level | Non-zero to assert (raise) the IRQ, zero to deassert (lower) it. |
| int dmop_unmap_io_range_from_ioreq_server | ( | domid_t | domid, |
| ioservid_t | id, | ||
| uint32_t | type, | ||
| uint64_t | start, | ||
| uint64_t | end ) |
#include <zephyr/xen/dmop.h>
Unmap an I/O address range from an I/O request server.
Issues the XEN_DMOP_unmap_io_range_from_ioreq_server hypercall to revoke access to a previously mapped I/O address range.
CONFIG_XEN_DMOP.| domid | Xen domain identifier where the unmapping is applied. |
| id | I/O request server ID returned by dmop_create_ioreq_server(). |
| type | Type identifier for the I/O range (e.g., MMIO, port I/O). |
| start | Start physical address of the I/O range. |
| end | End physical address (inclusive) of the I/O range. |