Zephyr Project API  3.1.0
A Scalable Open Source RTOS
ipc_icmsg_buf.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_IPC_SERVICE_IPC_ICMSG_BUF_H_
8#define ZEPHYR_INCLUDE_IPC_SERVICE_IPC_ICMSG_BUF_H_
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
32struct icmsg_buf {
33 uint32_t len; /* Length of data[] in bytes. */
34 uint32_t wr_idx; /* Index of the first free byte in data[] */
35 uint32_t rd_idx; /* Index of the first valid byte in data[] */
36 uint8_t data[]; /* Buffer data. */
37};
38
54struct icmsg_buf *icmsg_buf_init(void *buf, size_t blen);
55
66int icmsg_buf_write(struct icmsg_buf *ib, const char *buf, uint16_t len);
67
83int icmsg_buf_read(struct icmsg_buf *ib, char *buf, uint16_t len);
84
85
90#ifdef __cplusplus
91}
92#endif
93
94#endif /* ZEPHYR_INCLUDE_IPC_SERVICE_IPC_ICMSG_BUF_H_ */
struct icmsg_buf * icmsg_buf_init(void *buf, size_t blen)
Initialize inter core messaging buffer.
int icmsg_buf_write(struct icmsg_buf *ib, const char *buf, uint16_t len)
Write specified amount of data to the inter core messaging buffer.
int icmsg_buf_read(struct icmsg_buf *ib, char *buf, uint16_t len)
Read specified amount of data from the inter core messaging buffer.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
IPC Service ICMsg buffer API.
Definition: ipc_icmsg_buf.h:32
uint32_t len
Definition: ipc_icmsg_buf.h:33
uint32_t rd_idx
Definition: ipc_icmsg_buf.h:35
uint8_t data[]
Definition: ipc_icmsg_buf.h:36
uint32_t wr_idx
Definition: ipc_icmsg_buf.h:34