root/drivers/s390/cio/qdio_debug.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. DBF_HEX
  2. DBF_ERROR_HEX
  3. DBF_DEV_HEX

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *  Copyright IBM Corp. 2008
   4  *
   5  *  Author: Jan Glauber (jang@linux.vnet.ibm.com)
   6  */
   7 #ifndef QDIO_DEBUG_H
   8 #define QDIO_DEBUG_H
   9 
  10 #include <asm/debug.h>
  11 #include <asm/qdio.h>
  12 #include "qdio.h"
  13 
  14 /* that gives us 15 characters in the text event views */
  15 #define QDIO_DBF_LEN    32
  16 
  17 extern debug_info_t *qdio_dbf_setup;
  18 extern debug_info_t *qdio_dbf_error;
  19 
  20 #define DBF_ERR         3       /* error conditions     */
  21 #define DBF_WARN        4       /* warning conditions   */
  22 #define DBF_INFO        6       /* informational        */
  23 
  24 #undef DBF_EVENT
  25 #undef DBF_ERROR
  26 #undef DBF_DEV_EVENT
  27 
  28 #define DBF_EVENT(text...) \
  29         do { \
  30                 char debug_buffer[QDIO_DBF_LEN]; \
  31                 snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  32                 debug_text_event(qdio_dbf_setup, DBF_ERR, debug_buffer); \
  33         } while (0)
  34 
  35 static inline void DBF_HEX(void *addr, int len)
  36 {
  37         debug_event(qdio_dbf_setup, DBF_ERR, addr, len);
  38 }
  39 
  40 #define DBF_ERROR(text...) \
  41         do { \
  42                 char debug_buffer[QDIO_DBF_LEN]; \
  43                 snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  44                 debug_text_event(qdio_dbf_error, DBF_ERR, debug_buffer); \
  45         } while (0)
  46 
  47 static inline void DBF_ERROR_HEX(void *addr, int len)
  48 {
  49         debug_event(qdio_dbf_error, DBF_ERR, addr, len);
  50 }
  51 
  52 #define DBF_DEV_EVENT(level, device, text...) \
  53         do { \
  54                 char debug_buffer[QDIO_DBF_LEN]; \
  55                 if (debug_level_enabled(device->debug_area, level)) { \
  56                         snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  57                         debug_text_event(device->debug_area, level, debug_buffer); \
  58                 } \
  59         } while (0)
  60 
  61 static inline void DBF_DEV_HEX(struct qdio_irq *dev, void *addr,
  62                                int len, int level)
  63 {
  64         debug_event(dev->debug_area, level, addr, len);
  65 }
  66 
  67 int qdio_allocate_dbf(struct qdio_initialize *init_data,
  68                        struct qdio_irq *irq_ptr);
  69 void qdio_setup_debug_entries(struct qdio_irq *irq_ptr,
  70                               struct ccw_device *cdev);
  71 void qdio_shutdown_debug_entries(struct qdio_irq *irq_ptr);
  72 int qdio_debug_init(void);
  73 void qdio_debug_exit(void);
  74 
  75 #endif

/* [<][>][^][v][top][bottom][index][help] */