Xnamespace: namespace extension skeleton

Add tiny skeleton for the namespace extension. Disabled by default,
can be enabled via +extension arg, but doesn't actually do something yet.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-01-25 16:38:10 +01:00
parent c3f042de23
commit 4379f7cc87
8 changed files with 64 additions and 2 deletions

View File

@ -0,0 +1,8 @@
libxserver_namespace = static_library(
'libxserver_namespace',
[
'namespace.c',
],
include_directories: inc,
dependencies: common_dep,
)

View File

@ -0,0 +1,16 @@
#include <dix-config.h>
#include <X11/Xmd.h>
#include "include/os.h"
#include "miext/extinit_priv.h"
#include "namespace.h"
Bool noNamespaceExtension = TRUE;
void
NamespaceExtensionInit(void)
{
XNS_LOG("initializing namespace extension ...\n");
}

View File

@ -0,0 +1,18 @@
#ifndef __XSERVER_NAMESPACE_H
#define __XSERVER_NAMESPACE_H
#include <stdio.h>
#include <X11/Xmd.h>
#define XNS_LOG(...) do { printf("XNS "); printf(__VA_ARGS__); } while (0)
static inline Bool streq(const char *a, const char *b)
{
if (!a && !b)
return TRUE;
if (!a || !b)
return FALSE;
return (strcmp(a,b) == 0);
}
#endif /* __XSERVER_NAMESPACE_H */

View File

@ -228,6 +228,7 @@ conf_data.set('SHAPE', '1')
conf_data.set('XACE', build_xace ? '1' : false)
conf_data.set('XCMISC', '1')
conf_data.set('XCSECURITY', build_xsecurity ? '1' : false)
conf_data.set('CONFIG_NAMESPACE', build_namespace ? '1' : false)
conf_data.set('XDMCP', xdmcp_dep.found() ? '1' : false)
conf_data.set('XF86BIGFONT', build_xf86bigfont ? '1' : false)
conf_data.set('XF86DRI', build_dri1 ? '1' : false)
@ -245,9 +246,9 @@ conf_data.set('XvExtension', build_xv ? '1' : false)
conf_data.set('XvMCExtension', build_xvmc ? '1' : false)
# needed by several extensions
build_registry_resource = (build_xselinux or build_res)
build_registry_resource = (build_xselinux or build_res or build_namespace)
conf_data.set('X_REGISTRY_RESOURCE', build_registry_resource ? '1' : false)
build_registry_request = (build_xselinux or build_xsecurity or with_dtrace)
build_registry_request = (build_xselinux or build_xsecurity or with_dtrace or build_namespace)
conf_data.set('X_REGISTRY_REQUEST', build_registry_request ? '1' : false)
conf_data.set('HAVE_SHA1_IN_' + sha1.to_upper(), '1', description: 'Use @0@ SHA1 functions'.format(sha1))

View File

@ -568,6 +568,13 @@ if build_xsecurity
endif
endif
build_namespace = get_option('namespace')
if build_namespace
if not build_xace
error('cannot build Container extension without X-ACE')
endif
endif
build_xv = get_option('xv')
build_xvmc = get_option('xvmc')
if not build_xv
@ -819,6 +826,11 @@ libxserver = [
libxserver += libxserver_dri3
if build_namespace
subdir('Xext/namespace')
libxserver += libxserver_namespace
endif
subdir('hw')
if host_machine.system() != 'windows'

View File

@ -90,6 +90,8 @@ option('xace', type: 'boolean', value: true,
description: 'X-ACE extension')
option('xselinux', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
description: 'XSELINUX extension')
option('namespace', type: 'boolean', value: true,
description: 'Container/namespace extension')
option('xinerama', type: 'boolean', value: true,
description: 'Xinerama extension')
option('xcsecurity', type: 'boolean', value: false,

View File

@ -115,6 +115,9 @@ static const ExtensionModule staticExtensions[] = {
#ifdef XCSECURITY
{SecurityExtensionInit, "SECURITY", &noSecurityExtension},
#endif
#ifdef CONFIG_NAMESPACE
{NamespaceExtensionInit, "NAMESPACE", &noNamespaceExtension},
#endif
#ifdef XINERAMA
{PanoramiXExtensionInit, "XINERAMA", &noPanoramiXExtension},
#endif /* XINERAMA */

View File

@ -23,6 +23,7 @@ extern Bool noShapeExtension;
extern Bool noTestExtensions;
extern Bool noXFixesExtension;
extern Bool noXFree86BigfontExtension;
extern Bool noNamespaceExtension;
void CompositeExtensionInit(void);
void DamageExtensionInit(void);
@ -53,5 +54,6 @@ void XvMCExtensionInit(void);
void dri3_extension_init(void);
void PseudoramiXExtensionInit(void);
void present_extension_init(void);
void NamespaceExtensionInit(void);
#endif /* _XSERVER_EXTINIT_PRIV_H */