os: log: replace LogMessageVerbSigSafe() by LogMessageVerb()

Since LogMessageVerb() is now signal safe, we can use this one instead.
Leaving LogMessageVerbSigSafe() macro for backwards compat with drivers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1691>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-09-12 17:14:05 +02:00 committed by Marge Bot
parent 5962211612
commit dd37cc4855
8 changed files with 43 additions and 57 deletions

View File

@ -805,7 +805,7 @@ glxDRILeaveVT(ScrnInfoPtr scrn)
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(xf86ScrnToScreen(scrn));
LogMessageVerbSigSafe(X_INFO, -1, "AIGLX: Suspending AIGLX clients for VT switch\n");
LogMessageVerb(X_INFO, -1, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients();

View File

@ -126,9 +126,9 @@ notify_sync_finished(ClientPtr ptr, void *closure)
already shut down and the descriptor is closed.
*/
if (write(fd, &response, response.header.length) != response.header.length) {
LogMessageVerbSigSafe(X_ERROR, 0,
"inputtest: Failed to write sync response: %s\n",
strerror(errno));
LogMessageVerb(X_ERROR, 0,
"inputtest: Failed to write sync response: %s\n",
strerror(errno));
}
input_unlock();
return TRUE;

View File

@ -141,7 +141,7 @@ LoaderSymbolFromModule(void *handle, const char *name)
void
LoaderUnload(const char *name, void *handle)
{
LogMessageVerbSigSafe(X_INFO, 1, "Unloading %s\n", name);
LogMessageVerb(X_INFO, 1, "Unloading %s\n", name);
if (handle)
dlclose(handle);
}

View File

@ -853,9 +853,9 @@ UnloadModule(ModuleDescPtr mod)
const char *name = mod->VersionInfo->modname;
if (mod->parent)
LogMessageVerbSigSafe(X_INFO, 3, "UnloadSubModule: \"%s\"\n", name);
LogMessageVerb(X_INFO, 3, "UnloadSubModule: \"%s\"\n", name);
else
LogMessageVerbSigSafe(X_INFO, 3, "UnloadModule: \"%s\"\n", name);
LogMessageVerb(X_INFO, 3, "UnloadModule: \"%s\"\n", name);
if (mod->TearDownData != ModuleDuplicated) {
if ((mod->TearDownProc) && (mod->TearDownData))

View File

@ -363,9 +363,6 @@ _X_ATTRIBUTE_PRINTF(3, 4);
extern _X_EXPORT void
LogMessage(MessageType type, const char *format, ...)
_X_ATTRIBUTE_PRINTF(2, 3);
extern _X_EXPORT void
LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
_X_ATTRIBUTE_PRINTF(3, 4);
extern _X_EXPORT void
LogVHdrMessageVerb(MessageType type, int verb,
@ -417,5 +414,6 @@ typedef _sigset_t sigset_t;
/* should not be used anymore, just for backwards compat with drivers */
#define LogVMessageVerbSigSafe(...) LogVMessageVerb(__VA_ARGS__)
#define LogMessageVerbSigSafe(...) LogMessageVerb(__VA_ARGS__)
#endif /* OS_H */

View File

@ -302,7 +302,7 @@ LogClose(enum ExitCode error)
{
if (logFile) {
int msgtype = (error == EXIT_NO_ERROR) ? X_INFO : X_ERROR;
LogMessageVerbSigSafe(msgtype, -1,
LogMessageVerb(msgtype, -1,
"Server terminated %s (%d). Closing log file.\n",
(error == EXIT_NO_ERROR) ? "successfully" : "with error",
error);
@ -694,7 +694,7 @@ LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
writeLog(verb, buf, len);
}
/* Log message with verbosity level specified. */
/* Log message with verbosity level specified. -- signal safe */
void
LogMessageVerb(MessageType type, int verb, const char *format, ...)
{
@ -716,16 +716,6 @@ LogMessage(MessageType type, const char *format, ...)
va_end(ap);
}
/* Log a message using only signal safe functions. */
void
LogMessageVerbSigSafe(MessageType type, int verb, const char *format, ...)
{
va_list ap;
va_start(ap, format);
LogVMessageVerb(type, verb, format, ap);
va_end(ap);
}
void
LogVHdrMessageVerb(MessageType type, int verb, const char *msg_format,
va_list msg_args, const char *hdr_format, va_list hdr_args)

View File

@ -119,10 +119,8 @@ OsSigHandler(int signo)
if (signo == SIGNAL_FOR_RTLD_ERROR) {
const char *dlerr = dlerror();
if (dlerr) {
LogMessageVerbSigSafe(X_ERROR, 1,
"Dynamic loader error: %s\n", dlerr);
}
if (dlerr)
LogMessageVerb(X_ERROR, 1, "Dynamic loader error: %s\n", dlerr);
}
#endif /* RTLD_DI_SETSIGNAL */

View File

@ -202,59 +202,59 @@ static void logging_format(void)
} while (0)
/* boring test message */
LogMessageVerbSigSafe(X_ERROR, 1, "test message\n");
LogMessageVerb(X_ERROR, 1, "test message\n");
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) test message\n") == 0);
/* long buf is truncated to "....en\n" */
LogMessageVerbSigSafe(X_ERROR, 1, buf);
LogMessageVerb(X_ERROR, 1, buf);
read_log_msg(logmsg);
assert(strcmp(&logmsg[strlen(logmsg) - 3], "en\n") == 0);
/* same thing, this time as string substitution */
LogMessageVerbSigSafe(X_ERROR, 1, "%s", buf);
LogMessageVerb(X_ERROR, 1, "%s", buf);
read_log_msg(logmsg);
assert(strcmp(&logmsg[strlen(logmsg) - 3], "en\n") == 0);
/* strings containing placeholders should just work */
LogMessageVerbSigSafe(X_ERROR, 1, "%s\n", str);
LogMessageVerb(X_ERROR, 1, "%s\n", str);
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) %s %d %u %% %p %i\n") == 0);
/* literal % */
LogMessageVerbSigSafe(X_ERROR, 1, "test %%\n");
LogMessageVerb(X_ERROR, 1, "test %%\n");
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) test %\n") == 0);
/* character */
LogMessageVerbSigSafe(X_ERROR, 1, "test %c\n", 'a');
LogMessageVerb(X_ERROR, 1, "test %c\n", 'a');
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) test a\n") == 0);
/* something unsupported % */
LogMessageVerbSigSafe(X_ERROR, 1, "test %Q\n");
LogMessageVerb(X_ERROR, 1, "test %Q\n");
read_log_msg(logmsg);
assert(strstr(logmsg, "BUG") != NULL);
LogMessageVerbSigSafe(X_ERROR, 1, "\n");
LogMessageVerb(X_ERROR, 1, "\n");
fseek(f, 0, SEEK_END);
/* string substitution */
LogMessageVerbSigSafe(X_ERROR, 1, "%s\n", "substituted string");
LogMessageVerb(X_ERROR, 1, "%s\n", "substituted string");
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) substituted string\n") == 0);
/* Invalid format */
LogMessageVerbSigSafe(X_ERROR, 1, "%4", 4);
LogMessageVerb(X_ERROR, 1, "%4", 4);
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) ") == 0);
LogMessageVerbSigSafe(X_ERROR, 1, "\n");
LogMessageVerb(X_ERROR, 1, "\n");
fseek(f, 0, SEEK_END);
/* %hld is bogus */
LogMessageVerbSigSafe(X_ERROR, 1, "%hld\n", 4);
LogMessageVerb(X_ERROR, 1, "%hld\n", 4);
read_log_msg(logmsg);
assert(strstr(logmsg, "BUG") != NULL);
LogMessageVerbSigSafe(X_ERROR, 1, "\n");
LogMessageVerb(X_ERROR, 1, "\n");
fseek(f, 0, SEEK_END);
/* number substitution */
@ -262,12 +262,12 @@ static void logging_format(void)
do {
char expected[30];
sprintf(expected, "(EE) %u\n", ui);
LogMessageVerbSigSafe(X_ERROR, 1, "%u\n", ui);
LogMessageVerb(X_ERROR, 1, "%u\n", ui);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %x\n", ui);
LogMessageVerbSigSafe(X_ERROR, 1, "%x\n", ui);
LogMessageVerb(X_ERROR, 1, "%x\n", ui);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
@ -281,21 +281,21 @@ static void logging_format(void)
do {
char expected[30];
sprintf(expected, "(EE) %lu\n", lui);
LogMessageVerbSigSafe(X_ERROR, 1, "%lu\n", lui);
LogMessageVerb(X_ERROR, 1, "%lu\n", lui);
read_log_msg(logmsg);
sprintf(expected, "(EE) %lld\n", (unsigned long long)ui);
LogMessageVerbSigSafe(X_ERROR, 1, "%lld\n", (unsigned long long)ui);
LogMessageVerb(X_ERROR, 1, "%lld\n", (unsigned long long)ui);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %lx\n", lui);
LogMessageVerbSigSafe(X_ERROR, 1, "%lx\n", lui);
LogMessageVerb(X_ERROR, 1, "%lx\n", lui);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %llx\n", (unsigned long long)ui);
LogMessageVerbSigSafe(X_ERROR, 1, "%llx\n", (unsigned long long)ui);
LogMessageVerb(X_ERROR, 1, "%llx\n", (unsigned long long)ui);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
@ -310,12 +310,12 @@ static void logging_format(void)
do {
char expected[30];
sprintf(expected, "(EE) %d\n", i);
LogMessageVerbSigSafe(X_ERROR, 1, "%d\n", i);
LogMessageVerb(X_ERROR, 1, "%d\n", i);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %d\n", i | INT_MIN);
LogMessageVerbSigSafe(X_ERROR, 1, "%d\n", i | INT_MIN);
LogMessageVerb(X_ERROR, 1, "%d\n", i | INT_MIN);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
@ -329,22 +329,22 @@ static void logging_format(void)
do {
char expected[30];
sprintf(expected, "(EE) %ld\n", li);
LogMessageVerbSigSafe(X_ERROR, 1, "%ld\n", li);
LogMessageVerb(X_ERROR, 1, "%ld\n", li);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %ld\n", li | LONG_MIN);
LogMessageVerbSigSafe(X_ERROR, 1, "%ld\n", li | LONG_MIN);
LogMessageVerb(X_ERROR, 1, "%ld\n", li | LONG_MIN);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %lld\n", (long long)li);
LogMessageVerbSigSafe(X_ERROR, 1, "%lld\n", (long long)li);
LogMessageVerb(X_ERROR, 1, "%lld\n", (long long)li);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
sprintf(expected, "(EE) %lld\n", (long long)(li | LONG_MIN));
LogMessageVerbSigSafe(X_ERROR, 1, "%lld\n", (long long)(li | LONG_MIN));
LogMessageVerb(X_ERROR, 1, "%lld\n", (long long)(li | LONG_MIN));
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
@ -357,7 +357,7 @@ static void logging_format(void)
/* pointer substitution */
/* we print a null-pointer differently to printf */
LogMessageVerbSigSafe(X_ERROR, 1, "%p\n", NULL);
LogMessageVerb(X_ERROR, 1, "%p\n", NULL);
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) 0x0\n") == 0);
@ -369,7 +369,7 @@ static void logging_format(void)
#else
sprintf(expected, "(EE) %p\n", (void*)ptr);
#endif
LogMessageVerbSigSafe(X_ERROR, 1, "%p\n", (void*)ptr);
LogMessageVerb(X_ERROR, 1, "%p\n", (void*)ptr);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
ptr <<= 1;
@ -380,20 +380,20 @@ static void logging_format(void)
double d = float_tests[i];
char expected[30];
sprintf(expected, "(EE) %.2f\n", d);
LogMessageVerbSigSafe(X_ERROR, 1, "%f\n", d);
LogMessageVerb(X_ERROR, 1, "%f\n", d);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
/* test for length modifiers, we just ignore them atm */
LogMessageVerbSigSafe(X_ERROR, 1, "%.3f\n", d);
LogMessageVerb(X_ERROR, 1, "%.3f\n", d);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
LogMessageVerbSigSafe(X_ERROR, 1, "%3f\n", d);
LogMessageVerb(X_ERROR, 1, "%3f\n", d);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
LogMessageVerbSigSafe(X_ERROR, 1, "%.0f\n", d);
LogMessageVerb(X_ERROR, 1, "%.0f\n", d);
read_log_msg(logmsg);
assert(strcmp(logmsg, expected) == 0);
}