rx-varargs-20080924
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Wed, 24 Sep 2008 22:38:19 +0000 (22:38 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 24 Sep 2008 22:38:19 +0000 (22:38 +0000)
LICENSE IPL10

make rx use varargs instead of a large fixed set of parms

src/rx/rx.c
src/rx/rx_kcommon.c
src/rx/rx_kcommon.h
src/rx/rx_kernel.h
src/rx/rx_prototypes.h
src/rx/rx_user.c
src/rx/rx_user.h

index 52fe70b..b5fd071 100644 (file)
@@ -6315,9 +6315,7 @@ rx_DebugOnOff(int on)
 
 /* Don't call this debugging routine directly; use dpf */
 void
-rxi_DebugPrint(char *format, int a1, int a2, int a3, int a4, int a5, int a6,
-              int a7, int a8, int a9, int a10, int a11, int a12, int a13,
-              int a14, int a15)
+rxi_DebugPrint(char *format, ...)
 {
 #ifdef AFS_NT40_ENV
     char msg[512];
@@ -6327,9 +6325,7 @@ rxi_DebugPrint(char *format, int a1, int a2, int a3, int a4, int a5, int a6,
     len = _snprintf(tformat, sizeof(tformat), "tid[%d] %s", GetCurrentThreadId(), format);
 
     if (len > 0) {
-       len = _snprintf(msg, sizeof(msg)-2, 
-                       tformat, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, 
-                       a11, a12, a13, a14, a15);
+       len = _vsnprintf(msg, sizeof(msg)-2, tformat, ap);
        if (len > 0) {
            if (msg[len-1] != '\n') {
                msg[len] = '\n';
@@ -6338,14 +6334,19 @@ rxi_DebugPrint(char *format, int a1, int a2, int a3, int a4, int a5, int a6,
            OutputDebugString(msg);
        }
     }
+    va_end(ap);
 #else
     struct clock now;
+    va_list ap;
+    
+    va_start(ap, format);
+
     clock_GetTime(&now);
     fprintf(rx_Log, " %u.%.3u:", (unsigned int)now.sec,
            (unsigned int)now.usec / 1000);
-    fprintf(rx_Log, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
-           a13, a14, a15);
+    vfprintf(rx_Log, format, ap);
     putc('\n', rx_Log);
+    va_end(ap);
 #endif
 }
 
index 1f1b3cd..ba14d02 100644 (file)
@@ -126,13 +126,14 @@ rxi_GetUDPSocket(u_short port)
 
 #if !defined(AFS_LINUX26_ENV)
 void
-osi_Panic(msg, a1, a2, a3)
-     char *msg;
+osi_Panic(char *msg, ...)
 {
+    va_list ap;
     if (!msg)
        msg = "Unknown AFS panic";
 
-    printf(msg, a1, a2, a3);
+    va_start(ap, msg);
+    vprintf(msg, ap);
 #ifdef AFS_LINUX20_ENV
     * ((char *) 0) = 0; 
 #else
index 35f5c24..1f2240b 100644 (file)
@@ -138,6 +138,7 @@ typedef unsigned short etap_event_t;
 #include "rx/rx_globals.h"
 #include "afs/afs_stats.h"
 #include "h/errno.h"
+#include "stdarg.h"
 #ifdef KERNEL
 #include "afs/sysincludes.h"
 #include "afsincludes.h"
index ebb50de..2d997ad 100644 (file)
@@ -37,6 +37,7 @@ extern int osi_utoa(char *buf, size_t len, unsigned long val);
 #define osi_Assert(e) (void)((e) || (osi_AssertFailK(#e, __FILE__, __LINE__), 0))
 
 #define        osi_Msg printf)(
+#define osi_VMsg vprintf)(
 
 #define        osi_YieldIfPossible()
 #define        osi_WakeupAndYieldIfPossible(x)     rx_Wakeup(x)
index e07e659..617011d 100644 (file)
@@ -264,19 +264,8 @@ extern afs_int32 rx_SetSecurityConfiguration(struct rx_service *service,
                                             rx_securityConfigVariables type,
                                             void *value);
 
-
-/* old style till varargs */
-#if 0
-void
-rxi_DebugPrint(char *format, int a1, int a2, int a3, int a4, int a5, int a6,
-               int a7, int a8, int a9, int a10, int a11, int a12, int a13,
-              int a14, int a15);
-void
-rxi_DebugInit(void);
-#else
-void rxi_DebugInit();
-void rxi_DebugPrint();
-#endif
+void rxi_DebugInit(void);
+void rxi_DebugPrint(char *format, ...);
 
 /* rx_clock.c */
 #if !defined(clock_Init)
@@ -373,7 +362,7 @@ extern osi_socket rxi_GetHostUDPSocket(u_int host, u_short port);
 #define osi_Assert(expr) \
     do { if (!(expr)) { osi_AssertFailK(#expr, __FILE__, __LINE__); BUG(); } } while (0)
 #else
-extern void osi_Panic();      /* leave without args till stdarg rewrite */
+extern void osi_Panic(char *fmt, ...);
 #endif
 extern int osi_utoa(char *buf, size_t len, unsigned long val);
 extern void rxi_InitPeerParams(register struct rx_peer *pp);
index c5a370c..decb24c 100644 (file)
@@ -219,11 +219,13 @@ rxi_GetUDPSocket(u_short port)
 }
 
 void
-osi_Panic(msg, a1, a2, a3) 
-     char *msg; 
+osi_Panic(char *msg, ...)
 {
+    va_list ap;
+    va_start(ap, msg);
     (osi_Msg "Fatal Rx error: ");
-    (osi_Msg msg, a1, a2, a3);
+    (osi_VMsg msg, ap);
+    va_end(ap);
     fflush(stderr);
     fflush(stdout);
     afs_abort();
index 1aebdf0..83bd604 100644 (file)
@@ -66,5 +66,6 @@ typedef afs_int32 osi_socket;
 #define osi_Assert(e) (void)((e) || (osi_AssertFailU(#e, __FILE__, __LINE__), 0))
 
 #define        osi_Msg                     fprintf)(stderr,
+#define osi_VMsg                   vfprintf)(stderr,
 
 #endif /* RX_USER_INCLUDE */