diff --git a/Xext/xres.c b/Xext/xres.c index 818a45c02..dd776ba62 100644 --- a/Xext/xres.c +++ b/Xext/xres.c @@ -4,26 +4,26 @@ #include +#include #include #include #include #include -#include +#include #include "dix/registry_priv.h" +#include "os/client_priv.h" #include "misc.h" #include "os.h" #include "dixstruct.h" #include "extnsionst.h" #include "swaprep.h" -#include #include "pixmapstr.h" #include "windowstr.h" #include "gcstruct.h" #include "extinit_priv.h" #include "protocol-versions.h" -#include "client.h" #include "list.h" #include "misc.h" #include diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c index 13d0dfe2a..4007958a9 100644 --- a/Xext/xselinux_hooks.c +++ b/Xext/xselinux_hooks.c @@ -33,6 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include "dix/registry_priv.h" +#include "os/client_priv.h" #include "selection.h" #include "inputstr.h" @@ -41,7 +42,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "propertyst.h" #include "extnsionst.h" #include "xacestr.h" -#include "client.h" #define _XSELINUX_NEED_FLASK_MAP #include "xselinuxint.h" diff --git a/dix/dispatch.c b/dix/dispatch.c index 4200971f8..c25e372d9 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -112,6 +112,7 @@ Equipment Corporation. #include "dix/screenint_priv.h" #include "include/resource.h" #include "os/auth.h" +#include "os/client_priv.h" #include "os/ddx_priv.h" #include "os/osdep.h" #include "os/screensaver.h" @@ -133,7 +134,6 @@ Equipment Corporation. #include "xace.h" #include "inputstr.h" #include "xkbsrv.h" -#include "client.h" #include "xfixesint.h" #include "dixstruct_priv.h" diff --git a/dix/main.c b/dix/main.c index 8117ea8e5..793ac778b 100644 --- a/dix/main.c +++ b/dix/main.c @@ -92,6 +92,7 @@ Equipment Corporation. #include "dix/registry_priv.h" #include "os/audit.h" #include "os/auth.h" +#include "os/client_priv.h" #include "os/cmdline.h" #include "os/ddx_priv.h" #include "os/osdep.h" @@ -114,7 +115,6 @@ Equipment Corporation. #include "dixfont.h" #include "extnsionst.h" #include "privates.h" -#include "client.h" #include "exevents.h" #ifdef PANORAMIX #include "panoramiXsrv.h" diff --git a/include/client.h b/include/client.h index 87f2b1172..8ecd41704 100644 --- a/include/client.h +++ b/include/client.h @@ -29,22 +29,12 @@ #ifdef HAVE_DIX_CONFIG_H #include #endif /* HAVE_DIX_CONFIG_H */ -#include -#include -/* Client IDs. Use GetClientPid, GetClientCmdName and GetClientCmdArgs - * instead of accessing the fields directly. */ -typedef struct { - pid_t pid; /* process ID, -1 if not available */ - const char *cmdname; /* process name, NULL if not available */ - const char *cmdargs; /* process arguments, NULL if not available */ -} ClientIdRec, *ClientIdPtr; +#include +#include struct _Client; - -/* Initialize and clean up. */ -void ReserveClientIds(struct _Client *client); -void ReleaseClientIds(struct _Client *client); +typedef struct _ClientId *ClientIdPtr; /* Determine client IDs for caching. Exported on purpose for * extensions such as SELinux. */ diff --git a/include/dixstruct.h b/include/dixstruct.h index 3607ea88a..66f6081b0 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -73,6 +73,8 @@ typedef struct _saveSet { #define SaveSetAssignToRoot(ss,tr) ((ss).toRoot = (tr)) #define SaveSetAssignMap(ss,m) ((ss).map = (m)) +struct _ClientId; + typedef struct _Client { void *requestBuffer; void *osPrivate; /* for OS layer, including scheduler */ @@ -109,7 +111,7 @@ typedef struct _Client { int smart_stop_tick; DeviceIntPtr clientPtr; - ClientIdPtr clientIds; + struct _ClientId *clientIds; int req_fds; } ClientRec; diff --git a/os/client.c b/os/client.c index 5c5278c32..bcbaee677 100644 --- a/os/client.c +++ b/os/client.c @@ -50,12 +50,14 @@ * * Author: Rami Ylimäki */ +#include #include #include #include -#include "client.h" +#include "os/client_priv.h" + #include "os.h" #include "dixstruct.h" @@ -452,7 +454,7 @@ ReserveClientIds(struct _Client *client) return; assert(!client->clientIds); - client->clientIds = calloc(1, sizeof(ClientIdRec)); + client->clientIds = calloc(1, sizeof(struct _ClientId)); if (!client->clientIds) return; diff --git a/os/client_priv.h b/os/client_priv.h new file mode 100644 index 000000000..176e72045 --- /dev/null +++ b/os/client_priv.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 2024 Enrico Weigelt, metux IT consult + * Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). + */ +#ifndef _XSERVER_DIX_CLIENT_PRIV_H +#define _XSERVER_DIX_CLIENT_PRIV_H + +#include + +#include "client.h" + +/* Client IDs. Use GetClientPid, GetClientCmdName and GetClientCmdArgs + * instead of accessing the fields directly. */ +struct _ClientId { + pid_t pid; /* process ID, -1 if not available */ + const char *cmdname; /* process name, NULL if not available */ + const char *cmdargs; /* process arguments, NULL if not available */ +}; + +struct _Client; + +/* Initialize and clean up. */ +void ReserveClientIds(struct _Client *client); +void ReleaseClientIds(struct _Client *client); + +#endif /* _XSERVER_DIX_CLIENT_PRIV_H */