1 /* SPDX-License-Identifier: BSD-3-Clause
2  *
3  * Copyright(c) 2020 Intel Corporation. All rights reserved.
4  *
5  * Author: Author: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
6  */
7 
8 #ifndef __IPC_DEBUG_H__
9 #define __IPC_DEBUG_H__
10 
11 #include <ipc/header.h>
12 #include <stdint.h>
13 
14 /** ABI3.18 */
15 enum sof_ipc_dbg_mem_zone {
16 	SOF_IPC_MEM_ZONE_SYS		= 0,	/**< System zone */
17 	SOF_IPC_MEM_ZONE_SYS_RUNTIME	= 1,	/**< System-runtime zone */
18 	SOF_IPC_MEM_ZONE_RUNTIME	= 2,	/**< Runtime zone */
19 	SOF_IPC_MEM_ZONE_BUFFER		= 3,	/**< Buffer zone */
20 	SOF_IPC_MEM_ZONE_RUNTIME_SHARED	= 4,	/**< System runtime zone */
21 	SOF_IPC_MEM_ZONE_SYS_SHARED	= 5,	/**< System shared zone */
22 };
23 
24 /** ABI3.18 */
25 struct sof_ipc_dbg_mem_usage_elem {
26 	uint32_t zone;		/**< see sof_ipc_dbg_mem_zone */
27 	uint32_t id;		/**< heap index within zone */
28 	uint32_t used;		/**< number of bytes used in zone */
29 	uint32_t free;		/**< number of bytes free to use within zone */
30 	uint32_t reserved;	/**< reserved for future use */
31 } __attribute__((packed, aligned(4)));
32 
33 /** ABI3.18 */
34 struct sof_ipc_dbg_mem_usage {
35 	struct sof_ipc_reply rhdr;			/**< generic IPC reply header */
36 	uint32_t reserved[4];				/**< reserved for future use */
37 	uint32_t num_elems;				/**< elems[] counter */
38 	struct sof_ipc_dbg_mem_usage_elem elems[];	/**< memory usage information */
39 } __attribute__((packed, aligned(4)));
40 
41 #endif /* __IPC_DEBUG_H__ */
42