1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2/*
3 * This file is provided under a dual BSD/GPLv2 license.  When using or
4 * redistributing this file, you may do so under either license.
5 *
6 * Copyright(c) 2020 Intel Corporation. All rights reserved.
7 *
8 * Author: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
9 */
10
11#ifndef __INCLUDE_SOUND_SOF_DEBUG_H__
12#define __INCLUDE_SOUND_SOF_DEBUG_H__
13
14#include <sound/sof/header.h>
15
16/** ABI3.18 */
17enum sof_ipc_dbg_mem_zone {
18	SOF_IPC_MEM_ZONE_SYS		= 0,	/**< System zone */
19	SOF_IPC_MEM_ZONE_SYS_RUNTIME	= 1,	/**< System-runtime zone */
20	SOF_IPC_MEM_ZONE_RUNTIME	= 2,	/**< Runtime zone */
21	SOF_IPC_MEM_ZONE_BUFFER		= 3,	/**< Buffer zone */
22	SOF_IPC_MEM_ZONE_RUNTIME_SHARED	= 4,	/**< System runtime zone */
23	SOF_IPC_MEM_ZONE_SYS_SHARED	= 5,	/**< System shared zone */
24};
25
26/** ABI3.18 */
27struct sof_ipc_dbg_mem_usage_elem {
28	uint32_t zone;		/**< see sof_ipc_dbg_mem_zone */
29	uint32_t id;		/**< heap index within zone */
30	uint32_t used;		/**< number of bytes used in zone */
31	uint32_t free;		/**< number of bytes free to use within zone */
32	uint32_t reserved;	/**< for future use */
33} __packed;
34
35/** ABI3.18 */
36struct sof_ipc_dbg_mem_usage {
37	struct sof_ipc_reply rhdr;			/**< generic IPC reply header */
38	uint32_t reserved[4];				/**< reserved for future use */
39	uint32_t num_elems;				/**< elems[] counter */
40	struct sof_ipc_dbg_mem_usage_elem elems[];	/**< memory usage information */
41} __packed;
42
43#endif
44