From: Oliver Kurth Date: Sun, 21 Jul 2019 00:15:18 +0000 (-0700) Subject: Make LOG macro variadic: do the obviously-safe stuff first X-Git-Tag: stable-11.1.0~322 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f8eac720b77a787e5b63cd947bb62a7d355e771;p=thirdparty%2Fopen-vm-tools.git Make LOG macro variadic: do the obviously-safe stuff first --- diff --git a/open-vm-tools/lib/include/loglevel_defs.h b/open-vm-tools/lib/include/loglevel_defs.h index 8fd7fbbc1..612ff0656 100644 --- a/open-vm-tools/lib/include/loglevel_defs.h +++ b/open-vm-tools/lib/include/loglevel_defs.h @@ -1,5 +1,5 @@ /********************************************************* - * Copyright (C) 1998-2017 VMware, Inc. All rights reserved. + * Copyright (C) 1998-2019 VMware, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published @@ -15,7 +15,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * *********************************************************/ - + #ifndef _LOGLEVEL_DEFS_H_ #define _LOGLEVEL_DEFS_H_ @@ -61,7 +61,7 @@ LOGLEVEL_EXTERN_C_BEGIN */ #define LOGLEVEL_EXTENSION_DECLARE(list) \ - LOGLEVEL_EXTERN_C_BEGIN \ + LOGLEVEL_EXTERN_C_BEGIN \ VMX86_EXTERN_DATA const int8 *logLevelPtr; \ VMX86_EXTERN_DATA int LOGLEVEL_EXTOFFSET(LOGLEVEL_EXTENSION); \ LOGLEVEL_EXTERN_C_END \ @@ -75,69 +75,45 @@ LOGLEVEL_EXTERN_C_BEGIN * Cross extension */ -#define LOGLEVEL_BYEXTNAME(_ext, _mod) \ - (*LogLevel_LookUpVar(XSTR(_ext), XSTR(_mod))) - #define LOGLEVEL_BYEXTNAME_SET(_ext, _mod, _val) \ - LogLevel_Set(XSTR(_ext), XSTR(_mod), _val) + LogLevel_Set(XSTR(_ext), XSTR(_mod), _val) const int8 *LogLevel_LookUpVar(const char *extension, const char *module); int LogLevel_Set(const char *extension, const char *module, int val); -#define DOLOG_BYEXTNAME(_ext, _mod, _min) \ - UNLIKELY(LOGLEVEL_BYEXTNAME(_ext, _mod) >= (_min)) - -#define LOG_BYEXTNAME(_ext, _mod, _min, _log) \ - (DOLOG_BYEXTNAME(_ext, _mod, _min) ? (Log _log) : (void) 0) - /* * Intra extension */ #define LOGLEVEL_BYNAME(_mod) \ logLevelPtr[LOGLEVEL_EXTOFFSET(LOGLEVEL_EXTENSION) + \ - LOGLEVEL_MODULEVAR(_mod)] - -#ifdef VMM -#define LOGLEVEL_BYNAME_SET(_mod, _val) do { \ - monitorLogLevels[LOGLEVEL_EXTOFFSET(LOGLEVEL_EXTENSION) + \ - LOGLEVEL_MODULEVAR(_mod)] = _val; \ - } while (0) -#endif + LOGLEVEL_MODULEVAR(_mod)] #define DOLOG_BYNAME(_mod, _min) \ UNLIKELY(LOGLEVEL_BYNAME(_mod) >= (_min)) #define LOG_BYNAME(_mod, _min, _log) \ - (DOLOG_BYNAME(_mod, _min) ? (Log _log) : (void) 0) + (DOLOG_BYNAME(_mod, _min) ? (Log _log) : (void) 0) /* * Default */ -#define LOGLEVEL() LOGLEVEL_BYNAME(LOGLEVEL_MODULE) - -#define DOLOG(_min) DOLOG_BYNAME(LOGLEVEL_MODULE, _min) - -#define LOG(_min, _log) LOG_BYNAME(LOGLEVEL_MODULE, _min, _log) +#define LOGLEVEL() LOGLEVEL_BYNAME(LOGLEVEL_MODULE) +#define DOLOG(_min) DOLOG_BYNAME(LOGLEVEL_MODULE, _min) +#define LOG(_min, ...) LOG_BYNAME(LOGLEVEL_MODULE, _min, __VA_ARGS__) #else /* VMX86_LOG */ -#define LOGLEVEL_BYEXTNAME(_ext, _mod) 0 #define LOGLEVEL_BYEXTNAME_SET(_ext, _mod, _val) do {} while (0) -#define DOLOG_BYEXTNAME(_ext, _mod, _min) (FALSE) -#define LOG_BYEXTNAME(_ext, _mod, _min, _log) do {} while (0) #define LOGLEVEL_BYNAME(_mod) 0 -#ifdef VMM -#define LOGLEVEL_BYNAME_SET(_mod, _val) do {} while (0) -#endif #define DOLOG_BYNAME(_mod, _min) (FALSE) -#define LOG_BYNAME(_mod, _min, _log) do {} while (0) +#define LOG_BYNAME(_mod, _min, ...) do {} while (0) #define LOGLEVEL() 0 #define DOLOG(_min) (FALSE) -#define LOG(_min, _log) +#define LOG(_min, ...) #endif /* VMX86_LOG */ @@ -146,7 +122,7 @@ int LogLevel_Set(const char *extension, const char *module, int val); #ifdef VMX86_DEVEL #define LOG_DEVEL(_x) (Log _x) #else - #define LOG_DEVEL(_x) + #define LOG_DEVEL(...) #endif