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; }