Windows: make osi_Log macro safe for if..else
[openafs.git] / src / WINNT / client_osi / osilog.h
index 9eb11ab..00ba718 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * Copyright (C) 1998, 1989 Transarc Corporation - All rights reserved
  *
  * (C) COPYRIGHT IBM CORPORATION 1987, 1988
 #define _OSI_LOG_H__ 1
 
 #include "osi.h"
-#ifndef DJGPP
 #include "osisleep.h"
 #include "osibasel.h"
 #include "osistatl.h"
-#endif /* !DJGPP */
 #include "osifd.h"
 #include "osiqueue.h"
 
 #define OSI_LOG_DEFAULTSIZE    1000
-#define OSI_LOG_STRINGSIZE     30
-#define OSI_LOG_MAXPARMS       4       /* max # of int parms */
+#define OSI_LOG_STRINGSIZE     256
+#define OSI_LOG_MAXPARMS       5       /* max # of int parms */
 
 typedef struct osi_logEntry {
-       long tid;                       /* thread ID */
+       size_t tid;                     /* thread ID */
         unsigned long micros;          /* microsecond-based time stamp */
         char *formatp;                 /* format string */
-        long parms[OSI_LOG_MAXPARMS];  /* parms */
+        size_t parms[OSI_LOG_MAXPARMS];        /* parms */
 } osi_logEntry_t;
 
 typedef struct osi_log {
        osi_queue_t q;                  /* queue of all logs */
        char *namep;                    /* name */
-       long alloc;                     /* allocated size */
+        long alloc;                    /* allocated size */
         long nused;                    /* number currently in use */
         long first;                    /* index of first entry */
-        Crit_Sec cs;           /* use this, rather than a higher-level
+        Crit_Sec cs;                   /* use this, rather than a higher-level
                                         * lock, so we can log stuff from
                                         * osi lock pkg */
         osi_logEntry_t *datap;         /* data for the log */
@@ -55,19 +53,17 @@ typedef struct osi_logFD {
 
 extern long osi_logSize;
 
-extern osi_log_t *osi_LogCreate(char *, long);
+extern osi_log_t *osi_LogCreate(char *, size_t);
 
 extern void osi_LogFree(osi_log_t *);
 
-extern void osi_LogAdd(osi_log_t *, char *, long, long, long, long);
+extern void osi_LogAdd(osi_log_t *, char *, size_t, size_t, size_t, size_t, size_t);
 
 extern void osi_LogReset(osi_log_t *);
 
 extern long osi_LogFDCreate(osi_fdType_t *, osi_fd_t **);
 
-#ifndef DJGPP
 extern long osi_LogFDGetInfo(osi_fd_t *, osi_remGetInfoParms_t *);
-#endif
 
 extern long osi_LogFDClose(osi_fd_t *);
 
@@ -75,21 +71,24 @@ extern void osi_LogEnable(osi_log_t *);
 
 extern void osi_LogDisable(osi_log_t *);
 
-extern void osi_LogPanic(char *filep, long line);
+extern void osi_LogPanic(char *msgp, char *filep, size_t line);
 
 extern void osi_LogPrint(osi_log_t *logp, FILE_HANDLE handle);
 
+extern wchar_t *osi_LogSaveStringW(osi_log_t *logp, wchar_t *s);
 extern char *osi_LogSaveString(osi_log_t *logp, char *s);
 extern void osi_InitTraceOption();
 extern void osi_LogEvent0(char *a,char *b);
 extern void osi_LogEvent(char *a,char *b,char *c,...);
+extern char *osi_HexifyString(char *s);
 
 /* define macros */
-#define osi_Log0(l,f)          osi_LogAdd((l), (f), 0, 0, 0, 0)
-#define osi_Log1(l,f,a)                osi_LogAdd((l), (f), (long) (a), 0, 0, 0)
-#define osi_Log2(l,f,a,b)      osi_LogAdd((l), (f), (long) (a), (long) (b), 0, 0)
-#define osi_Log3(l,f,a,b,c)    osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), 0)
-#define osi_Log4(l,f,a,b,c,d)  osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), (long) (d))
+#define osi_Log0(l,f)          do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), 0, 0, 0, 0, 0); } while(0)
+#define osi_Log1(l,f,a)                do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), (size_t) (a), 0, 0, 0, 0); } while(0)
+#define osi_Log2(l,f,a,b)      do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), (size_t) (a), (size_t) (b), 0, 0, 0); } while(0)
+#define osi_Log3(l,f,a,b,c)    do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), (size_t) (a), (size_t) (b), (size_t) (c), 0, 0); } while(0)
+#define osi_Log4(l,f,a,b,c,d)  do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), (size_t) (a), (size_t) (b), (size_t) (c), (size_t) (d), 0); } while(0)
+#define osi_Log5(l,f,a,b,c,d,e)        do { if ((l) && (l)->enabled) osi_LogAdd((l), (f), (size_t) (a), (size_t) (b), (size_t) (c), (size_t) (d), (size_t) (e)); } while(0)
 
 #ifdef DEBUG_VERBOSE
 #define DEBUG_EVENT1(a,b,c) {HANDLE h; char *ptbuf[1],buf[132];\