初始提交
This commit is contained in:
111
inc/ipc/iot_ipc.h
Normal file
111
inc/ipc/iot_ipc.h
Normal file
@@ -0,0 +1,111 @@
|
||||
/****************************************************************************
|
||||
|
||||
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
||||
|
||||
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
||||
be copied by any method or incorporated into another program without
|
||||
the express written consent of Aerospace C.Power. This Information or any portion
|
||||
thereof remains the property of Aerospace C.Power. The Information contained herein
|
||||
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
||||
liability for its use in any way and conveys no license or title under
|
||||
any patent or copyright and makes no representation or warranty that this
|
||||
Information is free from patent or copyright infringement.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef IOT_IPC_H
|
||||
#define IOT_IPC_H
|
||||
|
||||
#include "os_types.h"
|
||||
#include "iot_ipc_api.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* max family number supported */
|
||||
#define IOT_IPC_FAMILY_MAX 5
|
||||
|
||||
/* max client number each family supported */
|
||||
#define IOT_IPC_CLIENT_PER_F_MAX 4
|
||||
|
||||
/* define ipc uart message command */
|
||||
#define IOT_IPC_UART_MSG_CMD_FWD 0
|
||||
#define IOT_IPC_UART_MSG_CMD_CALLBACK 1
|
||||
|
||||
/* pack for the structures in the whole file */
|
||||
#pragma pack(push) /* save the pack status */
|
||||
#pragma pack(1) /* 1 byte align */
|
||||
|
||||
/* define ipc uart message header structure for AMP image */
|
||||
typedef struct _iot_ipc_uart_msg_hdr {
|
||||
/* start char, see IOT_IPC_MSG_START_CHAR */
|
||||
uint8_t start_char_1;
|
||||
/* command, see IOT_IPC_UART_MSG_CMD_XXX */
|
||||
uint8_t cmd;
|
||||
/* start char, see IOT_IPC_MSG_START_CHAR */
|
||||
uint8_t start_char_2;
|
||||
/* sequence */
|
||||
uint8_t seq;
|
||||
/* data length */
|
||||
uint16_t len;
|
||||
/* data */
|
||||
uint8_t data[0];
|
||||
} iot_ipc_uart_msg_hdr;
|
||||
|
||||
/* define ipc uart fwd command header structure for AMP image */
|
||||
typedef struct _iot_ipc_uart_cmd_fwd_hdr {
|
||||
/* IPC source family ID */
|
||||
uint16_t s_f_id :4,
|
||||
/* IPC source client ID */
|
||||
s_c_id :4,
|
||||
/* IPC destination family ID */
|
||||
d_f_id :4,
|
||||
/* IPC destination client ID */
|
||||
d_c_id :4;
|
||||
/* header reserve length for restoring pkt */
|
||||
uint16_t hdr_rsvd_len;
|
||||
/* tail reserve length for restoring pkt */
|
||||
uint16_t tail_rsvd_len;
|
||||
/* source packet pointer for fwd data */
|
||||
uint32_t pkt_ptr;
|
||||
/* fwd data */
|
||||
uint8_t data[0];
|
||||
} iot_ipc_uart_cmd_fwd_hdr;
|
||||
|
||||
/* define ipc uart callback command header structure for AMP image */
|
||||
typedef struct _iot_ipc_uart_cmd_callback_t {
|
||||
/* source packet pointer */
|
||||
uint32_t pkt_ptr;
|
||||
} iot_ipc_uart_cmd_callback_t;
|
||||
|
||||
/* define ipc uart message tail structure for AMP image */
|
||||
typedef struct _iot_ipc_uart_msg_tail {
|
||||
/* cs check from start_char_1 to data */
|
||||
uint8_t cs;
|
||||
/* end char, see IOT_IPC_MSG_END_CHAR */
|
||||
uint8_t end_char;
|
||||
} iot_ipc_uart_msg_tail;
|
||||
|
||||
#pragma pack(pop) /* restore the pack status */
|
||||
|
||||
/*
|
||||
* iot_ipc_init() - init ipc module
|
||||
*
|
||||
* return:
|
||||
* 0 -- for success case
|
||||
* othersie -- error code
|
||||
*/
|
||||
uint32_t iot_ipc_init();
|
||||
|
||||
/*
|
||||
* iot_ipc_deinit() - deinit ipc module
|
||||
*/
|
||||
void iot_ipc_deinit();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* IOT_IPC_H */
|
Reference in New Issue
Block a user