xref: /onnv-gate/usr/src/cmd/picl/plugins/sun4v/lib/snmp/debug.h (revision 3941:328be6a20f20)
1*3941Svenki /*
2*3941Svenki  * CDDL HEADER START
3*3941Svenki  *
4*3941Svenki  * The contents of this file are subject to the terms of the
5*3941Svenki  * Common Development and Distribution License (the "License").
6*3941Svenki  * You may not use this file except in compliance with the License.
7*3941Svenki  *
8*3941Svenki  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*3941Svenki  * or http://www.opensolaris.org/os/licensing.
10*3941Svenki  * See the License for the specific language governing permissions
11*3941Svenki  * and limitations under the License.
12*3941Svenki  *
13*3941Svenki  * When distributing Covered Code, include this CDDL HEADER in each
14*3941Svenki  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*3941Svenki  * If applicable, add the following below this CDDL HEADER, with the
16*3941Svenki  * fields enclosed by brackets "[]" replaced with your own identifying
17*3941Svenki  * information: Portions Copyright [yyyy] [name of copyright owner]
18*3941Svenki  *
19*3941Svenki  * CDDL HEADER END
20*3941Svenki  */
21*3941Svenki 
22*3941Svenki /*
23*3941Svenki  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24*3941Svenki  * Use is subject to license terms.
25*3941Svenki  */
26*3941Svenki 
27*3941Svenki #ifndef	_DEBUG_H
28*3941Svenki #define	_DEBUG_H
29*3941Svenki 
30*3941Svenki #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*3941Svenki 
32*3941Svenki #ifdef	__cplusplus
33*3941Svenki extern "C" {
34*3941Svenki #endif
35*3941Svenki 
36*3941Svenki #ifdef SNMP_DEBUG
37*3941Svenki 
38*3941Svenki /*
39*3941Svenki  * ASN Debugging keys
40*3941Svenki  */
41*3941Svenki #define	SNMP_DASN_SEQUENCE	1
42*3941Svenki #define	SNMP_DASN_LENGTH	2
43*3941Svenki #define	SNMP_DASN_INT		3
44*3941Svenki #define	SNMP_DASN_OCTET_STR	4
45*3941Svenki #define	SNMP_DASN_OID		5
46*3941Svenki #define	SNMP_DASN_NULL		6
47*3941Svenki 
48*3941Svenki /*
49*3941Svenki  * Debug tags
50*3941Svenki  */
51*3941Svenki #define	TAG_CMD_REQUEST		0
52*3941Svenki #define	TAG_NULL_VAR		1
53*3941Svenki #define	TAG_RESPONSE_VAR	2
54*3941Svenki #define	TAG_REQUEST_PDU		3
55*3941Svenki #define	TAG_RESPONSE_PDU	4
56*3941Svenki #define	TAG_REQUEST_PKT		5
57*3941Svenki #define	TAG_RESPONSE_PKT	6
58*3941Svenki #define	TAG_WRITE		7
59*3941Svenki #define	TAG_IOCTL		8
60*3941Svenki #define	TAG_READ		9
61*3941Svenki #define	TAG_SENDTO		10
62*3941Svenki #define	TAG_RECVFROM		11
63*3941Svenki 
64*3941Svenki /*
65*3941Svenki  * Debug macros
66*3941Svenki  */
67*3941Svenki #define	LOGINIT() \
68*3941Svenki 	snmp_debug_init()
69*3941Svenki 
70*3941Svenki #define	LOGGET(tag, prefix, row) \
71*3941Svenki 	snmp_log_cmd(tag, SNMP_MSG_GET, 1, prefix, row)
72*3941Svenki 
73*3941Svenki #define	LOGBULK(tag, n_oids, oidstrs, row) \
74*3941Svenki 	snmp_log_cmd(tag, SNMP_MSG_GETBULK, n_oids, oidstrs, row)
75*3941Svenki 
76*3941Svenki #define	LOGNEXT(tag, prefix, row) \
77*3941Svenki 	snmp_log_cmd(tag, SNMP_MSG_GETNEXT, 1, prefix, row)
78*3941Svenki 
79*3941Svenki #define	LOGVAR(tag, vp) \
80*3941Svenki 	snmp_log_var(tag, vp)
81*3941Svenki 
82*3941Svenki #define	LOGPDU(tag, pdu) \
83*3941Svenki 	snmp_log_pdu(tag, pdu)
84*3941Svenki 
85*3941Svenki #define	LOGASNSEQ(pkt, pktsz) \
86*3941Svenki 	snmp_log_asn(SNMP_DASN_SEQUENCE, pkt, pktsz)
87*3941Svenki 
88*3941Svenki #define	LOGASNLENGTH(pkt, pktsz) \
89*3941Svenki 	snmp_log_asn(SNMP_DASN_LENGTH, pkt, pktsz)
90*3941Svenki 
91*3941Svenki #define	LOGASNINT(pkt, pktsz) \
92*3941Svenki 	snmp_log_asn(SNMP_DASN_INT, pkt, pktsz)
93*3941Svenki 
94*3941Svenki #define	LOGASNOCTSTR(pkt, pktsz) \
95*3941Svenki 	snmp_log_asn(SNMP_DASN_OCTET_STR, pkt, pktsz)
96*3941Svenki 
97*3941Svenki #define	LOGASNOID(pkt, pktsz) \
98*3941Svenki 	snmp_log_asn(SNMP_DASN_OID, pkt, pktsz)
99*3941Svenki 
100*3941Svenki #define	LOGASNNULL(pkt, pktsz) \
101*3941Svenki 	snmp_log_asn(SNMP_DASN_NULL, pkt, pktsz)
102*3941Svenki 
103*3941Svenki #define	LOGPKT(tag, pkt, sz) \
104*3941Svenki 	snmp_log_pkt(tag, pkt, sz)
105*3941Svenki 
106*3941Svenki #define	LOGIO(tag, a1, a2, a3) \
107*3941Svenki 	snmp_log_io(tag, (int)a1, (uint_t)a2, (uint_t)a3)
108*3941Svenki 
109*3941Svenki /*
110*3941Svenki  * Exported debug interfaces
111*3941Svenki  */
112*3941Svenki extern void	snmp_debug_init(void);
113*3941Svenki extern void	snmp_log_cmd(uint_t tag, int cmd, int n_oids,
114*3941Svenki 		    char *oidstr, int row);
115*3941Svenki extern void	snmp_log_var(uint_t tag, pdu_varlist_t *vp);
116*3941Svenki extern void	snmp_log_pdu(uint_t tag, snmp_pdu_t *pdu);
117*3941Svenki extern void	snmp_log_asn(int key, uchar_t *pkt, size_t pktsz);
118*3941Svenki extern void	snmp_log_pkt(uint_t tag, uchar_t *pkt, size_t pktsz);
119*3941Svenki extern void	snmp_log_io(uint_t tag, int a1, uint_t a2, uint_t a3);
120*3941Svenki 
121*3941Svenki #else /* SNMP_DEBUG */
122*3941Svenki 
123*3941Svenki #define	LOGINIT()
124*3941Svenki #define	LOGGET(tag, prefix, row)
125*3941Svenki #define	LOGBULK(tag, n_oids, oidstrs, row)
126*3941Svenki #define	LOGNEXT(tag, prefix, row)
127*3941Svenki #define	LOGVAR(tag, vp)
128*3941Svenki #define	LOGPDU(tag, pdu)
129*3941Svenki #define	LOGASNSEQ(pkt, pktsz)
130*3941Svenki #define	LOGASNLENGTH(pkt, pktsz)
131*3941Svenki #define	LOGASNINT(pkt, pktsz)
132*3941Svenki #define	LOGASNOCTSTR(pkt, pktsz)
133*3941Svenki #define	LOGASNOID(pkt, pktsz)
134*3941Svenki #define	LOGASNNULL(pkt, pktsz)
135*3941Svenki #define	LOGPKT(tag, pkt, sz)
136*3941Svenki #define	LOGIO(tag, a1, a2, a3)
137*3941Svenki 
138*3941Svenki #endif /* SNMP_DEBUG */
139*3941Svenki 
140*3941Svenki #ifdef	__cplusplus
141*3941Svenki }
142*3941Svenki #endif
143*3941Svenki 
144*3941Svenki #endif	/* _DEBUG_H */
145