Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *  Copyright (C) 2017 Chelsio Communications.  All rights reserved.
0004  */
0005 
0006 #ifndef __CUDBG_LIB_COMMON_H__
0007 #define __CUDBG_LIB_COMMON_H__
0008 
0009 #define CUDBG_SIGNATURE 67856866 /* CUDB in ascii */
0010 
0011 enum cudbg_dump_type {
0012     CUDBG_DUMP_TYPE_MINI = 1,
0013 };
0014 
0015 enum cudbg_compression_type {
0016     CUDBG_COMPRESSION_NONE = 1,
0017     CUDBG_COMPRESSION_ZLIB,
0018 };
0019 
0020 struct cudbg_hdr {
0021     u32 signature;
0022     u32 hdr_len;
0023     u16 major_ver;
0024     u16 minor_ver;
0025     u32 data_len;
0026     u32 hdr_flags;
0027     u16 max_entities;
0028     u8 chip_ver;
0029     u8 dump_type:3;
0030     u8 reserved1:1;
0031     u8 compress_type:4;
0032     u32 reserved[8];
0033 };
0034 
0035 struct cudbg_entity_hdr {
0036     u32 entity_type;
0037     u32 start_offset;
0038     u32 size;
0039     int hdr_flags;
0040     u32 sys_warn;
0041     u32 sys_err;
0042     u8 num_pad;
0043     u8 flag;             /* bit 0 is used to indicate ext data */
0044     u8 reserved1[2];
0045     u32 next_ext_offset; /* pointer to next extended entity meta data */
0046     u32 reserved[5];
0047 };
0048 
0049 struct cudbg_ver_hdr {
0050     u32 signature;
0051     u16 revision;
0052     u16 size;
0053 };
0054 
0055 struct cudbg_buffer {
0056     u32 size;
0057     u32 offset;
0058     char *data;
0059 };
0060 
0061 struct cudbg_error {
0062     int sys_err;
0063     int sys_warn;
0064     int app_err;
0065 };
0066 
0067 #define CDUMP_MAX_COMP_BUF_SIZE ((64 * 1024) - 1)
0068 #define CUDBG_CHUNK_SIZE ((CDUMP_MAX_COMP_BUF_SIZE / 1024) * 1024)
0069 
0070 int cudbg_get_buff(struct cudbg_init *pdbg_init,
0071            struct cudbg_buffer *pdbg_buff, u32 size,
0072            struct cudbg_buffer *pin_buff);
0073 void cudbg_put_buff(struct cudbg_init *pdbg_init,
0074             struct cudbg_buffer *pin_buff);
0075 void cudbg_update_buff(struct cudbg_buffer *pin_buff,
0076                struct cudbg_buffer *pout_buff);
0077 #endif /* __CUDBG_LIB_COMMON_H__ */