(!1688) os: unexport internal logging functions

Lots of logging functions, especially init and teardown aren't called
by any drivers/modules, so no need to keep them exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-09-09 16:56:26 +02:00
parent 54632e9049
commit 4cd73b26c0
49 changed files with 150 additions and 36 deletions

View File

@ -46,6 +46,7 @@ in this Software without prior written authorization from The Open Group.
#include "miext/extinit_priv.h" #include "miext/extinit_priv.h"
#include "os/auth.h" #include "os/auth.h"
#include "os/busfault.h" #include "os/busfault.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "misc.h" #include "misc.h"

View File

@ -36,6 +36,9 @@ from Kaleb S. KEITHLEY
#include <X11/X.h> #include <X11/X.h>
#include <X11/Xproto.h> #include <X11/Xproto.h>
#include <X11/extensions/xf86vmproto.h> #include <X11/extensions/xf86vmproto.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "dixstruct.h" #include "dixstruct.h"
#include "extnsionst.h" #include "extnsionst.h"

View File

@ -95,6 +95,7 @@ SOFTWARE.
#include "dix/eventconvert.h" #include "dix/eventconvert.h"
#include "dix/exevents_priv.h" #include "dix/exevents_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "inputstr.h" #include "inputstr.h"
#include "windowstr.h" #include "windowstr.h"

View File

@ -28,6 +28,8 @@
#include <dbus/dbus.h> #include <dbus/dbus.h>
#include <sys/select.h> #include <sys/select.h>
#include "os/log_priv.h"
#include "dix.h" #include "dix.h"
#include "os.h" #include "os.h"

View File

@ -60,6 +60,7 @@ SOFTWARE.
#include "dix/exevents_priv.h" #include "dix/exevents_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "dix/ptrveloc_priv.h" #include "dix/ptrveloc_priv.h"
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "misc.h" #include "misc.h"

View File

@ -60,6 +60,7 @@ Equipment Corporation.
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/gc_priv.h" #include "dix/gc_priv.h"
#include "os/auth.h" #include "os/auth.h"
#include "os/log_priv.h"
#include "scrnintstr.h" #include "scrnintstr.h"
#include "resource.h" #include "resource.h"

View File

@ -125,6 +125,7 @@ Equipment Corporation.
#include "dix/eventconvert.h" #include "dix/eventconvert.h"
#include "dix/exevents_priv.h" #include "dix/exevents_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "misc.h" #include "misc.h"

View File

@ -31,6 +31,7 @@
#include "dix/eventconvert.h" #include "dix/eventconvert.h"
#include "dix/exevents_priv.h" #include "dix/exevents_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "inputstr.h" #include "inputstr.h"
#include "scrnintstr.h" #include "scrnintstr.h"

View File

@ -28,6 +28,7 @@
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "os/cmdline.h" #include "os/cmdline.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "ephyr.h" #include "ephyr.h"

View File

@ -50,6 +50,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <grp.h> #include <grp.h>
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "xf86.h" #include "xf86.h"

View File

@ -59,17 +59,17 @@
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/extensions/XI.h> #include <X11/extensions/XI.h>
#include <X11/extensions/XIproto.h> #include <X11/extensions/XIproto.h>
#include <X11/keysym.h>
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "xf86.h" #include "xf86.h"
#include "xf86Priv.h" #include "xf86Priv.h"
#include "xf86_os_support.h" #include "xf86_os_support.h"
#include "xf86_OSlib.h" #include "xf86_OSlib.h"
#include <X11/keysym.h>
#ifdef XFreeXDGA #ifdef XFreeXDGA
#include "dgaproc.h" #include "dgaproc.h"

View File

@ -43,6 +43,7 @@
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "mi.h" #include "mi.h"
#include "os.h" #include "os.h"

View File

@ -57,6 +57,7 @@
#include "dix/screenint_priv.h" #include "dix/screenint_priv.h"
#include "os/cmdline.h" #include "os/cmdline.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "servermd.h" #include "servermd.h"

View File

@ -85,6 +85,9 @@
#endif #endif
#include <X11/X.h> #include <X11/X.h>
#include "os/log_priv.h"
#include "xf86Modes.h" #include "xf86Modes.h"
#include "xf86Crtc.h" #include "xf86Crtc.h"
#include "os.h" #include "os.h"

View File

@ -39,6 +39,9 @@
#endif #endif
#include <X11/X.h> #include <X11/X.h>
#include "os/log_priv.h"
#include "os.h" #include "os.h"
#include "xf86.h" #include "xf86.h"
#include "xf86Priv.h" #include "xf86Priv.h"

View File

@ -30,18 +30,17 @@
#include <xorg-config.h> #include <xorg-config.h>
#endif #endif
#include <X11/X.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "xf86.h" #include "xf86.h"
#include <X11/X.h>
#include "scrnintstr.h" #include "scrnintstr.h"
#include "regionstr.h" #include "regionstr.h"
#include "xf86fbman.h" #include "xf86fbman.h"
/*
#define DEBUG
*/
static DevPrivateKeyRec xf86FBManagerKeyRec; static DevPrivateKeyRec xf86FBManagerKeyRec;
static DevPrivateKey xf86FBManagerKey; static DevPrivateKey xf86FBManagerKey;

View File

@ -35,8 +35,11 @@
#include <ctype.h> #include <ctype.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <X11/X.h>
#include <pciaccess.h> #include <pciaccess.h>
#include <X11/X.h>
#include "os/log_priv.h"
#include "os.h" #include "os.h"
#include "Pci.h" #include "Pci.h"
#include "xf86.h" #include "xf86.h"

View File

@ -36,6 +36,8 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "os/log_priv.h"
#include "xf86.h" #include "xf86.h"
#include "vbe.h" #include "vbe.h"
#include "vbeModes.h" #include "vbeModes.h"

View File

@ -10,6 +10,8 @@
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include "os/log_priv.h"
#include "os.h" #include "os.h"
#include "xf86.h" #include "xf86.h"
#include "xf86Priv.h" #include "xf86Priv.h"

View File

@ -4,6 +4,9 @@
#endif #endif
#include <X11/X.h> #include <X11/X.h>
#include "os/log_priv.h"
#include "os.h" #include "os.h"
#include "xf86.h" #include "xf86.h"
#include "xf86Priv.h" #include "xf86Priv.h"

View File

@ -59,6 +59,7 @@
#include <errno.h> #include <errno.h>
#include <X11/X.h> #include <X11/X.h>
#include "os/log_priv.h"
#include "os/xserver_poll.h" #include "os/xserver_poll.h"
#include "xf86.h" #include "xf86.h"

View File

@ -16,6 +16,9 @@
#include <unistd.h> #include <unistd.h>
#include <X11/X.h> #include <X11/X.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "xf86.h" #include "xf86.h"

View File

@ -36,6 +36,7 @@
#include "miext/extinit_priv.h" #include "miext/extinit_priv.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "os.h" #include "os.h"

View File

@ -30,6 +30,8 @@
#include <drm_fourcc.h> #include <drm_fourcc.h>
#include <wayland-util.h> #include <wayland-util.h>
#include "os/log_priv.h"
#include "xwayland-dmabuf.h" #include "xwayland-dmabuf.h"
#include "xwayland-glamor-gbm.h" #include "xwayland-glamor-gbm.h"
#include "xwayland-screen.h" #include "xwayland-screen.h"

View File

@ -32,6 +32,7 @@
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "randr/randrstr_priv.h" #include "randr/randrstr_priv.h"
#include "os/log_priv.h"
#include "xwayland-cvt.h" #include "xwayland-cvt.h"
#include "xwayland-output.h" #include "xwayland-output.h"

View File

@ -40,6 +40,7 @@
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "dix/property_priv.h" #include "dix/property_priv.h"
#include "miext/extinit_priv.h" #include "miext/extinit_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "os/xserver_poll.h" #include "os/xserver_poll.h"

View File

@ -34,6 +34,7 @@
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/property_priv.h" #include "dix/property_priv.h"
#include "os/log_priv.h"
#include "compositeext.h" #include "compositeext.h"
#include "compint.h" #include "compint.h"

View File

@ -33,6 +33,7 @@
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/client_priv.h" #include "os/client_priv.h"
#include "os/log_priv.h"
#include <inputstr.h> #include <inputstr.h>
#include <inpututils.h> #include <inpututils.h>

View File

@ -41,6 +41,7 @@
#include "os/auth.h" #include "os/auth.h"
#include "os/cmdline.h" #include "os/cmdline.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "os/xserver_poll.h" #include "os/xserver_poll.h"

View File

@ -38,6 +38,7 @@ from The Open Group.
#include "dix/screenint_priv.h" #include "dix/screenint_priv.h"
#include "miext/extinit_priv.h" #include "miext/extinit_priv.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "winmsg.h" #include "winmsg.h"

View File

@ -32,6 +32,7 @@
#include <xwin-config.h> #include <xwin-config.h>
#endif #endif
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include <../xfree86/common/xorgVersion.h> #include <../xfree86/common/xorgVersion.h>

View File

@ -320,13 +320,6 @@ extern _X_EXPORT int
timingsafe_memcmp(const void *b1, const void *b2, size_t len); timingsafe_memcmp(const void *b1, const void *b2, size_t len);
#endif #endif
/* Logging. */
typedef enum _LogParameter {
XLOG_SYNC,
XLOG_VERBOSITY,
XLOG_FILE_VERBOSITY
} LogParameter;
/* Flags for log messages. */ /* Flags for log messages. */
typedef enum { typedef enum {
X_PROBED, /* Value was probed */ X_PROBED, /* Value was probed */
@ -343,14 +336,6 @@ typedef enum {
X_UNKNOWN = -1 /* unknown -- this must always be last */ X_UNKNOWN = -1 /* unknown -- this must always be last */
} MessageType; } MessageType;
extern _X_EXPORT const char *
LogInit(const char *fname, const char *backup);
extern void
LogSetDisplay(void);
extern _X_EXPORT void
LogClose(enum ExitCode error);
extern _X_EXPORT Bool
LogSetParameter(LogParameter param, int value);
extern _X_EXPORT void extern _X_EXPORT void
LogVMessageVerb(MessageType type, int verb, const char *format, va_list args) LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
_X_ATTRIBUTE_PRINTF(3, 0); _X_ATTRIBUTE_PRINTF(3, 0);
@ -367,7 +352,7 @@ extern _X_EXPORT void
LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list args) LogVMessageVerbSigSafe(MessageType type, int verb, const char *format, va_list args)
_X_ATTRIBUTE_PRINTF(3, 0); _X_ATTRIBUTE_PRINTF(3, 0);
extern _X_EXPORT void void
LogVHdrMessageVerb(MessageType type, int verb, LogVHdrMessageVerb(MessageType type, int verb,
const char *msg_format, va_list msg_args, const char *msg_format, va_list msg_args,
const char *hdr_format, va_list hdr_args) const char *hdr_format, va_list hdr_args)
@ -385,12 +370,6 @@ FatalError(const char *f, ...)
_X_ATTRIBUTE_PRINTF(1, 2) _X_ATTRIBUTE_PRINTF(1, 2)
_X_NORETURN; _X_NORETURN;
#ifdef DEBUG
#define DebugF ErrorF
#else
#define DebugF(...) /* */
#endif
extern _X_EXPORT void extern _X_EXPORT void
VErrorF(const char *f, va_list args) VErrorF(const char *f, va_list args)
_X_ATTRIBUTE_PRINTF(1, 0); _X_ATTRIBUTE_PRINTF(1, 0);
@ -403,7 +382,7 @@ _X_ATTRIBUTE_PRINTF(1, 0);
extern _X_EXPORT void extern _X_EXPORT void
ErrorFSigSafe(const char *f, ...) ErrorFSigSafe(const char *f, ...)
_X_ATTRIBUTE_PRINTF(1, 2); _X_ATTRIBUTE_PRINTF(1, 2);
extern _X_EXPORT void void
LogPrintMarkers(void); LogPrintMarkers(void);
extern _X_EXPORT void extern _X_EXPORT void

View File

@ -87,6 +87,7 @@
#endif #endif
#include "os/auth.h" #include "os/auth.h"
#include "os/log_priv.h"
/** /**
* Try to determine a PID for a client from its connection * Try to determine a PID for a client from its connection

View File

@ -97,6 +97,7 @@ SOFTWARE.
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "os/audit.h" #include "os/audit.h"
#include "os/auth.h" #include "os/auth.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "misc.h" /* for typedef of pointer */ #include "misc.h" /* for typedef of pointer */

View File

@ -36,6 +36,7 @@
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "inputstr.h" #include "inputstr.h"
#include "opaque.h" #include "opaque.h"

View File

@ -93,6 +93,7 @@ OR PERFORMANCE OF THIS SOFTWARE.
#include "os/audit.h" #include "os/audit.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/fmt.h" #include "os/fmt.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "opaque.h" #include "opaque.h"
@ -310,7 +311,7 @@ LogClose(enum ExitCode error)
} }
} }
Bool int
LogSetParameter(LogParameter param, int value) LogSetParameter(LogParameter param, int value)
{ {
switch (param) { switch (param) {

71
os/log_priv.h Normal file
View File

@ -0,0 +1,71 @@
/* SPDX-License-Identifier: MIT OR X11
*
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
*/
#ifndef __XORG_OS_LOGGING_H
#define __XORG_OS_LOGGING_H
#include "include/os.h"
/**
* @brief initialize logging and open log files
*
* Make backup of existing log file, create a new one and open it for logging.
*
* - May be called with NULL or "", if no logging is desired.
*
* - Must always be called, otherwise log messages will fill up the buffer and
* let it grow infinitely.
*
* - if "%s" is present in fname, it will be replaced with the display string or pid
*
* @param fname log file name template. if NULL, dont write any log.
* @param backup name for the old logfile.
* @return new log file name
*/
const char* LogInit(const char *fname, const char *backup);
/**
* @brief rename the current log file according display name
*
* Renames the current log file with per display prefix (e.g. "Xorg.log.0")
*
*/
void LogSetDisplay(void);
/**
* @brief log exit code, then flush and close log file and write
*
* Logs the exit code (and success/error state), then flush and close log file.
*/
void LogClose(enum ExitCode error);
/* @brief parameters for LogSetParameter() */
typedef enum {
XLOG_SYNC, /* enable/disable fsync() after each log file write */
XLOG_VERBOSITY, /* set console log verbosity */
XLOG_FILE_VERBOSITY, /* set log file verbosity */
} LogParameter;
/**
* @brief set log file paremeters
*
* Set various (int) logging parameters, eg. verbosity.
* See XLOG_* defines
*
* @param ID of the parameter to set
* @param value the new value
* @result TRUE if successful
*/
int LogSetParameter(LogParameter param, int value);
#ifdef DEBUG
/**
* @brief log debug messages (like errors) if symbol DEBUG is defined
*/
#define DebugF ErrorF
#else
#define DebugF(...) /* */
#endif
#endif /* __XORG_OS_LOGGING_H */

View File

@ -60,6 +60,7 @@ SOFTWARE.
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "os/busfault.h" #include "os/busfault.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "os/serverlock.h" #include "os/serverlock.h"

View File

@ -67,8 +67,6 @@ OR PERFORMANCE OF THIS SOFTWARE.
#define TRANS_REOPEN #define TRANS_REOPEN
#include <X11/Xtrans/Xtrans.h> #include <X11/Xtrans/Xtrans.h>
#include "os/audit.h"
#include "input.h" #include "input.h"
#include "dixfont.h" #include "dixfont.h"
#include <X11/fonts/libxfont2.h> #include <X11/fonts/libxfont2.h>
@ -96,9 +94,11 @@ OR PERFORMANCE OF THIS SOFTWARE.
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "miext/extinit_priv.h" #include "miext/extinit_priv.h"
#include "os/audit.h"
#include "os/auth.h" #include "os/auth.h"
#include "os/cmdline.h" #include "os/cmdline.h"
#include "os/ddx_priv.h" #include "os/ddx_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "os/serverlock.h" #include "os/serverlock.h"

View File

@ -30,6 +30,7 @@
#include <unistd.h> #include <unistd.h>
#include "os/fmt.h" #include "os/fmt.h"
#include "os/log_priv.h"
#include "assert.h" #include "assert.h"
#include "misc.h" #include "misc.h"

View File

@ -29,9 +29,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <stdio.h> #include <stdio.h>
#include <X11/X.h> #include <X11/X.h>
#include <X11/Xproto.h> #include <X11/Xproto.h>
#include <X11/keysym.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "inputstr.h" #include "inputstr.h"
#include <X11/keysym.h>
#include <xkbsrv.h> #include <xkbsrv.h>
/***====================================================================***/ /***====================================================================***/

View File

@ -39,6 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XKM.h> #include <X11/extensions/XKM.h>
#include "dix/dix_priv.h" #include "dix/dix_priv.h"
#include "os/log_priv.h"
#include "os/osdep.h" #include "os/osdep.h"
#include "inputstr.h" #include "inputstr.h"

View File

@ -40,6 +40,9 @@
#include <X11/Xfuncs.h> #include <X11/Xfuncs.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "inputstr.h" #include "inputstr.h"
#include "dix.h" #include "dix.h"

View File

@ -37,6 +37,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XIproto.h> #include <X11/extensions/XIproto.h>
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "exglobals.h" #include "exglobals.h"

View File

@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XIproto.h> #include <X11/extensions/XIproto.h>
#include "dix/exevents_priv.h" #include "dix/exevents_priv.h"
#include "os/log_priv.h"
#include "inputstr.h" #include "inputstr.h"
#include "exglobals.h" #include "exglobals.h"

View File

@ -40,6 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XKMformat.h> #include <X11/extensions/XKMformat.h>
#include "os/cmdline.h" #include "os/cmdline.h"
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "misc.h" #include "misc.h"

View File

@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/keysym.h> #include <X11/keysym.h>
#include "dix/input_priv.h" #include "dix/input_priv.h"
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "misc.h" #include "misc.h"

View File

@ -58,6 +58,7 @@ DEALINGS IN THE SOFTWARE.
#define XK_CYRILLIC #define XK_CYRILLIC
#include <X11/keysym.h> #include <X11/keysym.h>
#include "os/log_priv.h"
#include "xkb/xkbsrv_priv.h" #include "xkb/xkbsrv_priv.h"
#include "os.h" #include "os.h"

View File

@ -30,11 +30,13 @@
#include <X11/Xos.h> #include <X11/Xos.h>
#include <X11/Xfuncs.h> #include <X11/Xfuncs.h>
#include <X11/X.h> #include <X11/X.h>
#include <X11/Xproto.h> #include <X11/Xproto.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include <X11/extensions/XKMformat.h> #include <X11/extensions/XKMformat.h>
#include "os/log_priv.h"
#include "misc.h" #include "misc.h"
#include "inputstr.h" #include "inputstr.h"
#include "xkbstr.h" #include "xkbstr.h"