1 /*
2 * Copyright (c) 2017 The Linux Foundation. All rights reserved.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 /**
20 * DOC: qdf_debug_domain
21 * QCA driver framework (QDF) debug domain APIs. Debug domains are used to track
22 * resource allocations across different driver states, particularly for runtime
23 * leak detection.
24 */
25
26 #include "qdf_debug_domain.h"
27 #include "qdf_trace.h"
28
29 static enum qdf_debug_domain qdf_debug_domain_current = QDF_DEBUG_DOMAIN_INIT;
30
qdf_debug_domain_get(void)31 enum qdf_debug_domain qdf_debug_domain_get(void)
32 {
33 return qdf_debug_domain_current;
34 }
35
qdf_debug_domain_set(enum qdf_debug_domain domain)36 void qdf_debug_domain_set(enum qdf_debug_domain domain)
37 {
38 QDF_BUG(qdf_debug_domain_valid(domain));
39 if (!qdf_debug_domain_valid(domain))
40 return;
41
42 qdf_debug_domain_current = domain;
43 }
44
qdf_debug_domain_name(enum qdf_debug_domain domain)45 const char *qdf_debug_domain_name(enum qdf_debug_domain domain)
46 {
47 switch (domain) {
48 case QDF_DEBUG_DOMAIN_INIT:
49 return "Init";
50 case QDF_DEBUG_DOMAIN_ACTIVE:
51 return "Active";
52 default:
53 return "Invalid";
54 }
55 }
56
qdf_debug_domain_valid(enum qdf_debug_domain domain)57 bool qdf_debug_domain_valid(enum qdf_debug_domain domain)
58 {
59 return domain >= QDF_DEBUG_DOMAIN_INIT &&
60 domain < QDF_DEBUG_DOMAIN_COUNT;
61 }
62