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 | |
11 | enum cudbg_dump_type { |
12 | CUDBG_DUMP_TYPE_MINI = 1, |
13 | }; |
14 | |
15 | enum cudbg_compression_type { |
16 | CUDBG_COMPRESSION_NONE = 1, |
17 | CUDBG_COMPRESSION_ZLIB, |
18 | }; |
19 | |
20 | struct 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 | |
35 | struct 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 | |
49 | struct cudbg_ver_hdr { |
50 | u32 signature; |
51 | u16 revision; |
52 | u16 size; |
53 | }; |
54 | |
55 | struct cudbg_buffer { |
56 | u32 size; |
57 | u32 offset; |
58 | char *data; |
59 | }; |
60 | |
61 | struct 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 | |
70 | int cudbg_get_buff(struct cudbg_init *pdbg_init, |
71 | struct cudbg_buffer *pdbg_buff, u32 size, |
72 | struct cudbg_buffer *pin_buff); |
73 | void cudbg_put_buff(struct cudbg_init *pdbg_init, |
74 | struct cudbg_buffer *pin_buff); |
75 | void cudbg_update_buff(struct cudbg_buffer *pin_buff, |
76 | struct cudbg_buffer *pout_buff); |
77 | #endif /* __CUDBG_LIB_COMMON_H__ */ |
78 | |