0001
0002
0003
0004 #ifndef _QTN_FMAC_SHM_IPC_DEFS_H_
0005 #define _QTN_FMAC_SHM_IPC_DEFS_H_
0006
0007 #include <linux/types.h>
0008
0009 #define QTN_IPC_REG_HDR_SZ (32)
0010 #define QTN_IPC_REG_SZ (4096)
0011 #define QTN_IPC_MAX_DATA_SZ (QTN_IPC_REG_SZ - QTN_IPC_REG_HDR_SZ)
0012
0013 enum qtnf_shm_ipc_region_flags {
0014 QTNF_SHM_IPC_NEW_DATA = BIT(0),
0015 QTNF_SHM_IPC_ACK = BIT(1),
0016 };
0017
0018 struct qtnf_shm_ipc_region_header {
0019 __le32 flags;
0020 __le16 data_len;
0021 } __packed;
0022
0023 union qtnf_shm_ipc_region_headroom {
0024 struct qtnf_shm_ipc_region_header hdr;
0025 u8 headroom[QTN_IPC_REG_HDR_SZ];
0026 } __packed;
0027
0028 struct qtnf_shm_ipc_region {
0029 union qtnf_shm_ipc_region_headroom headroom;
0030 u8 data[QTN_IPC_MAX_DATA_SZ];
0031 } __packed;
0032
0033 #endif