|
Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
|
Interfaces for Inter-VM Shared Memory (ivshmem). More...
Functions | |
| size_t | ivshmem_get_mem (const struct device *dev, uintptr_t *memmap) |
| Get the inter-VM shared memory. | |
| uint32_t | ivshmem_get_id (const struct device *dev) |
| Get our VM ID. | |
| uint16_t | ivshmem_get_vectors (const struct device *dev) |
| Get the number of interrupt vectors we can use. | |
| int | ivshmem_int_peer (const struct device *dev, uint32_t peer_id, uint16_t vector) |
| Interrupt another VM. | |
| int | ivshmem_register_handler (const struct device *dev, struct k_poll_signal *signal, uint16_t vector) |
| Register a vector notification (interrupt) handler. | |
| size_t | ivshmem_get_rw_mem_section (const struct device *dev, uintptr_t *memmap) |
| Get the ivshmem read/write section (ivshmem-v2 only). | |
| size_t | ivshmem_get_output_mem_section (const struct device *dev, uint32_t peer_id, uintptr_t *memmap) |
| Get the ivshmem output section for a peer (ivshmem-v2 only). | |
| uint32_t | ivshmem_get_state (const struct device *dev, uint32_t peer_id) |
| Get the state value of a peer (ivshmem-v2 only). | |
| int | ivshmem_set_state (const struct device *dev, uint32_t state) |
| Set our state (ivshmem-v2 only). | |
| uint32_t | ivshmem_get_max_peers (const struct device *dev) |
| Get the maximum number of peers supported (ivshmem-v2 only). | |
| uint16_t | ivshmem_get_protocol (const struct device *dev) |
| Get the protocol used by this ivshmem instance (ivshmem-v2 only). | |
| int | ivshmem_enable_interrupts (const struct device *dev, bool enable) |
| Set the interrupt enablement for our VM (ivshmem-v2 only). | |
Interfaces for Inter-VM Shared Memory (ivshmem).
#include <zephyr/drivers/virtualization/ivshmem.h>
Set the interrupt enablement for our VM (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
| enable | True to enable interrupts, false to disable |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get our VM ID.
| dev | Pointer to the device structure for the driver instance |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the maximum number of peers supported (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the inter-VM shared memory.
Note: This API is not supported for ivshmem-v2, as the R/W and R/O areas may not be mapped contiguously. For ivshmem-v2, use the ivshmem_get_rw_mem_section, ivshmem_get_output_mem_section and ivshmem_get_state APIs to access the shared memory.
| dev | Pointer to the device structure for the driver instance |
| memmap | A pointer to fill in with the memory address |
| size_t ivshmem_get_output_mem_section | ( | const struct device * | dev, |
| uint32_t | peer_id, | ||
| uintptr_t * | memmap ) |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the ivshmem output section for a peer (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
| peer_id | The VM ID whose output memory section to get |
| memmap | A pointer to fill in with the memory address |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the protocol used by this ivshmem instance (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the ivshmem read/write section (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
| memmap | A pointer to fill in with the memory address |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the state value of a peer (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
| peer_id | The VM ID whose state to get |
#include <zephyr/drivers/virtualization/ivshmem.h>
Get the number of interrupt vectors we can use.
| dev | Pointer to the device structure for the driver instance |
#include <zephyr/drivers/virtualization/ivshmem.h>
Interrupt another VM.
| dev | Pointer to the device structure for the driver instance |
| peer_id | The VM ID to interrupt |
| vector | The interrupt vector to use |
| int ivshmem_register_handler | ( | const struct device * | dev, |
| struct k_poll_signal * | signal, | ||
| uint16_t | vector ) |
#include <zephyr/drivers/virtualization/ivshmem.h>
Register a vector notification (interrupt) handler.
| dev | Pointer to the device structure for the driver instance |
| signal | A pointer to a valid and ready to be signaled struct k_poll_signal. Or NULL to unregister any handler registered for the given vector. |
| vector | The interrupt vector to get notification from |
Note: The returned status, if positive, to a raised signal is the vector that generated the signal. This lets the possibility to the user to have one signal for all vectors, or one per-vector.
#include <zephyr/drivers/virtualization/ivshmem.h>
Set our state (ivshmem-v2 only).
CONFIG_IVSHMEM_V2.| dev | Pointer to the device structure for the driver instance |
| state | The state value to set |