78 lines · c
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__ */78