Zephyr API Documentation
2.7.0-rc2
A Scalable Open Source RTOS
|
ivshmem reference API More...
Data Structures | |
struct | ivshmem_driver_api |
Typedefs | |
typedef size_t(* | ivshmem_get_mem_f) (const struct device *dev, uintptr_t *memmap) |
typedef uint32_t(* | ivshmem_get_id_f) (const struct device *dev) |
typedef uint16_t(* | ivshmem_get_vectors_f) (const struct device *dev) |
typedef int(* | ivshmem_int_peer_f) (const struct device *dev, uint32_t peer_id, uint16_t vector) |
typedef int(* | ivshmem_register_handler_f) (const struct device *dev, struct k_poll_signal *signal, uint16_t vector) |
Functions | |
size_t | ivshmem_get_mem (const struct device *dev, uintptr_t *memmap) |
Get the inter-VM shared memory. More... | |
uint32_t | ivshmem_get_id (const struct device *dev) |
Get our VM ID. More... | |
uint16_t | ivshmem_get_vectors (const struct device *dev) |
Get the number of interrupt vectors we can use. More... | |
int | ivshmem_int_peer (const struct device *dev, uint32_t peer_id, uint16_t vector) |
Interrupt another VM. More... | |
int | ivshmem_register_handler (const struct device *dev, struct k_poll_signal *signal, uint16_t vector) |
Register a vector notification (interrupt) handler. More... | |
ivshmem reference API
#include <include/drivers/virtualization/ivshmem.h>
#include <include/drivers/virtualization/ivshmem.h>
#include <include/drivers/virtualization/ivshmem.h>
#include <include/drivers/virtualization/ivshmem.h>
typedef int(* ivshmem_register_handler_f) (const struct device *dev, struct k_poll_signal *signal, uint16_t vector) |
#include <include/drivers/virtualization/ivshmem.h>
#include <include/drivers/virtualization/ivshmem.h>
Get our VM ID.
dev | Pointer to the device structure for the driver instance |
#include <include/drivers/virtualization/ivshmem.h>
Get the inter-VM shared memory.
dev | Pointer to the device structure for the driver instance |
memmap | A pointer to fill in with the memory address |
#include <include/drivers/virtualization/ivshmem.h>
Get the number of interrupt vectors we can use.
dev | Pointer to the device structure for the driver instance |
#include <include/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 <include/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.