]>
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_ */