2 * Copyright (C) 1998, 1989 Transarc Corporation - All rights reserved
4 * (C) COPYRIGHT IBM CORPORATION 1987, 1988
5 * LICENSED MATERIALS - PROPERTY OF IBM
10 #define _OSI_LOG_H__ 1
21 #define OSI_LOG_DEFAULTSIZE 1000
22 #define OSI_LOG_STRINGSIZE 30
23 #define OSI_LOG_MAXPARMS 4 /* max # of int parms */
25 typedef struct osi_logEntry {
26 long tid; /* thread ID */
27 unsigned long micros; /* microsecond-based time stamp */
28 char *formatp; /* format string */
29 long parms[OSI_LOG_MAXPARMS]; /* parms */
32 typedef struct osi_log {
33 osi_queue_t q; /* queue of all logs */
34 char *namep; /* name */
35 long alloc; /* allocated size */
36 long nused; /* number currently in use */
37 long first; /* index of first entry */
38 Crit_Sec cs; /* use this, rather than a higher-level
39 * lock, so we can log stuff from
41 osi_logEntry_t *datap; /* data for the log */
42 int stringindex; /* where to put new strings */
43 int maxstringindex; /* size of string array */
44 char (*stringsp)[OSI_LOG_STRINGSIZE]; /* string array */
45 int enabled; /* true if enabled */
48 typedef struct osi_logFD {
49 osi_fd_t fd; /* FD header */
50 osi_log_t *logp; /* logp */
51 long first; /* first index at time we started */
52 long nused; /* nused at tiem we started */
53 long current; /* counter we're at */
56 extern long osi_logSize;
58 extern osi_log_t *osi_LogCreate(char *, long);
60 extern void osi_LogFree(osi_log_t *);
62 extern void osi_LogAdd(osi_log_t *, char *, long, long, long, long);
64 extern void osi_LogReset(osi_log_t *);
66 extern long osi_LogFDCreate(osi_fdType_t *, osi_fd_t **);
69 extern long osi_LogFDGetInfo(osi_fd_t *, osi_remGetInfoParms_t *);
72 extern long osi_LogFDClose(osi_fd_t *);
74 extern void osi_LogEnable(osi_log_t *);
76 extern void osi_LogDisable(osi_log_t *);
78 extern void osi_LogPanic(char *filep, long line);
80 extern void osi_LogPrint(osi_log_t *logp, FILE_HANDLE handle);
82 extern char *osi_LogSaveString(osi_log_t *logp, char *s);
83 extern void osi_InitTraceOption();
84 extern void osi_LogEvent0(char *a,char *b);
85 extern void osi_LogEvent(char *a,char *b,char *c,...);
88 #define osi_Log0(l,f) osi_LogAdd((l), (f), 0, 0, 0, 0)
89 #define osi_Log1(l,f,a) osi_LogAdd((l), (f), (long) (a), 0, 0, 0)
90 #define osi_Log2(l,f,a,b) osi_LogAdd((l), (f), (long) (a), (long) (b), 0, 0)
91 #define osi_Log3(l,f,a,b,c) osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), 0)
92 #define osi_Log4(l,f,a,b,c,d) osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), (long) (d))
95 #define DEBUG_EVENT1(a,b,c) {HANDLE h; char *ptbuf[1],buf[132];\
96 h = RegisterEventSource(NULL, a);\
99 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
100 DeregisterEventSource(h);}
101 #define DEBUG_EVENT0(a) {HANDLE h; char *ptbuf[1];\
102 h = RegisterEventSource(NULL, a);\
104 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
105 DeregisterEventSource(h);}
106 #define DEBUG_EVENT2(a,b,c,d) {HANDLE h; char *ptbuf[1],buf[132];\
107 h = RegisterEventSource(NULL, a);\
108 sprintf(buf, b,c,d);\
110 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
111 DeregisterEventSource(h);}
112 #define DEBUG_EVENT3(a,b,c,d,e) {HANDLE h; char *ptbuf[1],buf[132];\
113 h = RegisterEventSource(NULL, a);\
114 sprintf(buf, b,c,d,e);\
116 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **)ptbuf, NULL);\
117 DeregisterEventSource(h);}
118 #define DEBUG_EVENT4(a,b,c,d,e,f) {HANDLE h; char *ptbuf[1],buf[132];\
119 h = RegisterEventSource(NULL, a);\
120 sprintf(buf, b,c,d,e,f);\
122 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
123 DeregisterEventSource(h);}
124 #define DEBUG_EVENT5(a,b,c,d,e,f,g) {HANDLE h; char *ptbuf[1],buf[132];\
125 h = RegisterEventSource(NULL, a);\
126 sprintf(buf, b,c,d,e,f,g);\
128 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
129 DeregisterEventSource(h);}
130 #define DEBUG_EVENT6(a,b,c,d,e,f,g,h) {HANDLE h; char *ptbuf[1],buf[132];\
131 h = RegisterEventSource(NULL, a);\
132 sprintf(buf,b,c,d,e,f,g,h);\
134 ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
135 DeregisterEventSource(h);}
137 #define DEBUG_EVENT0(a)
138 #define DEBUG_EVENT1(a,b,c)
139 #define DEBUG_EVENT2(a,b,c,d)
140 #define DEBUG_EVENT3(a,b,c,d,e)
141 #define DEBUG_EVENT4(a,b,c,d,e,f)
142 #define DEBUG_EVENT5(a,b,c,d,e,f,g)
143 #define DEBUG_EVENT6(a,b,c,d,e,f,g,h)
146 #endif /* _OSI_LOG_H__ */