The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/cxgbe/cudbg/cudbg_lib.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 2017 Chelsio Communications, Inc.
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain the above copyright
    9  *    notice, this list of conditions and the following disclaimer.
   10  * 2. Redistributions in binary form must reproduce the above copyright
   11  *    notice, this list of conditions and the following disclaimer in the
   12  *    documentation and/or other materials provided with the distribution.
   13  *
   14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   24  * SUCH DAMAGE.
   25  *
   26  * $FreeBSD$
   27  *
   28  */
   29 
   30 #ifndef __CUDBG_LIB_H__
   31 #define __CUDBG_LIB_H__
   32 
   33 #ifndef min_t
   34 #define min_t(type, _a, _b)   (((type)(_a) < (type)(_b)) ? (type)(_a) : (type)(_b))
   35 #endif
   36 
   37 static int collect_reg_dump(struct cudbg_init *, struct cudbg_buffer *,
   38                             struct cudbg_error *);
   39 static int collect_fw_devlog(struct cudbg_init *, struct cudbg_buffer *,
   40                              struct cudbg_error *);
   41 static int collect_cim_qcfg(struct cudbg_init *, struct cudbg_buffer *,
   42                             struct cudbg_error *);
   43 static int collect_cim_la(struct cudbg_init *, struct cudbg_buffer *,
   44                           struct cudbg_error *);
   45 static int collect_cim_ma_la(struct cudbg_init *, struct cudbg_buffer *,
   46                              struct cudbg_error *);
   47 static int collect_cim_obq_ulp0(struct cudbg_init *, struct cudbg_buffer *,
   48                                 struct cudbg_error *);
   49 static int collect_cim_obq_ulp1(struct cudbg_init *, struct cudbg_buffer *,
   50                                 struct cudbg_error *);
   51 static int collect_cim_obq_ulp2(struct cudbg_init *, struct cudbg_buffer *,
   52                                 struct cudbg_error *);
   53 static int collect_cim_obq_ulp3(struct cudbg_init *, struct cudbg_buffer *,
   54                                 struct cudbg_error *);
   55 static int collect_cim_obq_sge(struct cudbg_init *, struct cudbg_buffer *,
   56                                struct cudbg_error *);
   57 static int collect_cim_obq_ncsi(struct cudbg_init *, struct cudbg_buffer *,
   58                                 struct cudbg_error *);
   59 static int collect_cim_ibq_tp0(struct cudbg_init *, struct cudbg_buffer *,
   60                                struct cudbg_error *);
   61 static int collect_cim_ibq_tp1(struct cudbg_init *, struct cudbg_buffer *,
   62                                struct cudbg_error *);
   63 static int collect_cim_ibq_ulp(struct cudbg_init *, struct cudbg_buffer *,
   64                                struct cudbg_error *);
   65 static int collect_cim_ibq_sge0(struct cudbg_init *, struct cudbg_buffer *,
   66                                 struct cudbg_error *);
   67 static int collect_cim_ibq_sge1(struct cudbg_init *, struct cudbg_buffer *,
   68                                 struct cudbg_error *);
   69 static int collect_cim_ibq_ncsi(struct cudbg_init *, struct cudbg_buffer *,
   70                                 struct cudbg_error *);
   71 static int collect_edc0_meminfo(struct cudbg_init *, struct cudbg_buffer *,
   72                                 struct cudbg_error *);
   73 static int collect_edc1_meminfo(struct cudbg_init *, struct cudbg_buffer *,
   74                                 struct cudbg_error *);
   75 static int collect_mc0_meminfo(struct cudbg_init *, struct cudbg_buffer *,
   76                                struct cudbg_error *);
   77 static int collect_mc1_meminfo(struct cudbg_init *, struct cudbg_buffer *,
   78                                struct cudbg_error *);
   79 static int collect_rss(struct cudbg_init *, struct cudbg_buffer *,
   80                        struct cudbg_error *);
   81 static int collect_rss_key(struct cudbg_init *, struct cudbg_buffer *,
   82                            struct cudbg_error *);
   83 static int collect_rss_pf_config(struct cudbg_init *, struct cudbg_buffer *,
   84                                  struct cudbg_error *);
   85 static int collect_rss_vf_config(struct cudbg_init *, struct cudbg_buffer *,
   86                                  struct cudbg_error *);
   87 static int collect_rss_config(struct cudbg_init *, struct cudbg_buffer *,
   88                               struct cudbg_error *);
   89 static int collect_path_mtu(struct cudbg_init *, struct cudbg_buffer *,
   90                             struct cudbg_error *);
   91 static int collect_sw_state(struct cudbg_init *, struct cudbg_buffer *,
   92                             struct cudbg_error *);
   93 int collect_wtp_data(struct cudbg_init *, struct cudbg_buffer *,
   94                      struct cudbg_error *);
   95 static int collect_pm_stats(struct cudbg_init *, struct cudbg_buffer *,
   96                             struct cudbg_error *);
   97 static int collect_hw_sched(struct cudbg_init *, struct cudbg_buffer *,
   98                             struct cudbg_error *);
   99 static int collect_tcp_stats(struct cudbg_init *, struct cudbg_buffer *,
  100                              struct cudbg_error *);
  101 static int collect_tp_err_stats(struct cudbg_init *, struct cudbg_buffer *,
  102                                 struct cudbg_error *);
  103 static int collect_fcoe_stats(struct cudbg_init *, struct cudbg_buffer *,
  104                               struct cudbg_error *);
  105 static int collect_rdma_stats(struct cudbg_init *, struct cudbg_buffer *,
  106                               struct cudbg_error *);
  107 static int collect_tp_indirect(struct cudbg_init *, struct cudbg_buffer *,
  108                                struct cudbg_error *);
  109 static int collect_sge_indirect(struct cudbg_init *, struct cudbg_buffer *,
  110                                 struct cudbg_error *);
  111 static int collect_cpl_stats(struct cudbg_init *, struct cudbg_buffer *,
  112                              struct cudbg_error *);
  113 static int collect_ddp_stats(struct cudbg_init *, struct cudbg_buffer *,
  114                              struct cudbg_error *);
  115 static int collect_wc_stats(struct cudbg_init *, struct cudbg_buffer *,
  116                             struct cudbg_error *);
  117 static int collect_ulprx_la(struct cudbg_init *, struct cudbg_buffer *,
  118                             struct cudbg_error *);
  119 static int collect_lb_stats(struct cudbg_init *, struct cudbg_buffer *,
  120                             struct cudbg_error *);
  121 static int collect_tp_la(struct cudbg_init *, struct cudbg_buffer *,
  122                          struct cudbg_error *);
  123 static int collect_meminfo(struct cudbg_init *, struct cudbg_buffer *,
  124                            struct cudbg_error *);
  125 static int collect_cim_pif_la(struct cudbg_init *, struct cudbg_buffer *,
  126                               struct cudbg_error *);
  127 static int collect_clk_info(struct cudbg_init *, struct cudbg_buffer *,
  128                             struct cudbg_error *);
  129 static int collect_obq_sge_rx_q0(struct cudbg_init *, struct cudbg_buffer *,
  130                                  struct cudbg_error *);
  131 static int collect_obq_sge_rx_q1(struct cudbg_init *, struct cudbg_buffer *,
  132                                  struct cudbg_error *);
  133 static int collect_macstats(struct cudbg_init *, struct cudbg_buffer *,
  134                             struct cudbg_error *);
  135 static int collect_pcie_indirect(struct cudbg_init *, struct cudbg_buffer *,
  136                                  struct cudbg_error *);
  137 static int collect_pm_indirect(struct cudbg_init *, struct cudbg_buffer *,
  138                                struct cudbg_error *);
  139 static int collect_full(struct cudbg_init *, struct cudbg_buffer *,
  140                         struct cudbg_error *);
  141 static int collect_tx_rate(struct cudbg_init *, struct cudbg_buffer *,
  142                            struct cudbg_error *);
  143 static int collect_tid(struct cudbg_init *, struct cudbg_buffer *,
  144                        struct cudbg_error *);
  145 static int collect_pcie_config(struct cudbg_init *, struct cudbg_buffer *,
  146                                struct cudbg_error *);
  147 static int collect_dump_context(struct cudbg_init *, struct cudbg_buffer *,
  148                                 struct cudbg_error *);
  149 static int collect_mps_tcam(struct cudbg_init *, struct cudbg_buffer *,
  150                             struct cudbg_error *);
  151 static int collect_vpd_data(struct cudbg_init *, struct cudbg_buffer *,
  152                             struct cudbg_error *);
  153 static int collect_le_tcam(struct cudbg_init *, struct cudbg_buffer *,
  154                            struct cudbg_error *);
  155 static int collect_cctrl(struct cudbg_init *, struct cudbg_buffer *,
  156                          struct cudbg_error *);
  157 static int collect_ma_indirect(struct cudbg_init *, struct cudbg_buffer *,
  158                                struct cudbg_error *);
  159 static int collect_ulptx_la(struct cudbg_init *, struct cudbg_buffer *,
  160                 struct cudbg_error *);
  161 static int collect_up_cim_indirect(struct cudbg_init *, struct cudbg_buffer *,
  162                                    struct cudbg_error *);
  163 static int collect_pbt_tables(struct cudbg_init *, struct cudbg_buffer *,
  164                               struct cudbg_error *);
  165 static int collect_mbox_log(struct cudbg_init *, struct cudbg_buffer *,
  166                             struct cudbg_error *);
  167 static int collect_hma_indirect(struct cudbg_init *, struct cudbg_buffer *,
  168                                 struct cudbg_error *);
  169 
  170 static int (*process_entity[])
  171         (struct cudbg_init *, struct cudbg_buffer *, struct cudbg_error *) = {
  172                 collect_reg_dump,
  173                 collect_fw_devlog,
  174                 collect_cim_la,         /*3*/
  175                 collect_cim_ma_la,
  176                 collect_cim_qcfg,
  177                 collect_cim_ibq_tp0,
  178                 collect_cim_ibq_tp1,
  179                 collect_cim_ibq_ulp,
  180                 collect_cim_ibq_sge0,
  181                 collect_cim_ibq_sge1,
  182                 collect_cim_ibq_ncsi,
  183                 collect_cim_obq_ulp0,
  184                 collect_cim_obq_ulp1,   /*13*/
  185                 collect_cim_obq_ulp2,
  186                 collect_cim_obq_ulp3,
  187                 collect_cim_obq_sge,
  188                 collect_cim_obq_ncsi,
  189                 collect_edc0_meminfo,
  190                 collect_edc1_meminfo,
  191                 collect_mc0_meminfo,
  192                 collect_mc1_meminfo,
  193                 collect_rss,            /*22*/
  194                 collect_rss_pf_config,
  195                 collect_rss_key,
  196                 collect_rss_vf_config,
  197                 collect_rss_config,     /*26*/
  198                 collect_path_mtu,       /*27*/
  199                 collect_sw_state,
  200                 collect_wtp_data,
  201                 collect_pm_stats,
  202                 collect_hw_sched,
  203                 collect_tcp_stats,
  204                 collect_tp_err_stats,
  205                 collect_fcoe_stats,
  206                 collect_rdma_stats,
  207                 collect_tp_indirect,
  208                 collect_sge_indirect,
  209                 collect_cpl_stats,
  210                 collect_ddp_stats,
  211                 collect_wc_stats,
  212                 collect_ulprx_la,
  213                 collect_lb_stats,
  214                 collect_tp_la,
  215                 collect_meminfo,
  216                 collect_cim_pif_la,
  217                 collect_clk_info,
  218                 collect_obq_sge_rx_q0,
  219                 collect_obq_sge_rx_q1,
  220                 collect_macstats,
  221                 collect_pcie_indirect,
  222                 collect_pm_indirect,
  223                 collect_full,
  224                 collect_tx_rate,
  225                 collect_tid,
  226                 collect_pcie_config,
  227                 collect_dump_context,
  228                 collect_mps_tcam,
  229                 collect_vpd_data,
  230                 collect_le_tcam,
  231                 collect_cctrl,
  232                 collect_ma_indirect,
  233                 collect_ulptx_la,
  234                 NULL,                   /* ext entity */
  235                 collect_up_cim_indirect,
  236                 collect_pbt_tables,
  237                 collect_mbox_log,
  238                 collect_hma_indirect,
  239         };
  240 
  241 struct large_entity {
  242         int entity_code;
  243         int skip_flag;
  244         int priority; /* 1 is high priority */
  245 };
  246 
  247 static int read_cim_ibq(struct cudbg_init *, struct cudbg_buffer *,
  248                         struct cudbg_error * , int);
  249 static int read_cim_obq(struct cudbg_init *, struct cudbg_buffer *,
  250                         struct cudbg_error *, int);
  251 int get_entity_hdr(void *outbuf, int i, u32 size, struct cudbg_entity_hdr **);
  252 void skip_entity(int entity_code);
  253 void reset_skip_entity(void);
  254 int is_large_entity(int entity_code);
  255 #endif

Cache object: 17abd01021c49348cf71f8d4dba34481


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.