#ifndef _ETM_H #define _ETM_H /* * etm.h - Exception and Termination Manager header file */ /* * Values that can be passed to ETMSetSignalProc() to turn off signals * or restore to default action. Pretty ugly. Hope no one ever uses * them! (Because depending on the compiler, it's possible these may * actually be the same...) */ # define ETMSigDefault (void (*)())0 # define ETMSigIgnore (void (*)())1 typedef void ETMProcRetType; typedef ETMProcRetType (*ETMProcPtr) (); /* * These defines cause failure at link time if this header * file wasn't included in each source file using ETM functions. */ # define ETMInit _ETMInit # define ETMEnd _ETMEnd # define ETMAddShutdownProc _ETMAddShutdownProc # define ETMRemoveShutdownProc _ETMRemoveShutdownProc # define ETMSetSignalProc _ETMSetSignalProc # define ETMGetSignalProc _ETMGetSignalProc # define ETMSetPrintProc _ETMSetPrintProc # define ETMGetPrintProc _ETMGetPrintProc # define ETMSetExitStatus _ETMSetExitStatus # define ETMGetExitStatus _ETMGetExitStatus # define ETMSetAbort _ETMSetAbort # define ETMGetAbort _ETMGetAbort # define ETMPanic _ETMPanic # define ETMMsg _ETMMsg /* Public routines */ extern ETMProcRetType ETMInit (); extern ETMProcRetType ETMEnd (); extern ETMProcRetType ETMAddShutdownProc (); extern ETMProcRetType ETMRemoveShutdownProc (); extern ETMProcRetType ETMSetSignalProc (); extern ETMProcPtr ETMGetSignalProc (); extern ETMProcRetType ETMSetPrintProc (); extern ETMProcPtr ETMGetPrintProc (); extern ETMProcRetType ETMSetExitStatus (); extern int ETMGetExitStatus (); extern ETMProcRetType ETMSetAbort (); extern int ETMGetAbort (); #if __STDC__ extern ETMProcRetType ETMPanic (char *fmt,...); extern ETMProcRetType ETMMsg (char *fmt,...); #else extern ETMProcRetType ETMPanic (); extern ETMProcRetType ETMMsg (); #endif /* backward-compatibility defines */ # define ETMShutdownRegister ETMAddShutdownProc # define ETMShutdownDeregister ETMRemoveShutdownProc # define ETMSignalRegister ETMSetSignalProc # define ETMPrintRegister ETMSetPrintProc # define ETMStatusRegister ETMSetExitStatus #endif /* _ETM_H */