Beispiel #1
0
int
DbgRegister (char *drvName, char *drvTag, unsigned long dbgMask)
{
 int len;
/*
 * deregister (if already registered) and zero out myDriverDebugHandle
 */
 DbgDeregister () ;
/*
 * initialize the debug handle
 */
 myDriverDebugHandle.Version = DBG_HANDLE_VERSION ;
 myDriverDebugHandle.id  = -1 ;
 myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG) ;
 len = strlen (drvName) ;
 memcpy (myDriverDebugHandle.drvName, drvName,
         (len < sizeof(myDriverDebugHandle.drvName)) ?
    len : sizeof(myDriverDebugHandle.drvName) - 1) ;
 len = strlen (drvTag) ;
 memcpy (myDriverDebugHandle.drvTag, drvTag,
         (len < sizeof(myDriverDebugHandle.drvTag)) ?
    len : sizeof(myDriverDebugHandle.drvTag) - 1) ;
/*
 * Try to register debugging via old (and only) interface
 */
 dprintf("\000\377", &myDriverDebugHandle) ;
 if ( myDriverDebugHandle.dbg_prt )
 {
  return (1) ;
 }
/*
 * Check if we registered with an old maint driver (see debuglib.h)
 */
 if ( myDriverDebugHandle.dbg_end != NULL
   /* location of 'dbg_prt' in _OldDbgHandle_ struct */
   && (myDriverDebugHandle.regTime.LowPart ||
       myDriverDebugHandle.regTime.HighPart  ) )
   /* same location as in _OldDbgHandle_ struct */
 {
  dprintf("%s: Cannot log to old maint driver !", drvName) ;
  myDriverDebugHandle.dbg_end =
  ((_OldDbgHandle_ *)&myDriverDebugHandle)->dbg_end ;
  DbgDeregister () ;
 }
 return (0) ;
}
/*
 * stop debug
 */
static void stop_dbg(void)
{
    DbgDeregister();
    memset(&MAdapter, 0, sizeof(MAdapter));
    dprintf = no_printf;
}