home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / netat / debug.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  7.3 KB  |  263 lines

  1. /*
  2.  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  3.  *
  4.  * @APPLE_LICENSE_HEADER_START@
  5.  * 
  6.  * The contents of this file constitute Original Code as defined in and
  7.  * are subject to the Apple Public Source License Version 1.1 (the
  8.  * "License").  You may not use this file except in compliance with the
  9.  * License.  Please obtain a copy of the License at
  10.  * http://www.apple.com/publicsource and read it before using this file.
  11.  * 
  12.  * This Original Code and all software distributed under the License are
  13.  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14.  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17.  * License for the specific language governing rights and limitations
  18.  * under the License.
  19.  * 
  20.  * @APPLE_LICENSE_HEADER_END@
  21.  */
  22. /*
  23.  *      Copyright (c) 1988, 1989, 1997 Apple Computer, Inc.
  24.  */
  25.  
  26. /* netat/debug.h */
  27.  
  28. #ifndef _NETAT_DEBUG_H_
  29. #define _NETAT_DEBUG_H_
  30.  
  31. #define D_L_FATAL        0x00000001
  32. #define D_L_ERROR        0x00000002
  33. #define D_L_WARNING        0x00000004
  34. #define D_L_INFO        0x00000008
  35. #define D_L_VERBOSE        0x00000010
  36. #define D_L_STARTUP         0x00000020
  37. #define D_L_STARTUP_LOW        0x00000040
  38. #define D_L_SHUTDN        0x00000080
  39. #define D_L_SHUTDN_LOW        0x00000100
  40. #define D_L_INPUT        0x00000200
  41. #define D_L_OUTPUT        0x00000400
  42. #define D_L_STATS        0x00000800
  43. #define D_L_STATE_CHG        0x00001000    /* re-aarp, ifState etc. */
  44. #define D_L_ROUTING        0x00002000
  45. #define D_L_DNSTREAM        0x00004000
  46. #define D_L_UPSTREAM        0x00008000
  47. #define D_L_STARTUP_INFO    0x00010000
  48. #define D_L_SHUTDN_INFO        0x00020000
  49. #define D_L_ROUTING_AT        0x00040000    /* atalk address routing */
  50. #define D_L_USR1        0x01000000
  51. #define D_L_USR2        0x02000000
  52. #define D_L_USR3        0x04000000
  53. #define D_L_USR4        0x08000000
  54. #define D_L_TRACE        0x10000000
  55.  
  56.  
  57. #define D_M_PAT            0x00000001
  58. #define D_M_PAT_LOW        0x00000002
  59. #define D_M_ELAP        0x00000004
  60. #define D_M_ELAP_LOW        0x00000008
  61. #define D_M_DDP            0x00000010
  62. #define D_M_DDP_LOW        0x00000020
  63. #define D_M_NBP            0x00000040
  64. #define D_M_NBP_LOW        0x00000080
  65. #define D_M_ZIP            0x00000100
  66. #define D_M_ZIP_LOW        0x00000200
  67. #define D_M_RTMP        0x00000400
  68. #define D_M_RTMP_LOW        0x00000800
  69. #define D_M_ATP            0x00001000
  70. #define D_M_ATP_LOW        0x00002000
  71. #define D_M_ADSP        0x00004000
  72. #define D_M_ADSP_LOW        0x00008000
  73. #define D_M_AEP            0x00010000
  74. #define D_M_AARP        0x00020000
  75. #define D_M_ASP            0x00040000
  76. #define D_M_ASP_LOW        0x00080000
  77. #define D_M_AURP        0x00100000
  78. #define D_M_AURP_LOW        0x00200000
  79. #define D_M_TRACE        0x10000000
  80.  
  81.     /* macros for working with atp data at the lap level. 
  82.      * These are for tracehook performance measurements only!!!
  83.      * It is assumed that the ddp & atp headers are at the top of the
  84.      * mblk, occupy contiguous memory and the atp headers are of the
  85.      * extended type only.
  86.      */
  87.  
  88. typedef struct dbgBits {
  89.     unsigned long     dbgMod;    /* debug module bitmap (used in dPrintf) */
  90.     unsigned long     dbgLev;    /* debug level bitmap */
  91. } dbgBits_t;
  92.  
  93. extern dbgBits_t     dbgBits;
  94.  
  95.     /* macros for debugging */
  96. #ifdef DEBUG
  97. #define dPrintf(mod, lev, p) \
  98.     if (((mod) & dbgBits.dbgMod) && ((lev) & dbgBits.dbgLev)) {\
  99.          kprintf p;  \
  100.     }
  101. #else
  102. #define dPrintf(mod, lev, p)
  103. #endif
  104.  
  105. /* 8/5/98 LD: Adds MacOSX kernel debugging facility */
  106. /* note: kdebug must be added to the "RELEASE" config in conf/MASTER.ppc */
  107.  
  108. #include <sys/kdebug.h>
  109. #if KDEBUG
  110. /*
  111.   Strings for the "trace/codes" file:
  112.  
  113. 0x02650004      AT_DDPinput
  114.  
  115. 0x02680000      AT_ADSP_Misc
  116. 0x02680004      AT_ADSP_RxData
  117. 0x02680008      AT_ADSP_SndData
  118. 0x0268000C      AT_ADSP_Read
  119. 0x02680010      AT_ADSP_Write
  120. 0x02680014      AT_ADSP_mbuf
  121. 0x02680018      AT_ADSP_putnext
  122. 0x0268001c      AT_ADSP_ATrw
  123.  
  124. */
  125.  
  126. /* usage:
  127.       KERNEL_DEBUG(DBG_AT_DDP_INPUT | DBG_FUNC_START, 0,0,0,0,0);
  128.       KERNEL_DEBUG(DBG_AT_DDP_INPUT, 0,0,0,0,0);
  129.       KERNEL_DEBUG(DBG_AT_DDP_INPUT | DBG_FUNC_END, 0,0,0,0,0);
  130. */
  131.  
  132. #define DBG_AT_DDP_INPUT NETDBG_CODE(DBG_NETDDP, 1)
  133. #define DBG_AT_DDP_OUTPUT NETDBG_CODE(DBG_NETDDP, 2)
  134.  
  135. #define DBG_ADSP_MISC    NETDBG_CODE(DBG_NETADSP, 0)
  136. #define DBG_ADSP_RCV    NETDBG_CODE(DBG_NETADSP, 1)
  137. #define DBG_ADSP_SND    NETDBG_CODE(DBG_NETADSP, 2)
  138. #define DBG_ADSP_READ    NETDBG_CODE(DBG_NETADSP, 3)
  139. #define DBG_ADSP_WRITE    NETDBG_CODE(DBG_NETADSP, 4)
  140. #define DBG_ADSP_MBUF    NETDBG_CODE(DBG_NETADSP, 5)
  141. #define DBG_ADSP_PNEXT    NETDBG_CODE(DBG_NETADSP, 6)
  142. #define DBG_ADSP_ATRW    NETDBG_CODE(DBG_NETADSP, 7)
  143. #endif
  144.  
  145. #define trace_mbufs(pri, str, start)\
  146. { if (start)\
  147. {   int i; gbuf_t *tmp;\
  148.     for (tmp=start, i=0; tmp && i < 10; tmp = gbuf_cont(tmp), i++) {\
  149.     dPrintf(pri, D_L_TRACE, ("%s=0x%x, len=%d %s\n",\
  150.                                  str, tmp, gbuf_len(tmp),\
  151.                                  (((struct mbuf *)tmp)->m_flags & M_EXT)?"CL":""));\
  152.     KERNEL_DEBUG(DBG_ADSP_MBUF,  0, tmp, gbuf_len(tmp), gbuf_next(tmp), \
  153.         ((struct mbuf *)tmp)->m_flags & M_EXT);\
  154. }}}
  155.  
  156. /* from h/atlog.h */
  157.  
  158. /* These pointers are non-NULL if logging or tracing are activated. */
  159. #ifndef LOG_DRIVER
  160. extern char *log_errp;    
  161. extern char *log_trcp;
  162. #endif  /* LOG_DRIVER */
  163.  
  164. /* ATTRACE() macro.  Use this routine for calling 
  165.  * streams tracing and logging.  If `log' is TRUE, then
  166.  * this event will also be logged if logging is on.
  167.  */
  168. #if !defined(lint) && defined(AT_DEBUG)
  169. #define    ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3)        \
  170.     if (log_trcp || (log && log_errp)) {            \
  171.         strlog(mid,sid,level,SL_TRACE |            \
  172.             (log ? SL_ERROR : 0)  |            \
  173.             (level <= AT_LV_FATAL ? SL_FATAL : 0),    \
  174.             fmt,arg1,arg2,arg3);            \
  175.     }
  176. #else
  177. #define    ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3)        \
  178. /*    printf(fmt, arg1, arg2, arg3); */
  179.  
  180. #endif
  181.  
  182.  
  183. /* Levels for AppleTalk tracing */
  184.  
  185. #define    AT_LV_FATAL    1
  186. #define    AT_LV_ERROR    3
  187. #define    AT_LV_WARNING    5
  188. #define    AT_LV_INFO    7
  189. #define    AT_LV_VERBOSE    9
  190.  
  191.  
  192. /* Sub-ids for AppleTalk tracing, add more if you can't figure
  193.  * out where your event belongs.
  194.  */
  195.  
  196. #define    AT_SID_INPUT    1    /* Network incoming packets */
  197. #define    AT_SID_OUTPUT    2    /* Network outgoing packets */
  198. #define    AT_SID_TIMERS    3    /* Protocol timers */
  199. #define    AT_SID_FLOWCTRL    4    /* Protocol flow control */
  200. #define    AT_SID_USERREQ    5    /* User requests */
  201. #define    AT_SID_RESOURCE    6    /* Resource limitations */
  202.  
  203.  
  204.  
  205. /* Module ID's for AppleTalk subsystems */
  206.  
  207. #define    AT_MID(n)    (200+n)
  208.  
  209. /* 
  210. #define    AT_MID_MISC    AT_MID(0)    not used
  211. #define    AT_MID_LLAP    AT_MID(1)    not_used
  212. #define    AT_MID_ELAP    202        moved to lap.h
  213. #define    AT_MID_DDP    203        moved to ddp.h
  214. #define    AT_MID_RTMP    AT_MID(4)    not used
  215. #define    AT_MID_NBP    AT_MID(5)    not used
  216. #define    AT_MID_EP    AT_MID(6)    not used
  217. #define    AT_MID_ATP    AT_MID(7)    not used
  218. #define    AT_MID_ZIP    AT_MID(8)    not needed
  219. #define    AT_MID_PAP    AT_MID(9)    not used
  220. #define    AT_MID_ASP    AT_MID(10)    redefined in adsp.h
  221. #define    AT_MID_AFP    AT_MID(11)    not used
  222. #define    AT_MID_ADSP    212        moved to adsp.h
  223. #define    AT_MID_NBPD    AT_MID(13)    not used
  224. #define    AT_MID_LAP    214        moved to lap.h
  225. #define    AT_MID_LAST    214
  226. */
  227.  
  228. #ifdef    AT_MID_STRINGS
  229. static char *at_mid_strings[] = {
  230.     "misc",
  231.     "LLAP",
  232.     "ELAP",
  233.     "DDP",
  234.     "RTMP",
  235.     "NBP",
  236.     "EP",
  237.     "ATP",
  238.     "ZIP",
  239.     "PAP",
  240.     "ASP",
  241.     "AFP",
  242.     "ADSP",
  243.     "NBPD",
  244.     "LAP"
  245. };
  246. #endif
  247.  
  248.  
  249. #ifndef SL_FATAL
  250. /* Don't define these if they're already defined */
  251.  
  252. /* Flags for log messages */
  253.  
  254. #define SL_FATAL    01    /* indicates fatal error */
  255. #define SL_NOTIFY    02    /* logger must notify administrator */
  256. #define SL_ERROR    04    /* include on the error log */
  257. #define SL_TRACE    010    /* include on the trace log */
  258.  
  259. #endif
  260.  
  261. #endif /* _NETAT_DEBUG_H_ */
  262.  
  263.