GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / net / wireless / quantenna / qtnfmac / shm_ipc_defs.h
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
13 enum qtnf_shm_ipc_region_flags {
14         QTNF_SHM_IPC_NEW_DATA           = BIT(0),
15         QTNF_SHM_IPC_ACK                = BIT(1),
16 };
17
18 struct qtnf_shm_ipc_region_header {
19         __le32 flags;
20         __le16 data_len;
21 } __packed;
22
23 union qtnf_shm_ipc_region_headroom {
24         struct qtnf_shm_ipc_region_header hdr;
25         u8 headroom[QTN_IPC_REG_HDR_SZ];
26 } __packed;
27
28 struct 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_ */