From 7ccdc352527760ff3fe55c4db85414816e0bb6b7 Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Fri, 3 Oct 2008 15:55:12 +0000 Subject: [PATCH] DEVEL15-rx-varargs-20080924 LICENSE IPL10 make rx use varargs instead of a large fixed set of parms (cherry picked from commit 8aa9d07e35c132ba5bbc1704fc9c0ba289b277fd) --- src/rx/rx.c | 17 +++++++++-------- src/rx/rx_kcommon.c | 7 ++++--- src/rx/rx_kcommon.h | 1 + src/rx/rx_kernel.h | 1 + src/rx/rx_prototypes.h | 17 +++-------------- src/rx/rx_user.c | 8 +++++--- src/rx/rx_user.h | 1 + 7 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/rx/rx.c b/src/rx/rx.c index 6e413ea53..2d4be95b0 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -6275,9 +6275,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]; @@ -6287,9 +6285,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'; @@ -6298,14 +6294,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 } diff --git a/src/rx/rx_kcommon.c b/src/rx/rx_kcommon.c index 1f1b3cd6e..ba14d026a 100644 --- a/src/rx/rx_kcommon.c +++ b/src/rx/rx_kcommon.c @@ -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 diff --git a/src/rx/rx_kcommon.h b/src/rx/rx_kcommon.h index 717f47753..e0252408f 100644 --- a/src/rx/rx_kcommon.h +++ b/src/rx/rx_kcommon.h @@ -139,6 +139,7 @@ typedef unsigned short etap_event_t; #include "afs/longc_procs.h" #include "afs/afs_stats.h" #include "h/errno.h" +#include "stdarg.h" #ifdef KERNEL #include "afs/sysincludes.h" #include "afsincludes.h" diff --git a/src/rx/rx_kernel.h b/src/rx/rx_kernel.h index 3bb6d7d35..b6f835ba7 100644 --- a/src/rx/rx_kernel.h +++ b/src/rx/rx_kernel.h @@ -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) diff --git a/src/rx/rx_prototypes.h b/src/rx/rx_prototypes.h index 88b77bda1..b0c3652ca 100644 --- a/src/rx/rx_prototypes.h +++ b/src/rx/rx_prototypes.h @@ -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); diff --git a/src/rx/rx_user.c b/src/rx/rx_user.c index 04dacd896..708d014b2 100644 --- a/src/rx/rx_user.c +++ b/src/rx/rx_user.c @@ -221,11 +221,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(); diff --git a/src/rx/rx_user.h b/src/rx/rx_user.h index 1aebdf0cd..83bd604a9 100644 --- a/src/rx/rx_user.h +++ b/src/rx/rx_user.h @@ -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 */ -- 2.39.5