162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *  Copyright (C) 2017 Chelsio Communications.  All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __CUDBG_IF_H__
762306a36Sopenharmony_ci#define __CUDBG_IF_H__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/* Error codes */
1062306a36Sopenharmony_ci#define CUDBG_STATUS_NO_MEM -19
1162306a36Sopenharmony_ci#define CUDBG_STATUS_ENTITY_NOT_FOUND -24
1262306a36Sopenharmony_ci#define CUDBG_STATUS_NOT_IMPLEMENTED -28
1362306a36Sopenharmony_ci#define CUDBG_SYSTEM_ERROR -29
1462306a36Sopenharmony_ci#define CUDBG_STATUS_CCLK_NOT_DEFINED -32
1562306a36Sopenharmony_ci#define CUDBG_STATUS_PARTIAL_DATA -41
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define CUDBG_MAJOR_VERSION 1
1862306a36Sopenharmony_ci#define CUDBG_MINOR_VERSION 14
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cienum cudbg_dbg_entity_type {
2162306a36Sopenharmony_ci	CUDBG_REG_DUMP = 1,
2262306a36Sopenharmony_ci	CUDBG_DEV_LOG = 2,
2362306a36Sopenharmony_ci	CUDBG_CIM_LA = 3,
2462306a36Sopenharmony_ci	CUDBG_CIM_MA_LA = 4,
2562306a36Sopenharmony_ci	CUDBG_CIM_QCFG = 5,
2662306a36Sopenharmony_ci	CUDBG_CIM_IBQ_TP0 = 6,
2762306a36Sopenharmony_ci	CUDBG_CIM_IBQ_TP1 = 7,
2862306a36Sopenharmony_ci	CUDBG_CIM_IBQ_ULP = 8,
2962306a36Sopenharmony_ci	CUDBG_CIM_IBQ_SGE0 = 9,
3062306a36Sopenharmony_ci	CUDBG_CIM_IBQ_SGE1 = 10,
3162306a36Sopenharmony_ci	CUDBG_CIM_IBQ_NCSI = 11,
3262306a36Sopenharmony_ci	CUDBG_CIM_OBQ_ULP0 = 12,
3362306a36Sopenharmony_ci	CUDBG_CIM_OBQ_ULP1 = 13,
3462306a36Sopenharmony_ci	CUDBG_CIM_OBQ_ULP2 = 14,
3562306a36Sopenharmony_ci	CUDBG_CIM_OBQ_ULP3 = 15,
3662306a36Sopenharmony_ci	CUDBG_CIM_OBQ_SGE = 16,
3762306a36Sopenharmony_ci	CUDBG_CIM_OBQ_NCSI = 17,
3862306a36Sopenharmony_ci	CUDBG_EDC0 = 18,
3962306a36Sopenharmony_ci	CUDBG_EDC1 = 19,
4062306a36Sopenharmony_ci	CUDBG_MC0 = 20,
4162306a36Sopenharmony_ci	CUDBG_MC1 = 21,
4262306a36Sopenharmony_ci	CUDBG_RSS = 22,
4362306a36Sopenharmony_ci	CUDBG_RSS_VF_CONF = 25,
4462306a36Sopenharmony_ci	CUDBG_PATH_MTU = 27,
4562306a36Sopenharmony_ci	CUDBG_PM_STATS = 30,
4662306a36Sopenharmony_ci	CUDBG_HW_SCHED = 31,
4762306a36Sopenharmony_ci	CUDBG_TP_INDIRECT = 36,
4862306a36Sopenharmony_ci	CUDBG_SGE_INDIRECT = 37,
4962306a36Sopenharmony_ci	CUDBG_ULPRX_LA = 41,
5062306a36Sopenharmony_ci	CUDBG_TP_LA = 43,
5162306a36Sopenharmony_ci	CUDBG_MEMINFO = 44,
5262306a36Sopenharmony_ci	CUDBG_CIM_PIF_LA = 45,
5362306a36Sopenharmony_ci	CUDBG_CLK = 46,
5462306a36Sopenharmony_ci	CUDBG_CIM_OBQ_RXQ0 = 47,
5562306a36Sopenharmony_ci	CUDBG_CIM_OBQ_RXQ1 = 48,
5662306a36Sopenharmony_ci	CUDBG_PCIE_INDIRECT = 50,
5762306a36Sopenharmony_ci	CUDBG_PM_INDIRECT = 51,
5862306a36Sopenharmony_ci	CUDBG_TID_INFO = 54,
5962306a36Sopenharmony_ci	CUDBG_PCIE_CONFIG = 55,
6062306a36Sopenharmony_ci	CUDBG_DUMP_CONTEXT = 56,
6162306a36Sopenharmony_ci	CUDBG_MPS_TCAM = 57,
6262306a36Sopenharmony_ci	CUDBG_VPD_DATA = 58,
6362306a36Sopenharmony_ci	CUDBG_LE_TCAM = 59,
6462306a36Sopenharmony_ci	CUDBG_CCTRL = 60,
6562306a36Sopenharmony_ci	CUDBG_MA_INDIRECT = 61,
6662306a36Sopenharmony_ci	CUDBG_ULPTX_LA = 62,
6762306a36Sopenharmony_ci	CUDBG_UP_CIM_INDIRECT = 64,
6862306a36Sopenharmony_ci	CUDBG_PBT_TABLE = 65,
6962306a36Sopenharmony_ci	CUDBG_MBOX_LOG = 66,
7062306a36Sopenharmony_ci	CUDBG_HMA_INDIRECT = 67,
7162306a36Sopenharmony_ci	CUDBG_HMA = 68,
7262306a36Sopenharmony_ci	CUDBG_QDESC = 70,
7362306a36Sopenharmony_ci	CUDBG_FLASH = 71,
7462306a36Sopenharmony_ci	CUDBG_MAX_ENTITY = 72,
7562306a36Sopenharmony_ci};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_cistruct cudbg_init {
7862306a36Sopenharmony_ci	struct adapter *adap; /* Pointer to adapter structure */
7962306a36Sopenharmony_ci	void *outbuf; /* Output buffer */
8062306a36Sopenharmony_ci	u32 outbuf_size;  /* Output buffer size */
8162306a36Sopenharmony_ci	u8 compress_type; /* Type of compression to use */
8262306a36Sopenharmony_ci	void *compress_buff; /* Compression buffer */
8362306a36Sopenharmony_ci	u32 compress_buff_size; /* Compression buffer size */
8462306a36Sopenharmony_ci	void *workspace; /* Workspace for zlib */
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_cistatic inline unsigned int cudbg_mbytes_to_bytes(unsigned int size)
8862306a36Sopenharmony_ci{
8962306a36Sopenharmony_ci	return size * 1024 * 1024;
9062306a36Sopenharmony_ci}
9162306a36Sopenharmony_ci#endif /* __CUDBG_IF_H__ */
92