]> bbs.cooldavid.org Git - net-next-2.6.git/blob - drivers/net/wireless/ath/debug.h
a3a5a628d24dc5c802f422441fde2e7fae90808c
[net-next-2.6.git] / drivers / net / wireless / ath / debug.h
1 /*
2  * Copyright (c) 2008-2009 Atheros Communications Inc.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16
17 #ifndef ATH_DEBUG_H
18 #define ATH_DEBUG_H
19
20 #include "ath.h"
21
22 /**
23  * enum ath_debug_level - atheros wireless debug level
24  *
25  * @ATH_DBG_RESET: reset processing
26  * @ATH_DBG_QUEUE: hardware queue management
27  * @ATH_DBG_EEPROM: eeprom processing
28  * @ATH_DBG_CALIBRATE: periodic calibration
29  * @ATH_DBG_INTERRUPT: interrupt processing
30  * @ATH_DBG_REGULATORY: regulatory processing
31  * @ATH_DBG_ANI: adaptive noise immunitive processing
32  * @ATH_DBG_XMIT: basic xmit operation
33  * @ATH_DBG_BEACON: beacon handling
34  * @ATH_DBG_CONFIG: configuration of the hardware
35  * @ATH_DBG_FATAL: fatal errors, this is the default, DBG_DEFAULT
36  * @ATH_DBG_PS: power save processing
37  * @ATH_DBG_HWTIMER: hardware timer handling
38  * @ATH_DBG_BTCOEX: bluetooth coexistance
39  * @ATH_DBG_BSTUCK: stuck beacons
40  * @ATH_DBG_ANY: enable all debugging
41  *
42  * The debug level is used to control the amount and type of debugging output
43  * we want to see. Each driver has its own method for enabling debugging and
44  * modifying debug level states -- but this is typically done through a
45  * module parameter 'debug' along with a respective 'debug' debugfs file
46  * entry.
47  */
48 enum ATH_DEBUG {
49         ATH_DBG_RESET           = 0x00000001,
50         ATH_DBG_QUEUE           = 0x00000002,
51         ATH_DBG_EEPROM          = 0x00000004,
52         ATH_DBG_CALIBRATE       = 0x00000008,
53         ATH_DBG_INTERRUPT       = 0x00000010,
54         ATH_DBG_REGULATORY      = 0x00000020,
55         ATH_DBG_ANI             = 0x00000040,
56         ATH_DBG_XMIT            = 0x00000080,
57         ATH_DBG_BEACON          = 0x00000100,
58         ATH_DBG_CONFIG          = 0x00000200,
59         ATH_DBG_FATAL           = 0x00000400,
60         ATH_DBG_PS              = 0x00000800,
61         ATH_DBG_HWTIMER         = 0x00001000,
62         ATH_DBG_BTCOEX          = 0x00002000,
63         ATH_DBG_WMI             = 0x00004000,
64         ATH_DBG_BSTUCK          = 0x00008000,
65         ATH_DBG_ANY             = 0xffffffff
66 };
67
68 #define ATH_DBG_DEFAULT (ATH_DBG_FATAL)
69
70 #ifdef CONFIG_ATH_DEBUG
71 void ath_print(struct ath_common *common, int dbg_mask, const char *fmt, ...)
72         __attribute__ ((format (printf, 3, 4)));
73 #else
74 static inline void __attribute__ ((format (printf, 3, 4)))
75 ath_print(struct ath_common *common, int dbg_mask, const char *fmt, ...)
76 {
77 }
78 #endif /* CONFIG_ATH_DEBUG */
79
80 /** Returns string describing opmode, or NULL if unknown mode. */
81 const char *ath_opmode_to_string(enum nl80211_iftype opmode);
82
83 #endif /* ATH_DEBUG_H */