| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2017 Chelsio Communications. All rights reserved. |
| */ |
| |
| #ifndef __CUDBG_LIB_COMMON_H__ |
| #define __CUDBG_LIB_COMMON_H__ |
| |
| #define CUDBG_SIGNATURE 67856866 /* CUDB in ascii */ |
| |
| enum cudbg_dump_type { |
| CUDBG_DUMP_TYPE_MINI = 1, |
| }; |
| |
| enum cudbg_compression_type { |
| CUDBG_COMPRESSION_NONE = 1, |
| CUDBG_COMPRESSION_ZLIB, |
| }; |
| |
| struct cudbg_hdr { |
| u32 signature; |
| u32 hdr_len; |
| u16 major_ver; |
| u16 minor_ver; |
| u32 data_len; |
| u32 hdr_flags; |
| u16 max_entities; |
| u8 chip_ver; |
| u8 dump_type:3; |
| u8 reserved1:1; |
| u8 compress_type:4; |
| u32 reserved[8]; |
| }; |
| |
| struct cudbg_entity_hdr { |
| u32 entity_type; |
| u32 start_offset; |
| u32 size; |
| int hdr_flags; |
| u32 sys_warn; |
| u32 sys_err; |
| u8 num_pad; |
| u8 flag; /* bit 0 is used to indicate ext data */ |
| u8 reserved1[2]; |
| u32 next_ext_offset; /* pointer to next extended entity meta data */ |
| u32 reserved[5]; |
| }; |
| |
| struct cudbg_ver_hdr { |
| u32 signature; |
| u16 revision; |
| u16 size; |
| }; |
| |
| struct cudbg_buffer { |
| u32 size; |
| u32 offset; |
| char *data; |
| }; |
| |
| struct cudbg_error { |
| int sys_err; |
| int sys_warn; |
| int app_err; |
| }; |
| |
| #define CDUMP_MAX_COMP_BUF_SIZE ((64 * 1024) - 1) |
| #define CUDBG_CHUNK_SIZE ((CDUMP_MAX_COMP_BUF_SIZE / 1024) * 1024) |
| |
| int cudbg_get_buff(struct cudbg_init *pdbg_init, |
| struct cudbg_buffer *pdbg_buff, u32 size, |
| struct cudbg_buffer *pin_buff); |
| void cudbg_put_buff(struct cudbg_init *pdbg_init, |
| struct cudbg_buffer *pin_buff); |
| void cudbg_update_buff(struct cudbg_buffer *pin_buff, |
| struct cudbg_buffer *pout_buff); |
| #endif /* __CUDBG_LIB_COMMON_H__ */ |