cudbg_lib_common.h (1578B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2017 Chelsio Communications. All rights reserved. 4 */ 5 6#ifndef __CUDBG_LIB_COMMON_H__ 7#define __CUDBG_LIB_COMMON_H__ 8 9#define CUDBG_SIGNATURE 67856866 /* CUDB in ascii */ 10 11enum cudbg_dump_type { 12 CUDBG_DUMP_TYPE_MINI = 1, 13}; 14 15enum cudbg_compression_type { 16 CUDBG_COMPRESSION_NONE = 1, 17 CUDBG_COMPRESSION_ZLIB, 18}; 19 20struct cudbg_hdr { 21 u32 signature; 22 u32 hdr_len; 23 u16 major_ver; 24 u16 minor_ver; 25 u32 data_len; 26 u32 hdr_flags; 27 u16 max_entities; 28 u8 chip_ver; 29 u8 dump_type:3; 30 u8 reserved1:1; 31 u8 compress_type:4; 32 u32 reserved[8]; 33}; 34 35struct cudbg_entity_hdr { 36 u32 entity_type; 37 u32 start_offset; 38 u32 size; 39 int hdr_flags; 40 u32 sys_warn; 41 u32 sys_err; 42 u8 num_pad; 43 u8 flag; /* bit 0 is used to indicate ext data */ 44 u8 reserved1[2]; 45 u32 next_ext_offset; /* pointer to next extended entity meta data */ 46 u32 reserved[5]; 47}; 48 49struct cudbg_ver_hdr { 50 u32 signature; 51 u16 revision; 52 u16 size; 53}; 54 55struct cudbg_buffer { 56 u32 size; 57 u32 offset; 58 char *data; 59}; 60 61struct cudbg_error { 62 int sys_err; 63 int sys_warn; 64 int app_err; 65}; 66 67#define CDUMP_MAX_COMP_BUF_SIZE ((64 * 1024) - 1) 68#define CUDBG_CHUNK_SIZE ((CDUMP_MAX_COMP_BUF_SIZE / 1024) * 1024) 69 70int cudbg_get_buff(struct cudbg_init *pdbg_init, 71 struct cudbg_buffer *pdbg_buff, u32 size, 72 struct cudbg_buffer *pin_buff); 73void cudbg_put_buff(struct cudbg_init *pdbg_init, 74 struct cudbg_buffer *pin_buff); 75void cudbg_update_buff(struct cudbg_buffer *pin_buff, 76 struct cudbg_buffer *pout_buff); 77#endif /* __CUDBG_LIB_COMMON_H__ */