]>
git.saurik.com Git - apple/xnu.git/blob - bsd/netat/debug.h
c4c60afdddf7fc0b66348d89393c7cdab8fc293b
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
29 * Copyright (c) 1988, 1989, 1997 Apple Computer, Inc.
34 #ifndef _NETAT_DEBUG_H_
35 #define _NETAT_DEBUG_H_
36 #include <sys/appleapiopts.h>
37 #ifdef __APPLE_API_OBSOLETE
40 #define D_L_FATAL 0x00000001
41 #define D_L_ERROR 0x00000002
42 #define D_L_WARNING 0x00000004
43 #define D_L_INFO 0x00000008
44 #define D_L_VERBOSE 0x00000010
45 #define D_L_STARTUP 0x00000020
46 #define D_L_STARTUP_LOW 0x00000040
47 #define D_L_SHUTDN 0x00000080
48 #define D_L_SHUTDN_LOW 0x00000100
49 #define D_L_INPUT 0x00000200
50 #define D_L_OUTPUT 0x00000400
51 #define D_L_STATS 0x00000800
52 #define D_L_STATE_CHG 0x00001000 /* re-aarp, ifState etc. */
53 #define D_L_ROUTING 0x00002000
54 #define D_L_DNSTREAM 0x00004000
55 #define D_L_UPSTREAM 0x00008000
56 #define D_L_STARTUP_INFO 0x00010000
57 #define D_L_SHUTDN_INFO 0x00020000
58 #define D_L_ROUTING_AT 0x00040000 /* atalk address routing */
59 #define D_L_USR1 0x01000000
60 #define D_L_USR2 0x02000000
61 #define D_L_USR3 0x04000000
62 #define D_L_USR4 0x08000000
63 #define D_L_TRACE 0x10000000
66 #define D_M_PAT 0x00000001
67 #define D_M_PAT_LOW 0x00000002
68 #define D_M_ELAP 0x00000004
69 #define D_M_ELAP_LOW 0x00000008
70 #define D_M_DDP 0x00000010
71 #define D_M_DDP_LOW 0x00000020
72 #define D_M_NBP 0x00000040
73 #define D_M_NBP_LOW 0x00000080
74 #define D_M_ZIP 0x00000100
75 #define D_M_ZIP_LOW 0x00000200
76 #define D_M_RTMP 0x00000400
77 #define D_M_RTMP_LOW 0x00000800
78 #define D_M_ATP 0x00001000
79 #define D_M_ATP_LOW 0x00002000
80 #define D_M_ADSP 0x00004000
81 #define D_M_ADSP_LOW 0x00008000
82 #define D_M_AEP 0x00010000
83 #define D_M_AARP 0x00020000
84 #define D_M_ASP 0x00040000
85 #define D_M_ASP_LOW 0x00080000
86 #define D_M_AURP 0x00100000
87 #define D_M_AURP_LOW 0x00200000
88 #define D_M_TRACE 0x10000000
90 /* macros for working with atp data at the lap level.
91 * These are for tracehook performance measurements only!!!
92 * It is assumed that the ddp & atp headers are at the top of the
93 * mblk, occupy contiguous memory and the atp headers are of the
97 typedef struct dbgBits
{
98 unsigned long dbgMod
; /* debug module bitmap (used in dPrintf) */
99 unsigned long dbgLev
; /* debug level bitmap */
102 extern dbgBits_t dbgBits
;
104 /* macros for debugging */
106 #define dPrintf(mod, lev, p) \
107 if (((mod) & dbgBits.dbgMod) && ((lev) & dbgBits.dbgLev)) {\
111 #define dPrintf(mod, lev, p)
114 /* 8/5/98 LD: Adds MacOSX kernel debugging facility */
115 /* note: kdebug must be added to the "RELEASE" config in conf/MASTER.ppc */
117 #include <sys/kdebug.h>
120 Strings for the "trace/codes" file:
122 0x02650004 AT_DDPinput
124 0x02680000 AT_ADSP_Misc
125 0x02680004 AT_ADSP_RxData
126 0x02680008 AT_ADSP_SndData
127 0x0268000C AT_ADSP_Read
128 0x02680010 AT_ADSP_Write
129 0x02680014 AT_ADSP_mbuf
130 0x02680018 AT_ADSP_putnext
131 0x0268001c AT_ADSP_ATrw
136 KERNEL_DEBUG(DBG_AT_DDP_INPUT | DBG_FUNC_START, 0,0,0,0,0);
137 KERNEL_DEBUG(DBG_AT_DDP_INPUT, 0,0,0,0,0);
138 KERNEL_DEBUG(DBG_AT_DDP_INPUT | DBG_FUNC_END, 0,0,0,0,0);
141 #define DBG_AT_DDP_INPUT NETDBG_CODE(DBG_NETDDP, 1)
142 #define DBG_AT_DDP_OUTPUT NETDBG_CODE(DBG_NETDDP, 2)
144 #define DBG_ADSP_MISC NETDBG_CODE(DBG_NETADSP, 0)
145 #define DBG_ADSP_RCV NETDBG_CODE(DBG_NETADSP, 1)
146 #define DBG_ADSP_SND NETDBG_CODE(DBG_NETADSP, 2)
147 #define DBG_ADSP_READ NETDBG_CODE(DBG_NETADSP, 3)
148 #define DBG_ADSP_WRITE NETDBG_CODE(DBG_NETADSP, 4)
149 #define DBG_ADSP_MBUF NETDBG_CODE(DBG_NETADSP, 5)
150 #define DBG_ADSP_PNEXT NETDBG_CODE(DBG_NETADSP, 6)
151 #define DBG_ADSP_ATRW NETDBG_CODE(DBG_NETADSP, 7)
154 #define trace_mbufs(pri, str, start)\
156 { int i; gbuf_t *tmp;\
157 for (tmp=start, i=0; tmp && i < 10; tmp = gbuf_cont(tmp), i++) {\
158 dPrintf(pri, D_L_TRACE, ("%s=0x%x, len=%d %s\n",\
159 str, tmp, gbuf_len(tmp),\
160 (((struct mbuf *)tmp)->m_flags & M_EXT)?"CL":""));\
161 KERNEL_DEBUG(DBG_ADSP_MBUF, 0, tmp, gbuf_len(tmp), gbuf_next(tmp), \
162 ((struct mbuf *)tmp)->m_flags & M_EXT);\
167 /* These pointers are non-NULL if logging or tracing are activated. */
169 extern char *log_errp
;
170 extern char *log_trcp
;
171 #endif /* LOG_DRIVER */
173 /* ATTRACE() macro. Use this routine for calling
174 * streams tracing and logging. If `log' is TRUE, then
175 * this event will also be logged if logging is on.
177 #if !defined(lint) && defined(AT_DEBUG)
178 #define ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3) \
179 if (log_trcp || (log && log_errp)) { \
180 strlog(mid,sid,level,SL_TRACE | \
181 (log ? SL_ERROR : 0) | \
182 (level <= AT_LV_FATAL ? SL_FATAL : 0), \
183 fmt,arg1,arg2,arg3); \
186 #define ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3) \
187 /* printf(fmt, arg1, arg2, arg3); */
192 /* Levels for AppleTalk tracing */
194 #define AT_LV_FATAL 1
195 #define AT_LV_ERROR 3
196 #define AT_LV_WARNING 5
198 #define AT_LV_VERBOSE 9
201 /* Sub-ids for AppleTalk tracing, add more if you can't figure
202 * out where your event belongs.
205 #define AT_SID_INPUT 1 /* Network incoming packets */
206 #define AT_SID_OUTPUT 2 /* Network outgoing packets */
207 #define AT_SID_TIMERS 3 /* Protocol timers */
208 #define AT_SID_FLOWCTRL 4 /* Protocol flow control */
209 #define AT_SID_USERREQ 5 /* User requests */
210 #define AT_SID_RESOURCE 6 /* Resource limitations */
214 /* Module ID's for AppleTalk subsystems */
216 #define AT_MID(n) (200+n)
219 #define AT_MID_MISC AT_MID(0) not used
220 #define AT_MID_LLAP AT_MID(1) not_used
221 #define AT_MID_ELAP 202 moved to lap.h
222 #define AT_MID_DDP 203 moved to ddp.h
223 #define AT_MID_RTMP AT_MID(4) not used
224 #define AT_MID_NBP AT_MID(5) not used
225 #define AT_MID_EP AT_MID(6) not used
226 #define AT_MID_ATP AT_MID(7) not used
227 #define AT_MID_ZIP AT_MID(8) not needed
228 #define AT_MID_PAP AT_MID(9) not used
229 #define AT_MID_ASP AT_MID(10) redefined in adsp.h
230 #define AT_MID_AFP AT_MID(11) not used
231 #define AT_MID_ADSP 212 moved to adsp.h
232 #define AT_MID_NBPD AT_MID(13) not used
233 #define AT_MID_LAP 214 moved to lap.h
234 #define AT_MID_LAST 214
237 #ifdef AT_MID_STRINGS
238 static char *at_mid_strings
[] = {
259 /* Don't define these if they're already defined */
261 /* Flags for log messages */
263 #define SL_FATAL 01 /* indicates fatal error */
264 #define SL_NOTIFY 02 /* logger must notify administrator */
265 #define SL_ERROR 04 /* include on the error log */
266 #define SL_TRACE 010 /* include on the trace log */
271 #endif /* __APPLE_API_OBSOLETE */
272 #endif /* _NETAT_DEBUG_H_ */