Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
ipm.h File Reference

Generic low-level inter-processor mailbox communication API. More...

#include <kernel.h>
#include <device.h>
#include <syscalls/ipm.h>

Go to the source code of this file.

Data Structures

struct  ipm_driver_api
 

Typedefs

typedef void(* ipm_callback_t) (const struct device *ipmdev, void *user_data, uint32_t id, volatile void *data)
 Callback API for incoming IPM messages. More...
 
typedef int(* ipm_send_t) (const struct device *ipmdev, int wait, uint32_t id, const void *data, int size)
 Callback API to send IPM messages. More...
 
typedef int(* ipm_max_data_size_get_t) (const struct device *ipmdev)
 Callback API to get maximum data size. More...
 
typedef uint32_t(* ipm_max_id_val_get_t) (const struct device *ipmdev)
 Callback API to get the ID's maximum value. More...
 
typedef void(* ipm_register_callback_t) (const struct device *port, ipm_callback_t cb, void *user_data)
 Callback API upon registration. More...
 
typedef int(* ipm_set_enabled_t) (const struct device *ipmdev, int enable)
 Callback API upon enablement of interrupts. More...
 

Functions

int ipm_send (const struct device *ipmdev, int wait, uint32_t id, const void *data, int size)
 Try to send a message over the IPM device. More...
 
static void ipm_register_callback (const struct device *ipmdev, ipm_callback_t cb, void *user_data)
 Register a callback function for incoming messages. More...
 
int ipm_max_data_size_get (const struct device *ipmdev)
 Return the maximum number of bytes possible in an outbound message. More...
 
uint32_t ipm_max_id_val_get (const struct device *ipmdev)
 Return the maximum id value possible in an outbound message. More...
 
int ipm_set_enabled (const struct device *ipmdev, int enable)
 Enable interrupts and callbacks for inbound channels. More...
 

Detailed Description

Generic low-level inter-processor mailbox communication API.