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/qat/qat_api/qat_direct/include/icp_adf_debug.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 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /* Copyright(c) 2007-2022 Intel Corporation */
    3 /* $FreeBSD$ */
    4 /******************************************************************************
    5  * @file icp_adf_debug.h
    6  *
    7  * @description
    8  *      This header file that contains the prototypes and definitions required
    9  *      for ADF debug feature.
   10  *
   11 *****************************************************************************/
   12 #ifndef ICP_ADF_DEBUG_H
   13 #define ICP_ADF_DEBUG_H
   14 
   15 /*
   16  * adf_proc_type_t
   17  * Type of proc file. Simple for files where read funct
   18  * prints less than page size (4kB) and seq type for files
   19  * where read function needs to print more that page size.
   20  */
   21 typedef enum adf_proc_type_e {
   22         ADF_PROC_SIMPLE = 1,
   23         ADF_PROC_SEQ
   24 } adf_proc_type_t;
   25 
   26 /*
   27  * debug_dir_info_t
   28  * Struct which is used to hold information about a debug directory
   29  * under the proc filesystem.
   30  * Client should only set name and parent fields.
   31  */
   32 typedef struct debug_dir_info_s {
   33         char *name;
   34         struct debug_dir_info_s *parent;
   35         /* The below fields are used internally by the driver */
   36         struct debug_dir_info_s *dirChildListHead;
   37         struct debug_dir_info_s *dirChildListTail;
   38         struct debug_dir_info_s *pNext;
   39         struct debug_dir_info_s *pPrev;
   40         struct debug_file_info_s *fileListHead;
   41         struct debug_file_info_s *fileListTail;
   42         void *proc_entry;
   43 } debug_dir_info_t;
   44 
   45 /*
   46  * Read handle type for simple proc file
   47  * Function is called only once and can print up to 4kB (size)
   48  * Function should return number of bytes printed.
   49  */
   50 typedef int (*file_read)(void *private_data, char *buff, int size);
   51 
   52 /*
   53  * Read handle type for sequential proc file
   54  * Function can be called more than once. It will be called until the
   55  * return value is not 0. offset should be used to mark the starting
   56  * point for next step. In one go function can print up to 4kB (size).
   57  * Function should return 0 (zero) if all info is printed or
   58  * offset from where to start in next step.
   59  */
   60 typedef int (*file_read_seq)(void *private_data,
   61                              char *buff,
   62                              int size,
   63                              int offset);
   64 
   65 /*
   66  * debug_file_info_t
   67  * Struct which is used to hold information about a debug file
   68  * under the proc filesystem.
   69  * Client should only set name, type, private_data, parent fields,
   70  * and read or seq_read pointers depending on type used.
   71  */
   72 typedef struct debug_file_info_s {
   73         char *name;
   74         struct debug_dir_info_s *parent;
   75         adf_proc_type_t type;
   76         file_read read;
   77         file_read_seq seq_read;
   78         void *private_data;
   79         /* The below fields are used internally by the driver */
   80         struct debug_file_info_s *pNext;
   81         struct debug_file_info_s *pPrev;
   82         void *page;
   83         Cpa32U offset;
   84         void *proc_entry;
   85 } debug_file_info_t;
   86 
   87 /*
   88  * icp_adf_debugAddDir
   89  *
   90  * Description:
   91  *  Function used by subsystem to register a new
   92  *  directory under the proc filesystem
   93  *
   94  * Returns:
   95  *   CPA_STATUS_SUCCESS    on success
   96  *   CPA_STATUS_FAIL       on failure
   97  */
   98 CpaStatus icp_adf_debugAddDir(icp_accel_dev_t *accel_dev,
   99                               debug_dir_info_t *dir_info);
  100 
  101 /*
  102  * icp_adf_debugRemoveDir
  103  *
  104  * Description:
  105  *  Function used by subsystem to remove an existing
  106  *  directory for which debug output may be stored
  107  *  in the proc filesystem.
  108  *
  109 */
  110 void icp_adf_debugRemoveDir(debug_dir_info_t *dir_info);
  111 
  112 /*
  113  * icp_adf_debugAddFile
  114  *
  115  * Description:
  116  *  Function used by subsystem to add a new file under
  117  *  the proc file system in which debug output may be written
  118  *
  119  * Returns:
  120  *   CPA_STATUS_SUCCESS   on success
  121  *   CPA_STATUS_FAIL      on failure
  122  */
  123 CpaStatus icp_adf_debugAddFile(icp_accel_dev_t *accel_dev,
  124                                debug_file_info_t *file_info);
  125 
  126 /*
  127  * icp_adf_debugRemoveFile
  128  *
  129  * Description:
  130  *  Function used by subsystem to remove an existing file under
  131  *  the proc filesystem in which debug output may be written
  132  *
  133  */
  134 void icp_adf_debugRemoveFile(debug_file_info_t *file_info);
  135 
  136 #endif /* ICP_ADF_DEBUG_H */

Cache object: 1f7db339d364ae7d2f45bcb60892359a


[ 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.