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