| 
    Zephyr Project API
    3.4.0
    
   A Scalable Open Source RTOS 
   | 
 
Inter-VM Shared Memory (ivshmem) reference API. More...
Data Structures | |
| struct | ivshmem_driver_api | 
Macros | |
| #define | IVSHMEM_V2_PROTO_UNDEFINED 0x0000 | 
| #define | IVSHMEM_V2_PROTO_NET 0x0001 | 
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... | |
Inter-VM Shared Memory (ivshmem) reference API.
| #define IVSHMEM_V2_PROTO_NET 0x0001 | 
| #define IVSHMEM_V2_PROTO_UNDEFINED 0x0000 | 
| typedef int(* ivshmem_register_handler_f) (const struct device *dev, struct k_poll_signal *signal, uint16_t vector) | 
#include <include/zephyr/drivers/virtualization/ivshmem.h>
Get our VM ID.
| dev | Pointer to the device structure for the driver instance | 
#include <include/zephyr/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/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 <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 <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.