#ifndef _NETAT_DEBUG_H_
#define _NETAT_DEBUG_H_
#include <sys/appleapiopts.h>
#ifdef __APPLE_API_PRIVATE
#define D_L_FATAL 0x00000001
#define D_L_ERROR 0x00000002
#define D_L_WARNING 0x00000004
#define D_L_INFO 0x00000008
#define D_L_VERBOSE 0x00000010
#define D_L_STARTUP 0x00000020
#define D_L_STARTUP_LOW 0x00000040
#define D_L_SHUTDN 0x00000080
#define D_L_SHUTDN_LOW 0x00000100
#define D_L_INPUT 0x00000200
#define D_L_OUTPUT 0x00000400
#define D_L_STATS 0x00000800
#define D_L_STATE_CHG 0x00001000
#define D_L_ROUTING 0x00002000
#define D_L_DNSTREAM 0x00004000
#define D_L_UPSTREAM 0x00008000
#define D_L_STARTUP_INFO 0x00010000
#define D_L_SHUTDN_INFO 0x00020000
#define D_L_ROUTING_AT 0x00040000
#define D_L_USR1 0x01000000
#define D_L_USR2 0x02000000
#define D_L_USR3 0x04000000
#define D_L_USR4 0x08000000
#define D_L_TRACE 0x10000000
#define D_M_PAT 0x00000001
#define D_M_PAT_LOW 0x00000002
#define D_M_ELAP 0x00000004
#define D_M_ELAP_LOW 0x00000008
#define D_M_DDP 0x00000010
#define D_M_DDP_LOW 0x00000020
#define D_M_NBP 0x00000040
#define D_M_NBP_LOW 0x00000080
#define D_M_ZIP 0x00000100
#define D_M_ZIP_LOW 0x00000200
#define D_M_RTMP 0x00000400
#define D_M_RTMP_LOW 0x00000800
#define D_M_ATP 0x00001000
#define D_M_ATP_LOW 0x00002000
#define D_M_ADSP 0x00004000
#define D_M_ADSP_LOW 0x00008000
#define D_M_AEP 0x00010000
#define D_M_AARP 0x00020000
#define D_M_ASP 0x00040000
#define D_M_ASP_LOW 0x00080000
#define D_M_AURP 0x00100000
#define D_M_AURP_LOW 0x00200000
#define D_M_TRACE 0x10000000
typedef struct dbgBits {
unsigned long dbgMod;
unsigned long dbgLev;
} dbgBits_t;
extern dbgBits_t dbgBits;
#ifdef DEBUG
#define dPrintf(mod, lev, p) \
if (((mod) & dbgBits.dbgMod) && ((lev) & dbgBits.dbgLev)) {\
kprintf p; \
}
#else
#define dPrintf(mod, lev, p)
#endif
#include <sys/kdebug.h>
#if KDEBUG
#define DBG_AT_DDP_INPUT NETDBG_CODE(DBG_NETDDP, 1)
#define DBG_AT_DDP_OUTPUT NETDBG_CODE(DBG_NETDDP, 2)
#define DBG_ADSP_MISC NETDBG_CODE(DBG_NETADSP, 0)
#define DBG_ADSP_RCV NETDBG_CODE(DBG_NETADSP, 1)
#define DBG_ADSP_SND NETDBG_CODE(DBG_NETADSP, 2)
#define DBG_ADSP_READ NETDBG_CODE(DBG_NETADSP, 3)
#define DBG_ADSP_WRITE NETDBG_CODE(DBG_NETADSP, 4)
#define DBG_ADSP_MBUF NETDBG_CODE(DBG_NETADSP, 5)
#define DBG_ADSP_PNEXT NETDBG_CODE(DBG_NETADSP, 6)
#define DBG_ADSP_ATRW NETDBG_CODE(DBG_NETADSP, 7)
#endif
#define trace_mbufs(pri, str, start)\
{ if (start)\
{ int i; gbuf_t *tmp;\
for (tmp=start, i=0; tmp && i < 10; tmp = gbuf_cont(tmp), i++) {\
dPrintf(pri, D_L_TRACE, ("%s=0x%x, len=%d %s\n",\
str, tmp, gbuf_len(tmp),\
(((struct mbuf *)tmp)->m_flags & M_EXT)?"CL":""));\
KERNEL_DEBUG(DBG_ADSP_MBUF, 0, tmp, gbuf_len(tmp), gbuf_next(tmp), \
((struct mbuf *)tmp)->m_flags & M_EXT);\
}}}
#ifndef LOG_DRIVER
extern char *log_errp;
extern char *log_trcp;
#endif
#if !defined(lint) && defined(AT_DEBUG)
#define ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3) \
if (log_trcp || (log && log_errp)) { \
strlog(mid,sid,level,SL_TRACE | \
(log ? SL_ERROR : 0) | \
(level <= AT_LV_FATAL ? SL_FATAL : 0), \
fmt,arg1,arg2,arg3); \
}
#else
#define ATTRACE(mid,sid,level,log,fmt,arg1,arg2,arg3) \
#endif
#define AT_LV_FATAL 1
#define AT_LV_ERROR 3
#define AT_LV_WARNING 5
#define AT_LV_INFO 7
#define AT_LV_VERBOSE 9
#define AT_SID_INPUT 1
#define AT_SID_OUTPUT 2
#define AT_SID_TIMERS 3
#define AT_SID_FLOWCTRL 4
#define AT_SID_USERREQ 5
#define AT_SID_RESOURCE 6
#define AT_MID(n) (200+n)
#ifdef AT_MID_STRINGS
static char *at_mid_strings[] = {
"misc",
"LLAP",
"ELAP",
"DDP",
"RTMP",
"NBP",
"EP",
"ATP",
"ZIP",
"PAP",
"ASP",
"AFP",
"ADSP",
"NBPD",
"LAP"
};
#endif
#ifndef SL_FATAL
#define SL_FATAL 01
#define SL_NOTIFY 02
#define SL_ERROR 04
#define SL_TRACE 010
#endif
#endif
#endif