1/* SPDX-License-Identifier: GPL-2.0+ */
2/* Copyright (c) 2015-2016 Quantenna Communications. All rights reserved. */
3
4#ifndef _QTN_FMAC_SHM_IPC_DEFS_H_
5#define _QTN_FMAC_SHM_IPC_DEFS_H_
6
7#include <linux/types.h>
8
9#define QTN_IPC_REG_HDR_SZ	(32)
10#define QTN_IPC_REG_SZ		(4096)
11#define QTN_IPC_MAX_DATA_SZ	(QTN_IPC_REG_SZ - QTN_IPC_REG_HDR_SZ)
12
13enum qtnf_shm_ipc_region_flags {
14	QTNF_SHM_IPC_NEW_DATA		= BIT(0),
15	QTNF_SHM_IPC_ACK		= BIT(1),
16};
17
18struct qtnf_shm_ipc_region_header {
19	__le32 flags;
20	__le16 data_len;
21} __packed;
22
23union qtnf_shm_ipc_region_headroom {
24	struct qtnf_shm_ipc_region_header hdr;
25	u8 headroom[QTN_IPC_REG_HDR_SZ];
26} __packed;
27
28struct qtnf_shm_ipc_region {
29	union qtnf_shm_ipc_region_headroom headroom;
30	u8 data[QTN_IPC_MAX_DATA_SZ];
31} __packed;
32
33#endif /* _QTN_FMAC_SHM_IPC_DEFS_H_ */
34