xref: /csrg-svn/sys/netiso/argo_debug.h (revision 36364)
1*36364Ssklower /***********************************************************
2*36364Ssklower 		Copyright IBM Corporation 1987
3*36364Ssklower 
4*36364Ssklower                       All Rights Reserved
5*36364Ssklower 
6*36364Ssklower Permission to use, copy, modify, and distribute this software and its
7*36364Ssklower documentation for any purpose and without fee is hereby granted,
8*36364Ssklower provided that the above copyright notice appear in all copies and that
9*36364Ssklower both that copyright notice and this permission notice appear in
10*36364Ssklower supporting documentation, and that the name of IBM not be
11*36364Ssklower used in advertising or publicity pertaining to distribution of the
12*36364Ssklower software without specific, written prior permission.
13*36364Ssklower 
14*36364Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15*36364Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16*36364Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17*36364Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18*36364Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19*36364Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20*36364Ssklower SOFTWARE.
21*36364Ssklower 
22*36364Ssklower ******************************************************************/
23*36364Ssklower 
24*36364Ssklower /*
25*36364Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26*36364Ssklower  */
27*36364Ssklower /*
28*36364Ssklower  * $Header: argo_debug.h,v 4.6 88/07/19 15:53:40 hagens Exp $
29*36364Ssklower  * $Source: /usr/argo/sys/netiso/RCS/argo_debug.h,v $
30*36364Ssklower  */
31*36364Ssklower #ifndef __ARGO_DEBUG__
32*36364Ssklower #define __ARGO_DEBUG__
33*36364Ssklower 
34*36364Ssklower 
35*36364Ssklower /***********************************************
36*36364Ssklower  * Lint stuff
37*36364Ssklower  **********************************************/
38*36364Ssklower #if	defined(lint)
39*36364Ssklower /*
40*36364Ssklower  * lint can't handle the flaky vacuous definitions
41*36364Ssklower  * of IFDEBUG, ENDDEBUG, etc.
42*36364Ssklower  */
43*36364Ssklower #ifndef TPPT
44*36364Ssklower #define TPPT
45*36364Ssklower #endif TPPT
46*36364Ssklower 
47*36364Ssklower #ifndef ARGO_DEBUG
48*36364Ssklower #define ARGO_DEBUG
49*36364Ssklower #endif ARGO_DEBUG
50*36364Ssklower 
51*36364Ssklower #endif	defined(lint)
52*36364Ssklower 
53*36364Ssklower /***********************************************
54*36364Ssklower  * DEBUG ON:
55*36364Ssklower  **********************************************/
56*36364Ssklower 
57*36364Ssklower #ifdef ARGO_DEBUG
58*36364Ssklower unsigned char	argo_debug[128];
59*36364Ssklower 
60*36364Ssklower #define IFDEBUG(ascii) \
61*36364Ssklower 	if(argo_debug[ascii]) {
62*36364Ssklower #define ENDDEBUG  ; }
63*36364Ssklower 
64*36364Ssklower #else  ARGO_DEBUG
65*36364Ssklower 
66*36364Ssklower /***********************************************
67*36364Ssklower  * DEBUG OFF:
68*36364Ssklower  **********************************************/
69*36364Ssklower 
70*36364Ssklower #ifndef STAR
71*36364Ssklower #define STAR *
72*36364Ssklower #endif	STAR
73*36364Ssklower #define IFDEBUG(ascii)	 //*beginning of comment*/STAR
74*36364Ssklower #define ENDDEBUG	 STAR/*end of comment*//
75*36364Ssklower 
76*36364Ssklower #endif ARGO_DEBUG
77*36364Ssklower 
78*36364Ssklower /***********************************************
79*36364Ssklower  * ASSERT
80*36364Ssklower  **********************************************/
81*36364Ssklower #ifdef ARGO_DEBUG
82*36364Ssklower 
83*36364Ssklower #ifndef lint
84*36364Ssklower #define ASSERT(phrase) \
85*36364Ssklower if( !(phrase) ) printf("ASSERTION NOT VALID at line %d file %s\n",__LINE__,__FILE__)
86*36364Ssklower #else lint
87*36364Ssklower #define ASSERT(phrase) /* phrase */
88*36364Ssklower #endif lint
89*36364Ssklower 
90*36364Ssklower #else ARGO_DEBUG
91*36364Ssklower 
92*36364Ssklower #define ASSERT(phrase) /* phrase */
93*36364Ssklower 
94*36364Ssklower #endif ARGO_DEBUG
95*36364Ssklower 
96*36364Ssklower 
97*36364Ssklower /***********************************************
98*36364Ssklower  * CLNP DEBUG OPTIONS
99*36364Ssklower  **********************************************/
100*36364Ssklower #define	D_INPUT			'\1'
101*36364Ssklower /* clnp input */
102*36364Ssklower #define	D_OUTPUT		'\2'
103*36364Ssklower /* clnp output */
104*36364Ssklower #define	D_ROUTE			'\3'
105*36364Ssklower /* clnp routing */
106*36364Ssklower #define	D_CTLINPUT		'\4'
107*36364Ssklower /* clnp control input */
108*36364Ssklower #define	D_CTLOUTPUT		'\5'
109*36364Ssklower /* clnp control output */
110*36364Ssklower #define D_OPTIONS		'\6'
111*36364Ssklower /* clnp options */
112*36364Ssklower #define	D_IOCTL			'\7'
113*36364Ssklower /* iso ioctls */
114*36364Ssklower #define D_ETHER			'\10'
115*36364Ssklower /* clnp over ethernet */
116*36364Ssklower #define D_TOKEN			'\11'
117*36364Ssklower /* clnp over token ring */
118*36364Ssklower #define D_ADCOM			'\12'
119*36364Ssklower /* clnp over the adcom */
120*36364Ssklower #define D_ISO			'\13'
121*36364Ssklower /* iso address family */
122*36364Ssklower #define	D_FORWARD		'\14'
123*36364Ssklower /* clnp forwarding */
124*36364Ssklower #define	D_DUMPOUT		'\15'
125*36364Ssklower /* dump clnp outgoing packets */
126*36364Ssklower #define	D_DUMPIN		'\16'
127*36364Ssklower /* dump clnp input packets */
128*36364Ssklower #define D_DISCARD		'\17'
129*36364Ssklower /* debug clnp packet discard/er function */
130*36364Ssklower #define D_FRAG			'\20'
131*36364Ssklower /* clnp fragmentation */
132*36364Ssklower #define	D_REASS			'\21'
133*36364Ssklower /* clnp reassembly */
134*36364Ssklower 
135*36364Ssklower char *clnp_iso_addrp();
136*36364Ssklower 
137*36364Ssklower /***********************************************
138*36364Ssklower  * ESIS DEBUG OPTIONS
139*36364Ssklower  **********************************************/
140*36364Ssklower #define	D_ESISOUTPUT	'\30'
141*36364Ssklower #define	D_ESISINPUT		'\31'
142*36364Ssklower #define D_SNPA			'\32'
143*36364Ssklower 
144*36364Ssklower /***********************************************
145*36364Ssklower  * EON DEBUG OPTION
146*36364Ssklower  **********************************************/
147*36364Ssklower #define	D_EON			'\57'
148*36364Ssklower 
149*36364Ssklower /***********************************************
150*36364Ssklower  * CONS DEBUG OPTIONS
151*36364Ssklower  **********************************************/
152*36364Ssklower 
153*36364Ssklower #define D_ECNWORK		'\60'
154*36364Ssklower #define D_ECNOUT		'\61'
155*36364Ssklower #define D_ECNFIN		'\62'
156*36364Ssklower #define D_ECNDWN		'\63'
157*36364Ssklower #define D_ECNUTIL		'\64'
158*36364Ssklower 
159*36364Ssklower #define D_INCOMING		'\70'
160*36364Ssklower #define D_CDATA			'\71'
161*36364Ssklower #define D_CFIND			'\72'
162*36364Ssklower #define D_CDUMP_REQ		'\73'
163*36364Ssklower #define D_CADDR			'\74'
164*36364Ssklower #define D_CCONS			'\75'
165*36364Ssklower #define D_CCONN			'\76'
166*36364Ssklower 
167*36364Ssklower 
168*36364Ssklower /***********************************************
169*36364Ssklower  * TP DEBUG OPTIONS
170*36364Ssklower  **********************************************/
171*36364Ssklower 
172*36364Ssklower #define D_SETPARAMS		'\137'
173*36364Ssklower #define D_RTT 			'\140'
174*36364Ssklower 
175*36364Ssklower #define D_ACKRECV 		'\141'
176*36364Ssklower #define D_ACKSEND 		'\142'
177*36364Ssklower #define D_CONN 			'\143'
178*36364Ssklower #define D_CREDIT 		'\144'
179*36364Ssklower #define D_DATA 			'\145'
180*36364Ssklower #define D_DRIVER 		'\146'
181*36364Ssklower 
182*36364Ssklower #define D_EMIT 			'\147'
183*36364Ssklower #define D_ERROR_EMIT 	'\150'
184*36364Ssklower #define D_TPINPUT 		'\151'
185*36364Ssklower #define D_INDICATION 	'\152'
186*36364Ssklower #define D_CHKSUM 		'\153'
187*36364Ssklower 
188*36364Ssklower #define D_RENEG 		'\154'
189*36364Ssklower #define D_PERF_MEAS 	'\155'
190*36364Ssklower #define D_MBUF_MEAS 	'\156'
191*36364Ssklower #define D_RTC 			'\157'
192*36364Ssklower #define D_SB 			'\160'
193*36364Ssklower 
194*36364Ssklower #define D_DISASTER_CHECK '\161'
195*36364Ssklower #define D_REQUEST 		'\162'
196*36364Ssklower #define D_STASH 		'\163'
197*36364Ssklower #define D_NEWSOCK 		'\164'
198*36364Ssklower #define D_TIMER 		'\165'
199*36364Ssklower 
200*36364Ssklower #define D_TPIOCTL 		'\166'
201*36364Ssklower #define D_SIZE_CHECK 	'\167'
202*36364Ssklower #define D_2ER 			'\170'
203*36364Ssklower #define D_DISASTER_CHECK_W '\171'
204*36364Ssklower 
205*36364Ssklower #define D_XPD 			'\172'
206*36364Ssklower #define D_SYSCALL 		'\173'
207*36364Ssklower #define D_DROP 			'\174'
208*36364Ssklower #define D_ZDREF 		'\175'
209*36364Ssklower #define D_TPISO			'\176'
210*36364Ssklower #define D_QUENCH		'\177'
211*36364Ssklower 
212*36364Ssklower void dump_mbuf();
213*36364Ssklower 
214*36364Ssklower /***********************************************
215*36364Ssklower  * New mbuf types for debugging w/ netstat -m
216*36364Ssklower  **********************************************/
217*36364Ssklower #ifdef ARGO_DEBUG
218*36364Ssklower 
219*36364Ssklower #define 	TPMT_DATA	0x21
220*36364Ssklower #define 	TPMT_RCVRTC	0x42
221*36364Ssklower #define 	TPMT_SNDRTC	0x41
222*36364Ssklower #define 	TPMT_TPHDR	0x22
223*36364Ssklower #define 	TPMT_IPHDR	0x32
224*36364Ssklower #define 	TPMT_SONAME	0x28
225*36364Ssklower #define 	TPMT_EOT	0x40
226*36364Ssklower #define 	TPMT_XPD	0x44
227*36364Ssklower #define 	TPMT_PCB	0x23
228*36364Ssklower #define 	TPMT_PERF	0x45
229*36364Ssklower 
230*36364Ssklower #else ARGO_DEBUG
231*36364Ssklower 
232*36364Ssklower #define 	TPMT_DATA	MT_DATA
233*36364Ssklower #define 	TPMT_RCVRTC	MT_DATA
234*36364Ssklower #define 	TPMT_SNDRTC	MT_DATA
235*36364Ssklower #define 	TPMT_IPHDR	MT_HEADER
236*36364Ssklower #define 	TPMT_TPHDR	MT_HEADER
237*36364Ssklower #define 	TPMT_SONAME	MT_SONAME
238*36364Ssklower /* MT_EOT and MT_XPD are defined in tp_param.h */
239*36364Ssklower #define 	TPMT_EOT	MT_EOT
240*36364Ssklower #define 	TPMT_XPD	MT_XPD
241*36364Ssklower #define 	TPMT_PCB	MT_PCB
242*36364Ssklower #define 	TPMT_PERF	MT_PCB
243*36364Ssklower 
244*36364Ssklower #endif ARGO_DEBUG
245*36364Ssklower 
246*36364Ssklower #endif __ARGO_DEBUG__
247