linux/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib_common.h
<<
>>
Prefs
   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