Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
iwlwifi
iwl-debug.c
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* This file is provided under a dual BSD/GPLv2 license. When using or
4
* redistributing this file, you may do so under either license.
5
*
6
* GPL LICENSE SUMMARY
7
*
8
* Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of version 2 of the GNU General Public License as
12
* published by the Free Software Foundation.
13
*
14
* This program is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
22
* USA
23
*
24
* The full GNU General Public License is included in this distribution
25
* in the file called LICENSE.GPL.
26
*
27
* Contact Information:
28
* Intel Linux Wireless <ilw@linux.intel.com>
29
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
30
*
31
* BSD LICENSE
32
*
33
* Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
34
* All rights reserved.
35
*
36
* Redistribution and use in source and binary forms, with or without
37
* modification, are permitted provided that the following conditions
38
* are met:
39
*
40
* * Redistributions of source code must retain the above copyright
41
* notice, this list of conditions and the following disclaimer.
42
* * Redistributions in binary form must reproduce the above copyright
43
* notice, this list of conditions and the following disclaimer in
44
* the documentation and/or other materials provided with the
45
* distribution.
46
* * Neither the name Intel Corporation nor the names of its
47
* contributors may be used to endorse or promote products derived
48
* from this software without specific prior written permission.
49
*
50
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
51
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
52
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
53
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
54
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
56
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
57
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
58
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
59
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
60
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
61
*
62
*****************************************************************************/
63
64
#define DEBUG
65
66
#include <linux/device.h>
67
#include <
linux/interrupt.h
>
68
#include <linux/export.h>
69
#include "
iwl-debug.h
"
70
#include "
iwl-devtrace.h
"
71
72
#define __iwl_fn(fn) \
73
void __iwl_ ##fn(struct device *dev, const char *fmt, ...) \
74
{ \
75
struct va_format vaf = { \
76
.fmt = fmt, \
77
}; \
78
va_list args; \
79
\
80
va_start(args, fmt); \
81
vaf.va = &args; \
82
dev_ ##fn(dev, "%pV", &vaf); \
83
trace_iwlwifi_ ##fn(&vaf); \
84
va_end(args); \
85
}
86
87
__iwl_fn
(
warn
)
88
EXPORT_SYMBOL_GPL
(
__iwl_warn
);
89
__iwl_fn
(
info
)
90
EXPORT_SYMBOL_GPL
(
__iwl_info
);
91
__iwl_fn
(crit)
92
EXPORT_SYMBOL_GPL
(
__iwl_crit
);
93
94
void
__iwl_err
(
struct
device
*
dev
,
bool
rfkill_prefix,
bool
trace_only,
95
const
char
*
fmt
, ...)
96
{
97
struct
va_format
vaf = {
98
.
fmt
=
fmt
,
99
};
100
va_list
args
;
101
102
va_start
(args, fmt);
103
vaf.
va
= &args;
104
if
(!trace_only) {
105
if
(rfkill_prefix)
106
dev_err
(dev,
"(RFKILL) %pV"
, &vaf);
107
else
108
dev_err
(dev,
"%pV"
, &vaf);
109
}
110
trace_iwlwifi_err(&vaf);
111
va_end
(args);
112
}
113
EXPORT_SYMBOL_GPL
(
__iwl_err
);
114
115
#if defined(CONFIG_IWLWIFI_DEBUG) || defined(CONFIG_IWLWIFI_DEVICE_TRACING)
116
void
__iwl_dbg(
struct
device
*
dev
,
117
u32
level
,
bool
limit
,
const
char
*
function
,
118
const
char
*
fmt
, ...)
119
{
120
struct
va_format
vaf = {
121
.
fmt
=
fmt
,
122
};
123
va_list
args
;
124
125
va_start
(args, fmt);
126
vaf.
va
= &args;
127
#ifdef CONFIG_IWLWIFI_DEBUG
128
if
(iwl_have_debug_level(level) &&
129
(!limit ||
net_ratelimit
()))
130
dev_dbg
(dev,
"%c %s %pV"
,
in_interrupt
() ?
'I'
:
'U'
,
131
function
, &vaf);
132
#endif
133
trace_iwlwifi_dbg(level,
in_interrupt
(),
function
, &vaf);
134
va_end
(args);
135
}
136
EXPORT_SYMBOL_GPL
(__iwl_dbg);
137
#endif
Generated on Thu Jan 10 2013 14:11:47 for Linux Kernel by
1.8.2