ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.I.b.tar.gz#/lib/gcc-lib/m68k-next-nextstep3/2.7.2.2.f.2/include/driverkit/debugging.h

This is debugging.h in view mode; [Download] [Up]

/* 	Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved. 
 *
 * debugging.h - public interface for driver debugging module (DDM) This 
 *	    interface is used by modules which generate DDM data (as 
 *	    opposed to Apps which collect or analyze debugging data).
 *
 * HISTORY
 * 22-Feb-91    Doug Mitchell at NeXT
 *      Created. 
 */

/*
 * The DDM provides fast, cheap text logging functions. These
 * functions are typically invoked via macros which are defined to be
 * null unless the DDM_DEBUG cpp flag is defined true. Thus, a debug
 * configuration would typically define DDM_DEBUG true and a release
 * configuration would not define DDM_DEBUG. 
 */

#import <kernserv/clock_timer.h>	/* for ns_time_t */

#define IO_NUM_DDM_MASKS	4

/*
 * Bitmask used to filter storing of events.
 */
extern unsigned int IODDMMasks[IO_NUM_DDM_MASKS];

/*
 * Initialize. Client must call this once, before using any services.
 */
#ifdef	KERNEL
void IOInitDDM(int numBufs);
#else
void IOInitDDM(int numBufs, char *serverPortName);
#endif

/*
 * add one entry to debugging log.
 * This function is actually the same in User and Kernel space; the Kernel
 * prototype has no argument for backwards compatibility with callers who
 * did not specify all 6 arguments.
 */
#ifdef	KERNEL
extern void IOAddDDMEntry();
#else
void IOAddDDMEntry(char *str, int arg1, int arg2, int arg3, 
	int arg4, int arg5);
#endif

/*
 * Clear the debugging log.
 */
void IOClearDDM();

/*
 * Get/Set bit mask of IODebuggingMasks[index].
 */
void IOSetDDMMask(int index, unsigned int bitmask);
unsigned IOGetDDMMask(int index);

/*
 * Obtain one sprintf'd entry from the debugging log. 'index' indicates 
 * which entry to return, counting backwards from the last (latest) entry.
 * Returns nonzero if specified entry does not exist.
 */
int IOGetDDMEntry(
	int 		entry, 		/* desired entry*/
	int 		outStringSize,	/* memory available in outString*/
	char 		*outString, 	/* result goes here*/
	ns_time_t 	*timestamp,	/* returned*/
	int 		*cpuNum);	/* returned*/

/*
 * return a malloc'd copy of instring.
 */
const char *IOCopyString(const char *instring);

#if	DDM_DEBUG

#define IODEBUG(index, mask, x, a, b, c, d, e) { 			\
	if(IODDMMasks[index] & mask) {					\
		IOAddDDMEntry(x, (int)a, (int)b, (int)c, 		\
				       (int)d, (int)e); 		\
	}								\
}

#else

#define IODEBUG(index, mask, x, a, b, c, d, e)

#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.