~ubuntu-branches/ubuntu/quantal/zaptel/quantal

« back to all changes in this revision

Viewing changes to kernel/xpp/zap_debug.h

  • Committer: Bazaar Package Importer
  • Author(s): Tzafrir Cohen
  • Date: 2008-08-28 22:58:23 UTC
  • mfrom: (11.1.11 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080828225823-r8bdunirm8hmc76m
Tags: 1:1.4.11~dfsg-2
* Patch xpp_fxs_power: Fixed an issue with hook detection of the Astribank
  FXS module.
* Don't fail init.d script if fxotune fails. This may happen if running it
  when Asterisk is already running.
* Bump standards version to 3.8.0.0 .
* Ignore false lintian warning ("m-a a-i" has "a a").
* Patch xpp_fxo_cid_always: do always pass PCM if that's what the user
  asked.
* Patch vzaphfc_proc_root_dir: fix vzaphfc on 2.6.26.
* Patch wcte12xp_flags: Proper time for irq save flags.
* Patch headers_2627: Fix location of semaphore.h for 2.6.27 .
* Patch xpp_fxs_dtmf_leak: Don't play DTMFs to the wrong channel.
* Patch wctdm_fix_alarm: Fix sending channel alarms.
* Patch device_class_2626: Fix building 2.6.26 (Closes: #493397).
* Using dh_lintian for lintian overrides, hence requiring debhelper 6.0.7.
* Lintian: we know we have direct changes. Too bad we're half-upstream :-(
* Fix doc-base section names. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef ZAP_DEBUG_H
 
2
#define ZAP_DEBUG_H
 
3
/*
 
4
 * Written by Oron Peled <oron@actcom.co.il>
 
5
 * Copyright (C) 2004-2006, Xorcom
 
6
 *
 
7
 * All rights reserved.
 
8
 *
 
9
 * This program is free software; you can redistribute it and/or modify
 
10
 * it under the terms of the GNU General Public License as published by
 
11
 * the Free Software Foundation; either version 2 of the License, or
 
12
 * (at your option) any later version.
 
13
 *
 
14
 * This program is distributed in the hope that it will be useful,
 
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
 * GNU General Public License for more details.
 
18
 *
 
19
 * You should have received a copy of the GNU General Public License
 
20
 * along with this program; if not, write to the Free Software
 
21
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
22
 *
 
23
 */
 
24
 
 
25
#include <zaptel.h>     /* for zt_* defs */
 
26
 
 
27
/* Debugging Macros */
 
28
 
 
29
#define PRINTK(level, category, fmt, ...)       \
 
30
        printk(KERN_ ## level "%s%s-%s: " fmt, #level, category, THIS_MODULE->name, ## __VA_ARGS__)
 
31
 
 
32
#define XBUS_PRINTK(level, category, xbus, fmt, ...)    \
 
33
        printk(KERN_ ## level "%s%s-%s: %s: " fmt, #level,      \
 
34
                category, THIS_MODULE->name, (xbus)->busname, ## __VA_ARGS__)
 
35
 
 
36
#define XPD_PRINTK(level, category, xpd, fmt, ...)      \
 
37
        printk(KERN_ ## level "%s%s-%s: %s/%s: " fmt, #level,   \
 
38
                category, THIS_MODULE->name, (xpd)->xbus->busname, (xpd)->xpdname, ## __VA_ARGS__)
 
39
 
 
40
#define LINE_PRINTK(level, category, xpd, pos, fmt, ...)        \
 
41
        printk(KERN_ ## level "%s%s-%s: %s/%s/%d: " fmt, #level,        \
 
42
                category, THIS_MODULE->name, (xpd)->xbus->busname, (xpd)->xpdname, (pos), ## __VA_ARGS__)
 
43
 
 
44
#define PORT_PRINTK(level, category, xbus, unit, port, fmt, ...)        \
 
45
        printk(KERN_ ## level "%s%s-%s: %s UNIT=%d PORT=%d: " fmt, #level,      \
 
46
                category, THIS_MODULE->name, (xbus)->busname, (unit), (port), ## __VA_ARGS__)
 
47
 
 
48
#define DBG(bits, fmt, ...)     \
 
49
        ((void)((debug & (DBG_ ## bits)) && PRINTK(DEBUG, "-" #bits, "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)))
 
50
#define INFO(fmt, ...)          PRINTK(INFO, "", fmt, ## __VA_ARGS__)
 
51
#define NOTICE(fmt, ...)        PRINTK(NOTICE, "", fmt, ## __VA_ARGS__)
 
52
#define WARNING(fmt, ...)       PRINTK(WARNING, "", fmt, ## __VA_ARGS__)
 
53
#define ERR(fmt, ...)           PRINTK(ERR, "", fmt, ## __VA_ARGS__)
 
54
 
 
55
#define XBUS_DBG(bits, xbus, fmt, ...)  \
 
56
                        ((void)((debug & (DBG_ ## bits)) && XBUS_PRINTK(DEBUG, "-" #bits, xbus, "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)))
 
57
#define XBUS_INFO(xbus, fmt, ...)               XBUS_PRINTK(INFO, "", xbus, fmt, ## __VA_ARGS__)
 
58
#define XBUS_NOTICE(xbus, fmt, ...)             XBUS_PRINTK(NOTICE, "", xbus, fmt, ## __VA_ARGS__)
 
59
#define XBUS_ERR(xbus, fmt, ...)                XBUS_PRINTK(ERR, "", xbus, fmt, ## __VA_ARGS__)
 
60
 
 
61
#define XPD_DBG(bits, xpd, fmt, ...)    \
 
62
                ((void)((debug & (DBG_ ## bits)) && XPD_PRINTK(DEBUG, "-" #bits, xpd, "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)))
 
63
#define XPD_INFO(xpd, fmt, ...)         XPD_PRINTK(INFO, "", xpd, fmt, ## __VA_ARGS__)
 
64
#define XPD_NOTICE(xpd, fmt, ...)       XPD_PRINTK(NOTICE, "", xpd, fmt, ## __VA_ARGS__)
 
65
#define XPD_WARNING(xpd, fmt, ...)      XPD_PRINTK(WARNING, "", xpd, fmt, ## __VA_ARGS__)
 
66
#define XPD_ERR(xpd, fmt, ...)          XPD_PRINTK(ERR, "", xpd, fmt, ## __VA_ARGS__)
 
67
 
 
68
#define LINE_DBG(bits, xpd, pos, fmt, ...)      \
 
69
                        ((void)((debug & (DBG_ ## bits)) && LINE_PRINTK(DEBUG, "-" #bits, xpd, pos, "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)))
 
70
#define LINE_NOTICE(xpd, pos, fmt, ...)         LINE_PRINTK(NOTICE, "", xpd, pos, fmt, ## __VA_ARGS__)
 
71
#define LINE_ERR(xpd, pos, fmt, ...)            LINE_PRINTK(ERR, "", xpd, pos, fmt, ## __VA_ARGS__)
 
72
 
 
73
#define PORT_DBG(bits, xbus, unit, port, fmt, ...)      \
 
74
                        ((void)((debug & (DBG_ ## bits)) && PORT_PRINTK(DEBUG, "-" #bits,       \
 
75
                                        xbus, unit, port, "%s: " fmt, __FUNCTION__, ## __VA_ARGS__)))
 
76
#define PORT_NOTICE(xbus, unit, port, fmt, ...) PORT_PRINTK(NOTICE, "", xbus, unit, port, fmt, ## __VA_ARGS__)
 
77
#define PORT_ERR(xbus, unit, port, fmt, ...)            PORT_PRINTK(ERR, "", xbus, unit, port, fmt, ## __VA_ARGS__)
 
78
 
 
79
/*
 
80
 * Bits for debug
 
81
 */
 
82
#define DBG_GENERAL     BIT(0)
 
83
#define DBG_PCM         BIT(1)
 
84
#define DBG_LEDS        BIT(2)
 
85
#define DBG_SYNC        BIT(3)
 
86
#define DBG_SIGNAL      BIT(4)
 
87
#define DBG_PROC        BIT(5)
 
88
#define DBG_REGS        BIT(6)
 
89
#define DBG_DEVICES     BIT(7)  /* instantiation/destruction etc. */
 
90
#define DBG_COMMANDS    BIT(8)  /* All commands */
 
91
#define DBG_ANY         (~0)
 
92
 
 
93
void dump_poll(int debug, const char *msg, int poll);
 
94
 
 
95
static inline char *rxsig2str(zt_rxsig_t sig)
 
96
{
 
97
        switch(sig) {
 
98
                case ZT_RXSIG_ONHOOK:   return "ONHOOK";
 
99
                case ZT_RXSIG_OFFHOOK:  return "OFFHOOK";
 
100
                case ZT_RXSIG_START:    return "START";
 
101
                case ZT_RXSIG_RING:     return "RING";
 
102
                case ZT_RXSIG_INITIAL:  return "INITIAL";
 
103
        }
 
104
        return "Unknown rxsig";
 
105
}
 
106
 
 
107
static inline char *txsig2str(zt_txsig_t sig)
 
108
{
 
109
        switch(sig) {
 
110
                case ZT_TXSIG_ONHOOK:   return "TXSIG_ONHOOK";
 
111
                case ZT_TXSIG_OFFHOOK:  return "TXSIG_OFFHOOK";
 
112
                case ZT_TXSIG_START:    return "TXSIG_START";
 
113
                case ZT_TXSIG_KEWL:     return "TXSIG_KEWL";                            /* Drop battery if possible */
 
114
        }
 
115
        return "Unknown txsig";
 
116
}
 
117
 
 
118
static inline char *event2str(int event)
 
119
{
 
120
        switch(event) {
 
121
                case ZT_EVENT_NONE:             return "NONE";
 
122
                case ZT_EVENT_ONHOOK:           return "ONHOOK";
 
123
                case ZT_EVENT_RINGOFFHOOK:      return "RINGOFFHOOK";
 
124
                case ZT_EVENT_WINKFLASH:        return "WINKFLASH";
 
125
                case ZT_EVENT_ALARM:            return "ALARM";
 
126
                case ZT_EVENT_NOALARM:          return "NOALARM";
 
127
                case ZT_EVENT_ABORT:            return "ABORT";
 
128
                case ZT_EVENT_OVERRUN:          return "OVERRUN";
 
129
                case ZT_EVENT_BADFCS:           return "BADFCS";
 
130
                case ZT_EVENT_DIALCOMPLETE:     return "DIALCOMPLETE";
 
131
                case ZT_EVENT_RINGERON:         return "RINGERON";
 
132
                case ZT_EVENT_RINGEROFF:        return "RINGEROFF";
 
133
                case ZT_EVENT_HOOKCOMPLETE:     return "HOOKCOMPLETE";
 
134
                case ZT_EVENT_BITSCHANGED:      return "BITSCHANGED";
 
135
                case ZT_EVENT_PULSE_START:      return "PULSE_START";
 
136
                case ZT_EVENT_TIMER_EXPIRED:    return "TIMER_EXPIRED";
 
137
                case ZT_EVENT_TIMER_PING:       return "TIMER_PING";
 
138
                case ZT_EVENT_POLARITY:         return "POLARITY";
 
139
        }
 
140
        return "Unknown event";
 
141
}
 
142
 
 
143
static inline char *hookstate2str(int hookstate)
 
144
{
 
145
        switch(hookstate) {
 
146
                case ZT_ONHOOK:         return "ZT_ONHOOK";
 
147
                case ZT_START:          return "ZT_START";
 
148
                case ZT_OFFHOOK:        return "ZT_OFFHOOK";
 
149
                case ZT_WINK:           return "ZT_WINK";
 
150
                case ZT_FLASH:          return "ZT_FLASH";
 
151
                case ZT_RING:           return "ZT_RING";
 
152
                case ZT_RINGOFF:        return "ZT_RINGOFF";
 
153
        }
 
154
        return "Unknown hookstate";
 
155
}
 
156
 
 
157
/* From zaptel.c */
 
158
static inline char *sig2str(int sig)
 
159
{
 
160
        switch (sig) {
 
161
                case ZT_SIG_FXSLS:      return "FXSLS";
 
162
                case ZT_SIG_FXSKS:      return "FXSKS";
 
163
                case ZT_SIG_FXSGS:      return "FXSGS";
 
164
                case ZT_SIG_FXOLS:      return "FXOLS";
 
165
                case ZT_SIG_FXOKS:      return "FXOKS";
 
166
                case ZT_SIG_FXOGS:      return "FXOGS";
 
167
                case ZT_SIG_EM:         return "E&M";
 
168
                case ZT_SIG_EM_E1:      return "E&M-E1";
 
169
                case ZT_SIG_CLEAR:      return "Clear";
 
170
                case ZT_SIG_HDLCRAW:    return "HDLCRAW";
 
171
                case ZT_SIG_HDLCFCS:    return "HDLCFCS";
 
172
                case ZT_SIG_HDLCNET:    return "HDLCNET";
 
173
                case ZT_SIG_SLAVE:      return "Slave";
 
174
                case ZT_SIG_CAS:        return "CAS";
 
175
                case ZT_SIG_DACS:       return "DACS";
 
176
                case ZT_SIG_DACS_RBS:   return "DACS+RBS";
 
177
                case ZT_SIG_SF:         return "SF (ToneOnly)";
 
178
                case ZT_SIG_NONE:
 
179
                                        break;
 
180
        }
 
181
        return "Unconfigured";
 
182
}
 
183
 
 
184
static inline char *alarmbit2str(int alarmbit)
 
185
{
 
186
        /* from zaptel.h */
 
187
        switch(1 << alarmbit) {
 
188
                case ZT_ALARM_NONE:     return "NONE";
 
189
                case ZT_ALARM_RECOVER:  return "RECOVER";
 
190
                case ZT_ALARM_LOOPBACK: return "LOOPBACK";
 
191
                case ZT_ALARM_YELLOW:   return "YELLOW";
 
192
                case ZT_ALARM_RED:      return "RED";
 
193
                case ZT_ALARM_BLUE:     return "BLUE";
 
194
                case ZT_ALARM_NOTOPEN:  return "NOTOPEN";
 
195
        }
 
196
        return "UNKNOWN";
 
197
}
 
198
 
 
199
void alarm2str(int alarm, char *buf, int buflen);
 
200
 
 
201
#endif  /* ZAP_DEBUG_H */