| /* |
| * Copyright (C) 2017 Chelsio Communications. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms and conditions of the GNU General Public License, |
| * version 2, as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| * |
| * The full GNU General Public License is included in this distribution in |
| * the file called "COPYING". |
| * |
| */ |
| |
| #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__ */ |