diff options
author | marha <marha@users.sourceforge.net> | 2009-09-09 05:23:48 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-09-09 05:23:48 +0000 |
commit | 81f91c615982e50bb62708201569c33a3cd3d973 (patch) | |
tree | 4f32ecc48a3b7b5e76642f3792338263c53879bd /xorg-server/include | |
parent | b571a562410f565af2bdde52d9f7f9a23ffae04f (diff) | |
parent | a915739887477b28d924ecc8417ee107d125bd6c (diff) | |
download | vcxsrv-81f91c615982e50bb62708201569c33a3cd3d973.tar.gz vcxsrv-81f91c615982e50bb62708201569c33a3cd3d973.tar.bz2 vcxsrv-81f91c615982e50bb62708201569c33a3cd3d973.zip |
svn merge https://vcxsrv.svn.sourceforge.net/svnroot/vcxsrv/branches/released .
Diffstat (limited to 'xorg-server/include')
57 files changed, 2081 insertions, 1641 deletions
diff --git a/xorg-server/include/Makefile.am b/xorg-server/include/Makefile.am index cb0b2934c..f8eef53e1 100644 --- a/xorg-server/include/Makefile.am +++ b/xorg-server/include/Makefile.am @@ -17,6 +17,7 @@ sdk_HEADERS = \ dixfontstr.h \ dixgrabs.h \ dixstruct.h \ + events.h \ exevents.h \ extension.h \ extinit.h \ @@ -63,4 +64,5 @@ endif AM_CFLAGS = $(DIX_CFLAGS) EXTRA_DIST = \ - dix-config-apple-verbatim.h + dix-config-apple-verbatim.h \ + eventconvert.h eventstr.h diff --git a/xorg-server/include/Makefile.in b/xorg-server/include/Makefile.in index 6aff39ff4..76587e409 100644 --- a/xorg-server/include/Makefile.in +++ b/xorg-server/include/Makefile.in @@ -38,16 +38,21 @@ subdir = include DIST_COMMON = $(am__sdk_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/dix-config.h.in \ $(srcdir)/do-not-use-config.h.in $(srcdir)/kdrive-config.h.in \ - $(srcdir)/xkb-config.h.in $(srcdir)/xorg-config.h.in \ - $(srcdir)/xorg-server.h.in $(srcdir)/xwin-config.h.in + $(srcdir)/version-config.h.in $(srcdir)/xkb-config.h.in \ + $(srcdir)/xorg-config.h.in $(srcdir)/xorg-server.h.in \ + $(srcdir)/xwin-config.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_define_dir.m4 \ + $(top_srcdir)/m4/dolt.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/shave.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = do-not-use-config.h xorg-server.h dix-config.h \ - xorg-config.h xkb-config.h xwin-config.h kdrive-config.h + xorg-config.h xkb-config.h xwin-config.h kdrive-config.h \ + version-config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = @@ -77,9 +82,9 @@ am__installdirs = "$(DESTDIR)$(sdkdir)" "$(DESTDIR)$(sdkdir)" am__sdk_HEADERS_DIST = XIstubs.h bstore.h bstorestr.h closestr.h \ closure.h colormap.h colormapst.h hotplug.h cursor.h \ cursorstr.h dix.h dixaccess.h dixevents.h dixfont.h \ - dixfontstr.h dixgrabs.h dixstruct.h exevents.h extension.h \ - extinit.h extnsionst.h gc.h gcstruct.h globals.h input.h \ - inputstr.h misc.h miscstruct.h opaque.h os.h pixmap.h \ + dixfontstr.h dixgrabs.h dixstruct.h events.h exevents.h \ + extension.h extinit.h extnsionst.h gc.h gcstruct.h globals.h \ + input.h inputstr.h misc.h miscstruct.h opaque.h os.h pixmap.h \ pixmapstr.h privates.h property.h propertyst.h ptrveloc.h \ region.h regionstr.h registry.h resource.h rgb.h screenint.h \ scrnintstr.h selection.h servermd.h site.h swaprep.h swapreq.h \ @@ -94,6 +99,7 @@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ +AM_MAKEFLAGS = @AM_MAKEFLAGS@ APPLE_APPLICATIONS_DIR = @APPLE_APPLICATIONS_DIR@ APPLE_APPLICATION_ID = @APPLE_APPLICATION_ID@ APPLE_APPLICATION_NAME = @APPLE_APPLICATION_NAME@ @@ -114,9 +120,12 @@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CHANGELOG_CMD = @CHANGELOG_CMD@ COMPILEDDEFAULTFONTPATH = @COMPILEDDEFAULTFONTPATH@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CWARNFLAGS = @CWARNFLAGS@ +CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DARWIN_LIBS = @DARWIN_LIBS@ DBUS_CFLAGS = @DBUS_CFLAGS@ @@ -145,7 +154,9 @@ DRIPROTO_CFLAGS = @DRIPROTO_CFLAGS@ DRIPROTO_LIBS = @DRIPROTO_LIBS@ DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ +DRI_CFLAGS = @DRI_CFLAGS@ DRI_DRIVER_PATH = @DRI_DRIVER_PATH@ +DRI_LIBS = @DRI_LIBS@ DSYMUTIL = @DSYMUTIL@ DTRACE = @DTRACE@ DUMPBIN = @DUMPBIN@ @@ -154,9 +165,13 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FC = @FC@ FGREP = @FGREP@ FILE_MAN_DIR = @FILE_MAN_DIR@ FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ GLX_ARCH_DEFINES = @GLX_ARCH_DEFINES@ GLX_DEFINES = @GLX_DEFINES@ GL_CFLAGS = @GL_CFLAGS@ @@ -195,12 +210,13 @@ LTCOMPILE = @LTCOMPILE@ LTCXXCOMPILE = @LTCXXCOMPILE@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ +MAIN_LIB = @MAIN_LIB@ +MAKEFLAGS = @MAKEFLAGS@ MAKEINFO = @MAKEINFO@ MAKE_HTML = @MAKE_HTML@ MAKE_PDF = @MAKE_PDF@ MAKE_PS = @MAKE_PS@ MAKE_TEXT = @MAKE_TEXT@ -MESA_SOURCE = @MESA_SOURCE@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ MKDIR_P = @MKDIR_P@ @@ -220,7 +236,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ @@ -230,6 +245,7 @@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PROJECTROOT = @PROJECTROOT@ PS2PDF = @PS2PDF@ +Q = @Q@ RANLIB = @RANLIB@ RAWCPP = @RAWCPP@ RAWCPPFLAGS = @RAWCPPFLAGS@ @@ -243,11 +259,10 @@ STRIP = @STRIP@ TSLIB_CFLAGS = @TSLIB_CFLAGS@ TSLIB_LIBS = @TSLIB_LIBS@ UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ -VENDOR_MAN_VERSION = @VENDOR_MAN_VERSION@ -VENDOR_NAME = @VENDOR_NAME@ +V = @V@ VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ -VENDOR_RELEASE = @VENDOR_RELEASE@ VERSION = @VERSION@ +WINDRES = @WINDRES@ X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ XDMCP_CFLAGS = @XDMCP_CFLAGS@ @@ -283,6 +298,7 @@ XORG_OS_SUBDIR = @XORG_OS_SUBDIR@ XORG_SYS_LIBS = @XORG_SYS_LIBS@ XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@ XPBPROXY_LIBS = @XPBPROXY_LIBS@ +XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@ XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@ XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@ XSDL_INCS = @XSDL_INCS@ @@ -307,7 +323,6 @@ YFLAGS = @YFLAGS@ __XCONFIGFILE__ = @__XCONFIGFILE__@ abi_ansic = @abi_ansic@ abi_extension = @abi_extension@ -abi_font = @abi_font@ abi_videodrv = @abi_videodrv@ abi_xinput = @abi_xinput@ abs_builddir = @abs_builddir@ @@ -330,6 +345,7 @@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ +distcleancheck_listfiles = @distcleancheck_listfiles@ docdir = @docdir@ driverdir = @driverdir@ dvidir = @dvidir@ @@ -361,7 +377,9 @@ psdir = @psdir@ sbindir = @sbindir@ sdkdir = @sdkdir@ sharedstatedir = @sharedstatedir@ +shavedir = @shavedir@ srcdir = @srcdir@ +symbol_visibility = @symbol_visibility@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ @@ -385,6 +403,7 @@ top_srcdir = @top_srcdir@ @XORG_TRUE@ dixfontstr.h \ @XORG_TRUE@ dixgrabs.h \ @XORG_TRUE@ dixstruct.h \ +@XORG_TRUE@ events.h \ @XORG_TRUE@ exevents.h \ @XORG_TRUE@ extension.h \ @XORG_TRUE@ extinit.h \ @@ -428,9 +447,10 @@ top_srcdir = @top_srcdir@ @XORG_TRUE@nodist_sdk_HEADERS = xorg-server.h AM_CFLAGS = $(DIX_CFLAGS) EXTRA_DIST = \ - dix-config-apple-verbatim.h + dix-config-apple-verbatim.h \ + eventconvert.h eventstr.h -all: do-not-use-config.h xorg-server.h dix-config.h xorg-config.h xkb-config.h xwin-config.h kdrive-config.h +all: do-not-use-config.h xorg-server.h dix-config.h xorg-config.h xkb-config.h xwin-config.h kdrive-config.h version-config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: @@ -539,8 +559,18 @@ stamp-h7: $(srcdir)/kdrive-config.h.in $(top_builddir)/config.status @rm -f stamp-h7 cd $(top_builddir) && $(SHELL) ./config.status include/kdrive-config.h +version-config.h: stamp-h8 + @if test ! -f $@; then \ + rm -f stamp-h8; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h8; \ + else :; fi + +stamp-h8: $(srcdir)/version-config.h.in $(top_builddir)/config.status + @rm -f stamp-h8 + cd $(top_builddir) && $(SHELL) ./config.status include/version-config.h + distclean-hdr: - -rm -f do-not-use-config.h stamp-h1 xorg-server.h stamp-h2 dix-config.h stamp-h3 xorg-config.h stamp-h4 xkb-config.h stamp-h5 xwin-config.h stamp-h6 kdrive-config.h stamp-h7 + -rm -f do-not-use-config.h stamp-h1 xorg-server.h stamp-h2 dix-config.h stamp-h3 xorg-config.h stamp-h4 xkb-config.h stamp-h5 xwin-config.h stamp-h6 kdrive-config.h stamp-h7 version-config.h stamp-h8 mostlyclean-libtool: -rm -f *.lo @@ -598,11 +628,11 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) mkid -fID $$unique tags: TAGS -TAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in $(TAGS_DEPENDENCIES) \ +TAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in version-config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in $(LISP) $(TAGS_FILES)'; \ + list='$(SOURCES) $(HEADERS) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in version-config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -620,9 +650,9 @@ TAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in xorg-server.h.in dix-config. fi; \ fi ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in $(TAGS_DEPENDENCIES) \ +CTAGS: $(HEADERS) $(SOURCES) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in version-config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in $(LISP) $(TAGS_FILES)'; \ + list='$(SOURCES) $(HEADERS) do-not-use-config.h.in xorg-server.h.in dix-config.h.in xorg-config.h.in xkb-config.h.in xwin-config.h.in kdrive-config.h.in version-config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ @@ -674,7 +704,7 @@ check-am: all-am check: check-am all-am: Makefile $(HEADERS) do-not-use-config.h xorg-server.h \ dix-config.h xorg-config.h xkb-config.h xwin-config.h \ - kdrive-config.h + kdrive-config.h version-config.h installdirs: for dir in "$(DESTDIR)$(sdkdir)" "$(DESTDIR)$(sdkdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ diff --git a/xorg-server/include/XIstubs.h b/xorg-server/include/XIstubs.h index 6797e0732..ba2f861cd 100644 --- a/xorg-server/include/XIstubs.h +++ b/xorg-server/include/XIstubs.h @@ -26,27 +26,27 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef XI_STUBS_H #define XI_STUBS_H 1 -void +extern _X_EXPORT void CloseInputDevice ( DeviceIntPtr /* d */, ClientPtr /* client */); -void +extern _X_EXPORT void AddOtherInputDevices (void); -void +extern _X_EXPORT void OpenInputDevice ( DeviceIntPtr /* dev */, ClientPtr /* client */, int * /* status */); -int +extern _X_EXPORT int SetDeviceMode ( ClientPtr /* client */, DeviceIntPtr /* dev */, int /* mode */); -int +extern _X_EXPORT int SetDeviceValuators ( ClientPtr /* client */, DeviceIntPtr /* dev */, @@ -54,7 +54,7 @@ SetDeviceValuators ( int /* first_valuator */, int /* num_valuators */); -int +extern _X_EXPORT int ChangeDeviceControl ( ClientPtr /* client */, DeviceIntPtr /* dev */, diff --git a/xorg-server/include/closestr.h b/xorg-server/include/closestr.h index 8855a5f93..2cd67b1d3 100644 --- a/xorg-server/include/closestr.h +++ b/xorg-server/include/closestr.h @@ -30,7 +30,6 @@ from The Open Group. #ifndef CLOSESTR_H #define CLOSESTR_H -#define NEED_REPLIES #include <X11/Xproto.h> #include "closure.h" #include "dix.h" diff --git a/xorg-server/include/colormap.h b/xorg-server/include/colormap.h index 8513c0a09..a3467c93f 100644 --- a/xorg-server/include/colormap.h +++ b/xorg-server/include/colormap.h @@ -76,7 +76,7 @@ typedef struct _CMEntry *EntryPtr; /* moved to screenint.h: typedef struct _ColormapRec *ColormapPtr */ typedef struct _colorResource *colorResourcePtr; -extern int CreateColormap( +extern _X_EXPORT int CreateColormap( Colormap /*mid*/, ScreenPtr /*pScreen*/, VisualPtr /*pVisual*/, @@ -84,24 +84,24 @@ extern int CreateColormap( int /*alloc*/, int /*client*/); -extern int FreeColormap( +extern _X_EXPORT int FreeColormap( pointer /*pmap*/, XID /*mid*/); -extern int TellLostMap( +extern _X_EXPORT int TellLostMap( WindowPtr /*pwin*/, pointer /* Colormap *pmid */); -extern int TellGainedMap( +extern _X_EXPORT int TellGainedMap( WindowPtr /*pwin*/, pointer /* Colormap *pmid */); -extern int CopyColormapAndFree( +extern _X_EXPORT int CopyColormapAndFree( Colormap /*mid*/, ColormapPtr /*pSrc*/, int /*client*/); -extern int AllocColor( +extern _X_EXPORT int AllocColor( ColormapPtr /*pmap*/, unsigned short* /*pred*/, unsigned short* /*pgreen*/, @@ -109,11 +109,11 @@ extern int AllocColor( Pixel* /*pPix*/, int /*client*/); -extern void FakeAllocColor( +extern _X_EXPORT void FakeAllocColor( ColormapPtr /*pmap*/, xColorItem * /*item*/); -extern void FakeFreeColor( +extern _X_EXPORT void FakeFreeColor( ColormapPtr /*pmap*/, Pixel /*pixel*/); @@ -121,7 +121,7 @@ typedef int (*ColorCompareProcPtr)( EntryPtr /*pent*/, xrgb * /*prgb*/); -extern int FindColor( +extern _X_EXPORT int FindColor( ColormapPtr /*pmap*/, EntryPtr /*pentFirst*/, int /*size*/, @@ -131,17 +131,17 @@ extern int FindColor( int /*client*/, ColorCompareProcPtr /*comp*/); -extern int QueryColors( +extern _X_EXPORT int QueryColors( ColormapPtr /*pmap*/, int /*count*/, Pixel* /*ppixIn*/, xrgb* /*prgbList*/); -extern int FreeClientPixels( +extern _X_EXPORT int FreeClientPixels( pointer /*pcr*/, XID /*fakeid*/); -extern int AllocColorCells( +extern _X_EXPORT int AllocColorCells( int /*client*/, ColormapPtr /*pmap*/, int /*colors*/, @@ -150,7 +150,7 @@ extern int AllocColorCells( Pixel* /*ppix*/, Pixel* /*masks*/); -extern int AllocColorPlanes( +extern _X_EXPORT int AllocColorPlanes( int /*client*/, ColormapPtr /*pmap*/, int /*colors*/, @@ -163,19 +163,19 @@ extern int AllocColorPlanes( Pixel* /*pgmask*/, Pixel* /*pbmask*/); -extern int FreeColors( +extern _X_EXPORT int FreeColors( ColormapPtr /*pmap*/, int /*client*/, int /*count*/, Pixel* /*pixels*/, Pixel /*mask*/); -extern int StoreColors( +extern _X_EXPORT int StoreColors( ColormapPtr /*pmap*/, int /*count*/, xColorItem* /*defs*/); -extern int IsMapInstalled( +extern _X_EXPORT int IsMapInstalled( Colormap /*map*/, WindowPtr /*pWin*/); diff --git a/xorg-server/include/cursor.h b/xorg-server/include/cursor.h index f7c16e3f9..acc95c3b3 100644 --- a/xorg-server/include/cursor.h +++ b/xorg-server/include/cursor.h @@ -64,16 +64,16 @@ struct _DeviceIntRec; typedef struct _Cursor *CursorPtr; typedef struct _CursorMetric *CursorMetricPtr; -extern int cursorScreenDevPriv[MAXSCREENS]; +extern _X_EXPORT int cursorScreenDevPriv[MAXSCREENS]; #define CursorScreenKey(pScreen) (cursorScreenDevPriv + (pScreen)->myNum) -extern CursorPtr rootCursor; +extern _X_EXPORT CursorPtr rootCursor; -extern int FreeCursor( +extern _X_EXPORT int FreeCursor( pointer /*pCurs*/, XID /*cid*/); -extern int AllocARGBCursor( +extern _X_EXPORT int AllocARGBCursor( unsigned char* /*psrcbits*/, unsigned char* /*pmaskbits*/, CARD32* /*argb*/, @@ -88,7 +88,7 @@ extern int AllocARGBCursor( ClientPtr /*client*/, XID /*cid*/); -extern int AllocGlyphCursor( +extern _X_EXPORT int AllocGlyphCursor( Font /*source*/, unsigned int /*sourceChar*/, Font /*mask*/, @@ -103,39 +103,39 @@ extern int AllocGlyphCursor( ClientPtr /*client*/, XID /*cid*/); -extern CursorPtr CreateRootCursor( +extern _X_EXPORT CursorPtr CreateRootCursor( char* /*pfilename*/, unsigned int /*glyph*/); -extern int ServerBitsFromGlyph( +extern _X_EXPORT int ServerBitsFromGlyph( FontPtr /*pfont*/, unsigned int /*ch*/, CursorMetricPtr /*cm*/, unsigned char ** /*ppbits*/); -extern Bool CursorMetricsFromGlyph( +extern _X_EXPORT Bool CursorMetricsFromGlyph( FontPtr /*pfont*/, unsigned /*ch*/, CursorMetricPtr /*cm*/); -extern void CheckCursorConfinement( +extern _X_EXPORT void CheckCursorConfinement( WindowPtr /*pWin*/); -extern void NewCurrentScreen( +extern _X_EXPORT void NewCurrentScreen( struct _DeviceIntRec* /*pDev*/, ScreenPtr /*newScreen*/, int /*x*/, int /*y*/); -extern Bool PointerConfinedToScreen(struct _DeviceIntRec* /* pDev */); +extern _X_EXPORT Bool PointerConfinedToScreen(struct _DeviceIntRec* /* pDev */); -extern void GetSpritePosition( +extern _X_EXPORT void GetSpritePosition( struct _DeviceIntRec* /* pDev */, int * /*px*/, int * /*py*/); #ifdef PANORAMIX -extern int XineramaGetCursorScreen(struct _DeviceIntRec* pDev); +extern _X_EXPORT int XineramaGetCursorScreen(struct _DeviceIntRec* pDev); #endif /* PANORAMIX */ #endif /* CURSOR_H */ diff --git a/xorg-server/include/dix-config.h.in b/xorg-server/include/dix-config.h.in index db491ed06..fcb582ff0 100644 --- a/xorg-server/include/dix-config.h.in +++ b/xorg-server/include/dix-config.h.in @@ -124,6 +124,9 @@ /* Have Quartz */ #undef XQUARTZ +/* Support application updating through sparkle. */ +#undef XQUARTZ_SPARKLE + /* Build a standalone xpbproxy */ #undef STANDALONE_XPBPROXY @@ -315,15 +318,6 @@ /* Support Xinerama extension */ #undef XINERAMA -/* Build XKB */ -#undef XKB - -/* Enable XKB per default */ -#undef XKB_DFLT_DISABLED - -/* Build XKB server */ -#undef XKB_IN_SERVER - /* Vendor release */ #undef XORG_RELEASE diff --git a/xorg-server/include/dix.h b/xorg-server/include/dix.h index 9c2c73fb7..49dfe3774 100644 --- a/xorg-server/include/dix.h +++ b/xorg-server/include/dix.h @@ -53,6 +53,7 @@ SOFTWARE. #include "input.h" #include "cursor.h" #include "geext.h" +#include "events.h" #include <X11/extensions/XI.h> #define EARLIER -1 @@ -119,15 +120,15 @@ typedef struct _Client *ClientPtr; /* also in misc.h */ typedef struct _WorkQueue *WorkQueuePtr; -extern ClientPtr clients[MAXCLIENTS]; -extern ClientPtr serverClient; -extern int currentMaxClients; -extern char dispatchExceptionAtReset; +extern _X_EXPORT ClientPtr clients[MAXCLIENTS]; +extern _X_EXPORT ClientPtr serverClient; +extern _X_EXPORT int currentMaxClients; +extern _X_EXPORT char dispatchExceptionAtReset; typedef int HWEventQueueType; typedef HWEventQueueType* HWEventQueuePtr; -extern HWEventQueuePtr checkForInput[2]; +extern _X_EXPORT HWEventQueuePtr checkForInput[2]; typedef struct _TimeStamp { CARD32 months; /* really ~49.7 days */ @@ -136,96 +137,95 @@ typedef struct _TimeStamp { /* dispatch.c */ -extern void SetInputCheck( +extern _X_EXPORT void SetInputCheck( HWEventQueuePtr /*c0*/, HWEventQueuePtr /*c1*/); -extern void CloseDownClient( +extern _X_EXPORT void CloseDownClient( ClientPtr /*client*/); -extern void UpdateCurrentTime(void); +extern _X_EXPORT void UpdateCurrentTime(void); -extern void UpdateCurrentTimeIf(void); +extern _X_EXPORT void UpdateCurrentTimeIf(void); -extern int dixDestroyPixmap( +extern _X_EXPORT int dixDestroyPixmap( pointer /*value*/, XID /*pid*/); -extern void InitClient( +extern _X_EXPORT void InitClient( ClientPtr /*client*/, int /*i*/, pointer /*ospriv*/); -extern ClientPtr NextAvailableClient( +extern _X_EXPORT ClientPtr NextAvailableClient( pointer /*ospriv*/); -extern void SendErrorToClient( +extern _X_EXPORT void SendErrorToClient( ClientPtr /*client*/, unsigned int /*majorCode*/, unsigned int /*minorCode*/, XID /*resId*/, int /*errorCode*/); -extern void MarkClientException( +extern _X_EXPORT void MarkClientException( ClientPtr /*client*/); -extern void ddxBeforeReset (void); - +extern _X_HIDDEN Bool CreateConnectionBlock(void); /* dixutils.c */ -extern void CopyISOLatin1Lowered( +extern _X_EXPORT void CopyISOLatin1Lowered( unsigned char * /*dest*/, unsigned char * /*source*/, int /*length*/); -extern int CompareISOLatin1Lowered( +extern _X_EXPORT int CompareISOLatin1Lowered( unsigned char * /*a*/, int alen, unsigned char * /*b*/, int blen); -extern int dixLookupWindow( +extern _X_EXPORT int dixLookupWindow( WindowPtr *result, XID id, ClientPtr client, Mask access_mode); -extern int dixLookupDrawable( +extern _X_EXPORT int dixLookupDrawable( DrawablePtr *result, XID id, ClientPtr client, Mask type_mask, Mask access_mode); -extern int dixLookupGC( +extern _X_EXPORT int dixLookupGC( GCPtr *result, XID id, ClientPtr client, Mask access_mode); -extern int dixLookupClient( +extern _X_EXPORT int dixLookupClient( ClientPtr *result, XID id, ClientPtr client, Mask access_mode); -extern void NoopDDA(void); +extern _X_EXPORT void NoopDDA(void); -extern int AlterSaveSetForClient( +extern _X_EXPORT int AlterSaveSetForClient( ClientPtr /*client*/, WindowPtr /*pWin*/, unsigned /*mode*/, Bool /*toRoot*/, Bool /*map*/); -extern void DeleteWindowFromAnySaveSet( +extern _X_EXPORT void DeleteWindowFromAnySaveSet( WindowPtr /*pWin*/); -extern void BlockHandler( +extern _X_EXPORT void BlockHandler( pointer /*pTimeout*/, pointer /*pReadmask*/); -extern void WakeupHandler( +extern _X_EXPORT void WakeupHandler( int /*result*/, pointer /*pReadmask*/); @@ -240,23 +240,23 @@ typedef void (* WakeupHandlerProcPtr)( int /* result */, pointer /* pReadmask */); -extern Bool RegisterBlockAndWakeupHandlers( +extern _X_EXPORT Bool RegisterBlockAndWakeupHandlers( BlockHandlerProcPtr /*blockHandler*/, WakeupHandlerProcPtr /*wakeupHandler*/, pointer /*blockData*/); -extern void RemoveBlockAndWakeupHandlers( +extern _X_EXPORT void RemoveBlockAndWakeupHandlers( BlockHandlerProcPtr /*blockHandler*/, WakeupHandlerProcPtr /*wakeupHandler*/, pointer /*blockData*/); -extern void InitBlockAndWakeupHandlers(void); +extern _X_EXPORT void InitBlockAndWakeupHandlers(void); -extern void ProcessWorkQueue(void); +extern _X_EXPORT void ProcessWorkQueue(void); -extern void ProcessWorkQueueZombies(void); +extern _X_EXPORT void ProcessWorkQueueZombies(void); -extern Bool QueueWorkProc( +extern _X_EXPORT Bool QueueWorkProc( Bool (* /*function*/)( ClientPtr /*clientUnused*/, pointer /*closure*/), @@ -268,47 +268,47 @@ typedef Bool (* ClientSleepProcPtr)( ClientPtr /*client*/, pointer /*closure*/); -extern Bool ClientSleep( +extern _X_EXPORT Bool ClientSleep( ClientPtr /*client*/, ClientSleepProcPtr /* function */, pointer /*closure*/); #ifndef ___CLIENTSIGNAL_DEFINED___ #define ___CLIENTSIGNAL_DEFINED___ -extern Bool ClientSignal( +extern _X_EXPORT Bool ClientSignal( ClientPtr /*client*/); #endif /* ___CLIENTSIGNAL_DEFINED___ */ -extern void ClientWakeup( +extern _X_EXPORT void ClientWakeup( ClientPtr /*client*/); -extern Bool ClientIsAsleep( +extern _X_EXPORT Bool ClientIsAsleep( ClientPtr /*client*/); /* atom.c */ -extern Atom MakeAtom( - char * /*string*/, +extern _X_EXPORT Atom MakeAtom( + const char * /*string*/, unsigned /*len*/, Bool /*makeit*/); -extern Bool ValidAtom( +extern _X_EXPORT Bool ValidAtom( Atom /*atom*/); -extern char *NameForAtom( +extern _X_EXPORT const char *NameForAtom( Atom /*atom*/); -extern void AtomError(void); +extern _X_EXPORT void AtomError(void); -extern void FreeAllAtoms(void); +extern _X_EXPORT void FreeAllAtoms(void); -extern void InitAtoms(void); +extern _X_EXPORT void InitAtoms(void); /* main.c */ -extern void SetVendorRelease(int release); +extern _X_EXPORT void SetVendorRelease(int release); -extern void SetVendorString(char *string); +extern _X_EXPORT void SetVendorString(char *string); /* events.c */ @@ -317,27 +317,26 @@ extern void SetMaskForEvent( Mask /* mask */, int /* event */); -extern void ConfineToShape( +extern _X_EXPORT void ConfineToShape( DeviceIntPtr /* pDev */, RegionPtr /* shape */, int* /* px */, int* /* py */); -extern Bool IsParent( +extern _X_EXPORT Bool IsParent( WindowPtr /* maybeparent */, WindowPtr /* child */); -extern WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev); +extern _X_EXPORT WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev); -extern WindowPtr GetSpriteWindow(DeviceIntPtr pDev); +extern _X_EXPORT WindowPtr GetSpriteWindow(DeviceIntPtr pDev); -extern void NoticeEventTime(xEventPtr /* xE */); +extern _X_EXPORT void NoticeEventTime(InternalEvent *ev); extern void EnqueueEvent( - xEventPtr /* xE */, - DeviceIntPtr /* device */, - int /* count */); + InternalEvent * /* ev */, + DeviceIntPtr /* device */); extern void ActivatePointerGrab( DeviceIntPtr /* mouse */, @@ -357,39 +356,34 @@ extern void ActivateKeyboardGrab( extern void DeactivateKeyboardGrab( DeviceIntPtr /* keybd */); +extern BOOL ActivateFocusInGrab( + DeviceIntPtr /* dev */, + WindowPtr /* old */, + WindowPtr /* win */); + extern void AllowSome( ClientPtr /* client */, TimeStamp /* time */, DeviceIntPtr /* thisDev */, - int /* newState */, - Bool /* core */); + int /* newState */); extern void ReleaseActiveGrabs( ClientPtr client); -extern int DeliverEventsToWindow( +extern _X_EXPORT int DeliverEventsToWindow( DeviceIntPtr /* pWin */, WindowPtr /* pWin */, xEventPtr /* pEvents */, int /* count */, Mask /* filter */, - GrabPtr /* grab */, - int /* mskidx */); + GrabPtr /* grab */); extern int DeliverDeviceEvents( WindowPtr /* pWin */, - xEventPtr /* xE */, + InternalEvent* /* event */, GrabPtr /* grab */, WindowPtr /* stopAt */, - DeviceIntPtr /* dev */, - int /* count */); - -extern void DefineInitialRootWindow( - WindowPtr /* win */); - -extern void SetupSprite( - DeviceIntPtr /* pDev */, - ScreenPtr /* pScreen */); + DeviceIntPtr /* dev */); extern void InitializeSprite( DeviceIntPtr /* pDev */, @@ -399,37 +393,32 @@ extern void UpdateSpriteForScreen( DeviceIntPtr /* pDev */, ScreenPtr /* pScreen */); -extern void WindowHasNewCursor( +extern _X_EXPORT void WindowHasNewCursor( WindowPtr /* pWin */); extern Bool CheckDeviceGrabs( DeviceIntPtr /* device */, - xEventPtr /* xE */, - int /* checkFirst */, - int /* count */); + DeviceEvent* /* event */, + int /* checkFirst */); extern void DeliverFocusedEvent( DeviceIntPtr /* keybd */, - xEventPtr /* xE */, - WindowPtr /* window */, - int /* count */); + InternalEvent* /* event */, + WindowPtr /* window */); extern void DeliverGrabbedEvent( - xEventPtr /* xE */, + InternalEvent* /* event */, DeviceIntPtr /* thisDev */, - Bool /* deactivateGrab */, - int /* count */); + Bool /* deactivateGrab */); -#ifdef XKB extern void FixKeyState( - xEvent * /* xE */, + DeviceEvent* /* event */, DeviceIntPtr /* keybd */); -#endif /* XKB */ extern void RecalculateDeliverableEvents( WindowPtr /* pWin */); -extern int OtherClientGone( +extern _X_EXPORT int OtherClientGone( pointer /* value */, XID /* id */); @@ -455,15 +444,13 @@ extern int GrabDevice( Window /* grabWindow */, unsigned /* ownerEvents */, Time /* ctime */, - Mask /* mask */, - CARD8 * /* status */, - Bool /* coreGrab */); + GrabMask* /* mask */, + int /* grabtype */, + Cursor /* curs */, + Window /* confineToWin */, + CARD8 * /* status */); extern void InitEvents(void); -extern void InitSprite( - DeviceIntPtr /* pDev */, - Bool /* hasCursor */ - ); extern void CloseDownEvents(void); @@ -478,23 +465,22 @@ extern Mask EventMaskForClient( -extern int DeliverEvents( +extern _X_EXPORT int DeliverEvents( WindowPtr /*pWin*/, xEventPtr /*xE*/, int /*count*/, WindowPtr /*otherParent*/); -extern Bool -CheckMotion( - xEvent* /* xE */, +extern Bool CheckMotion( + DeviceEvent* /* ev */, DeviceIntPtr /* pDev */); -extern void WriteEventsToClient( +extern _X_EXPORT void WriteEventsToClient( ClientPtr /*pClient*/, int /*count*/, xEventPtr /*events*/); -extern int TryClientEvents( +extern _X_EXPORT int TryClientEvents( ClientPtr /*client*/, DeviceIntPtr /* device */, xEventPtr /*pEvents*/, @@ -503,17 +489,16 @@ extern int TryClientEvents( Mask /*filter*/, GrabPtr /*grab*/); -extern void WindowsRestructured(void); +extern _X_EXPORT void WindowsRestructured(void); -extern Bool SetClientPointer( - ClientPtr /* client */, - ClientPtr /* setter */, +extern int SetClientPointer( + ClientPtr /* client */, DeviceIntPtr /* device */); -extern DeviceIntPtr PickPointer( +extern _X_EXPORT DeviceIntPtr PickPointer( ClientPtr /* client */); -extern DeviceIntPtr PickKeyboard( +extern _X_EXPORT DeviceIntPtr PickKeyboard( ClientPtr /* client */); extern Bool IsInterferingGrab( @@ -522,15 +507,15 @@ extern Bool IsInterferingGrab( xEvent* /* events */); #ifdef PANORAMIX -extern void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff); +extern _X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff); #endif #ifdef RANDR -void +extern _X_EXPORT void ScreenRestructured (ScreenPtr pScreen); #endif -extern int ffs(int i); +extern _X_EXPORT int ffs(int i); /* * callback manager stuff @@ -544,30 +529,30 @@ typedef struct _CallbackList *CallbackListPtr; /* also in misc.h */ typedef void (*CallbackProcPtr) ( CallbackListPtr *, pointer, pointer); -extern Bool AddCallback( +extern _X_EXPORT Bool AddCallback( CallbackListPtr * /*pcbl*/, CallbackProcPtr /*callback*/, pointer /*data*/); -extern Bool DeleteCallback( +extern _X_EXPORT Bool DeleteCallback( CallbackListPtr * /*pcbl*/, CallbackProcPtr /*callback*/, pointer /*data*/); -extern void CallCallbacks( +extern _X_EXPORT void CallCallbacks( CallbackListPtr * /*pcbl*/, pointer /*call_data*/); -extern void DeleteCallbackList( +extern _X_EXPORT void DeleteCallbackList( CallbackListPtr * /*pcbl*/); -extern void InitCallbackManager(void); +extern _X_EXPORT void InitCallbackManager(void); /* * ServerGrabCallback stuff */ -extern CallbackListPtr ServerGrabCallback; +extern _X_EXPORT CallbackListPtr ServerGrabCallback; typedef enum {SERVER_GRABBED, SERVER_UNGRABBED, CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState; @@ -581,7 +566,7 @@ typedef struct { * EventCallback stuff */ -extern CallbackListPtr EventCallback; +extern _X_EXPORT CallbackListPtr EventCallback; typedef struct { ClientPtr client; @@ -593,7 +578,7 @@ typedef struct { * DeviceEventCallback stuff */ -extern CallbackListPtr DeviceEventCallback; +extern _X_EXPORT CallbackListPtr DeviceEventCallback; typedef struct { xEventPtr events; @@ -604,48 +589,41 @@ extern int XItoCoreType(int xi_type); extern Bool DevHasCursor(DeviceIntPtr pDev); extern Bool IsPointerDevice( DeviceIntPtr dev); extern Bool IsKeyboardDevice(DeviceIntPtr dev); -extern Bool IsPointerEvent(xEvent* xE); +extern Bool IsPointerEvent(InternalEvent *event); +extern Bool IsMaster(DeviceIntPtr dev); + +extern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what); +extern _X_HIDDEN int CoreKeyboardProc(DeviceIntPtr dev, int what); + /* * These are deprecated compatibility functions and will be removed soon! * Please use the noted replacements instead. */ /* replaced by dixLookupWindow */ -extern WindowPtr SecurityLookupWindow( +extern _X_EXPORT WindowPtr SecurityLookupWindow( XID id, ClientPtr client, Mask access_mode); /* replaced by dixLookupWindow */ -extern WindowPtr LookupWindow( +extern _X_EXPORT WindowPtr LookupWindow( XID id, ClientPtr client); /* replaced by dixLookupDrawable */ -extern pointer SecurityLookupDrawable( +extern _X_EXPORT pointer SecurityLookupDrawable( XID id, ClientPtr client, Mask access_mode); /* replaced by dixLookupDrawable */ -extern pointer LookupDrawable( +extern _X_EXPORT pointer LookupDrawable( XID id, ClientPtr client); /* replaced by dixLookupClient */ -extern ClientPtr LookupClient( +extern _X_EXPORT ClientPtr LookupClient( XID id, ClientPtr client); -/* GE stuff */ -extern void SetGenericFilter(int extension, Mask* filters); -extern int ExtGrabDevice(ClientPtr client, - DeviceIntPtr dev, - int device_mode, - WindowPtr grabWindow, - WindowPtr confineTo, - TimeStamp ctime, - Bool ownerEvents, - CursorPtr cursor, - Mask xi_mask, - GenericMaskPtr ge_masks); #endif /* DIX_H */ diff --git a/xorg-server/include/dixaccess.h b/xorg-server/include/dixaccess.h index 3c62ee354..7180acd71 100644 --- a/xorg-server/include/dixaccess.h +++ b/xorg-server/include/dixaccess.h @@ -49,5 +49,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define DixManageAccess (1<<25) /* manage object */ #define DixDebugAccess (1<<26) /* debug object */ #define DixBellAccess (1<<27) /* audible sound */ +#define DixPostAccess (1<<28) /* post or follow-up call */ #endif /* DIX_ACCESS_H */ diff --git a/xorg-server/include/dixevents.h b/xorg-server/include/dixevents.h index 1ce2ad0c1..b9153456f 100644 --- a/xorg-server/include/dixevents.h +++ b/xorg-server/include/dixevents.h @@ -26,62 +26,62 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef DIXEVENTS_H #define DIXEVENTS_H -extern void SetCriticalEvent(int /* event */); +extern _X_EXPORT void SetCriticalEvent(int /* event */); -extern CursorPtr GetSpriteCursor(DeviceIntPtr /*pDev*/); +extern _X_EXPORT CursorPtr GetSpriteCursor(DeviceIntPtr /*pDev*/); -extern int ProcAllowEvents(ClientPtr /* client */); +extern _X_EXPORT int ProcAllowEvents(ClientPtr /* client */); -extern int MaybeDeliverEventsToClient( +extern _X_EXPORT int MaybeDeliverEventsToClient( WindowPtr /* pWin */, xEvent * /* pEvents */, int /* count */, Mask /* filter */, ClientPtr /* dontClient */); -extern int ProcWarpPointer(ClientPtr /* client */); +extern _X_EXPORT int ProcWarpPointer(ClientPtr /* client */); -extern int EventSelectForWindow( +extern _X_EXPORT int EventSelectForWindow( WindowPtr /* pWin */, ClientPtr /* client */, Mask /* mask */); -extern int EventSuppressForWindow( +extern _X_EXPORT int EventSuppressForWindow( WindowPtr /* pWin */, ClientPtr /* client */, Mask /* mask */, Bool * /* checkOptional */); -extern int ProcSetInputFocus(ClientPtr /* client */); +extern _X_EXPORT int ProcSetInputFocus(ClientPtr /* client */); -extern int ProcGetInputFocus(ClientPtr /* client */); +extern _X_EXPORT int ProcGetInputFocus(ClientPtr /* client */); -extern int ProcGrabPointer(ClientPtr /* client */); +extern _X_EXPORT int ProcGrabPointer(ClientPtr /* client */); -extern int ProcChangeActivePointerGrab(ClientPtr /* client */); +extern _X_EXPORT int ProcChangeActivePointerGrab(ClientPtr /* client */); -extern int ProcUngrabPointer(ClientPtr /* client */); +extern _X_EXPORT int ProcUngrabPointer(ClientPtr /* client */); -extern int ProcGrabKeyboard(ClientPtr /* client */); +extern _X_EXPORT int ProcGrabKeyboard(ClientPtr /* client */); -extern int ProcUngrabKeyboard(ClientPtr /* client */); +extern _X_EXPORT int ProcUngrabKeyboard(ClientPtr /* client */); -extern int ProcQueryPointer(ClientPtr /* client */); +extern _X_EXPORT int ProcQueryPointer(ClientPtr /* client */); -extern int ProcSendEvent(ClientPtr /* client */); +extern _X_EXPORT int ProcSendEvent(ClientPtr /* client */); -extern int ProcUngrabKey(ClientPtr /* client */); +extern _X_EXPORT int ProcUngrabKey(ClientPtr /* client */); -extern int ProcGrabKey(ClientPtr /* client */); +extern _X_EXPORT int ProcGrabKey(ClientPtr /* client */); -extern int ProcGrabButton(ClientPtr /* client */); +extern _X_EXPORT int ProcGrabButton(ClientPtr /* client */); -extern int ProcUngrabButton(ClientPtr /* client */); +extern _X_EXPORT int ProcUngrabButton(ClientPtr /* client */); -extern int ProcRecolorCursor(ClientPtr /* client */); +extern _X_EXPORT int ProcRecolorCursor(ClientPtr /* client */); #ifdef PANORAMIX -extern void PostSyntheticMotion(DeviceIntPtr pDev, +extern _X_EXPORT void PostSyntheticMotion(DeviceIntPtr pDev, int x, int y, int screen, diff --git a/xorg-server/include/dixfont.h b/xorg-server/include/dixfont.h index 0f3df97cf..e444a2024 100644 --- a/xorg-server/include/dixfont.h +++ b/xorg-server/include/dixfont.h @@ -33,45 +33,45 @@ SOFTWARE. typedef struct _DIXFontProp *DIXFontPropPtr; -extern Bool SetDefaultFont(char * /*defaultfontname*/); +extern _X_EXPORT Bool SetDefaultFont(char * /*defaultfontname*/); -extern void QueueFontWakeup(FontPathElementPtr /*fpe*/); +extern _X_EXPORT void QueueFontWakeup(FontPathElementPtr /*fpe*/); -extern void RemoveFontWakeup(FontPathElementPtr /*fpe*/); +extern _X_EXPORT void RemoveFontWakeup(FontPathElementPtr /*fpe*/); -extern void FontWakeup(pointer /*data*/, +extern _X_EXPORT void FontWakeup(pointer /*data*/, int /*count*/, pointer /*LastSelectMask*/); -extern int OpenFont(ClientPtr /*client*/, +extern _X_EXPORT int OpenFont(ClientPtr /*client*/, XID /*fid*/, Mask /*flags*/, unsigned /*lenfname*/, char * /*pfontname*/); -extern int CloseFont(pointer /*pfont*/, +extern _X_EXPORT int CloseFont(pointer /*pfont*/, XID /*fid*/); typedef struct _xQueryFontReply *xQueryFontReplyPtr; -extern void QueryFont(FontPtr /*pFont*/, +extern _X_EXPORT void QueryFont(FontPtr /*pFont*/, xQueryFontReplyPtr /*pReply*/, int /*nProtoCCIStructs*/); -extern int ListFonts(ClientPtr /*client*/, +extern _X_EXPORT int ListFonts(ClientPtr /*client*/, unsigned char * /*pattern*/, unsigned int /*length*/, unsigned int /*max_names*/); -int +extern _X_EXPORT int doListFontsWithInfo(ClientPtr /*client*/, LFWIclosurePtr /*c*/); -extern int doPolyText(ClientPtr /*client*/, +extern _X_EXPORT int doPolyText(ClientPtr /*client*/, PTclosurePtr /*c*/ ); -extern int PolyText(ClientPtr /*client*/, +extern _X_EXPORT int PolyText(ClientPtr /*client*/, DrawablePtr /*pDraw*/, GCPtr /*pGC*/, unsigned char * /*pElt*/, @@ -81,10 +81,10 @@ extern int PolyText(ClientPtr /*client*/, int /*reqType*/, XID /*did*/); -extern int doImageText(ClientPtr /*client*/, +extern _X_EXPORT int doImageText(ClientPtr /*client*/, ITclosurePtr /*c*/); -extern int ImageText(ClientPtr /*client*/, +extern _X_EXPORT int ImageText(ClientPtr /*client*/, DrawablePtr /*pDraw*/, GCPtr /*pGC*/, int /*nChars*/, @@ -94,76 +94,76 @@ extern int ImageText(ClientPtr /*client*/, int /*reqType*/, XID /*did*/); -extern int SetFontPath(ClientPtr /*client*/, +extern _X_EXPORT int SetFontPath(ClientPtr /*client*/, int /*npaths*/, unsigned char * /*paths*/, int * /*error*/); -extern int SetDefaultFontPath(char * /*path*/); +extern _X_EXPORT int SetDefaultFontPath(char * /*path*/); -extern int GetFontPath(ClientPtr client, +extern _X_EXPORT int GetFontPath(ClientPtr client, int *count, int *length, unsigned char **result); -extern void DeleteClientFontStuff(ClientPtr /*client*/); +extern _X_EXPORT void DeleteClientFontStuff(ClientPtr /*client*/); /* Quartz support on Mac OS X pulls in the QuickDraw framework whose InitFonts function conflicts here. */ #ifdef __APPLE__ #define InitFonts Darwin_X_InitFonts #endif -extern void InitFonts(void); +extern _X_EXPORT void InitFonts(void); -extern void FreeFonts(void); +extern _X_EXPORT void FreeFonts(void); -extern FontPtr find_old_font(XID /*id*/); +extern _X_EXPORT FontPtr find_old_font(XID /*id*/); -extern void GetGlyphs(FontPtr /*font*/, +extern _X_EXPORT void GetGlyphs(FontPtr /*font*/, unsigned long /*count*/, unsigned char * /*chars*/, FontEncoding /*fontEncoding*/, unsigned long * /*glyphcount*/, CharInfoPtr * /*glyphs*/); -extern void QueryGlyphExtents(FontPtr /*pFont*/, +extern _X_EXPORT void QueryGlyphExtents(FontPtr /*pFont*/, CharInfoPtr * /*charinfo*/, unsigned long /*count*/, ExtentInfoPtr /*info*/); -extern Bool QueryTextExtents(FontPtr /*pFont*/, +extern _X_EXPORT Bool QueryTextExtents(FontPtr /*pFont*/, unsigned long /*count*/, unsigned char * /*chars*/, ExtentInfoPtr /*info*/); -extern Bool ParseGlyphCachingMode(char * /*str*/); +extern _X_EXPORT Bool ParseGlyphCachingMode(char * /*str*/); -extern void InitGlyphCaching(void); +extern _X_EXPORT void InitGlyphCaching(void); -extern void SetGlyphCachingMode(int /*newmode*/); +extern _X_EXPORT void SetGlyphCachingMode(int /*newmode*/); /* * libXfont/src/builtins/builtin.h */ -extern void BuiltinRegisterFpeFunctions(void); +extern _X_EXPORT void BuiltinRegisterFpeFunctions(void); /* * libXfont stubs. */ -extern int client_auth_generation(ClientPtr client); +extern _X_EXPORT int client_auth_generation(ClientPtr client); -extern void DeleteFontClientID(Font id); +extern _X_EXPORT void DeleteFontClientID(Font id); -extern FontResolutionPtr GetClientResolutions(int *num); +extern _X_EXPORT FontResolutionPtr GetClientResolutions(int *num); -extern int GetDefaultPointSize(void); +extern _X_EXPORT int GetDefaultPointSize(void); -extern Font GetNewFontClientID(void); +extern _X_EXPORT Font GetNewFontClientID(void); -extern int init_fs_handlers(FontPathElementPtr fpe, +extern _X_EXPORT int init_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr block_handler); -extern int RegisterFPEFunctions(NameCheckFunc name_func, +extern _X_EXPORT int RegisterFPEFunctions(NameCheckFunc name_func, InitFpeFunc init_func, FreeFpeFunc free_func, ResetFpeFunc reset_func, @@ -179,10 +179,10 @@ extern int RegisterFPEFunctions(NameCheckFunc name_func, NextLaFunc next_list_alias_func, SetPathFunc set_path_func); -extern void remove_fs_handlers(FontPathElementPtr fpe, +extern _X_EXPORT void remove_fs_handlers(FontPathElementPtr fpe, BlockHandlerProcPtr blockHandler, Bool all); -extern int StoreFontClientFont(FontPtr pfont, Font id); +extern _X_EXPORT int StoreFontClientFont(FontPtr pfont, Font id); #endif /* DIXFONT_H */ diff --git a/xorg-server/include/dixfontstr.h b/xorg-server/include/dixfontstr.h index 463b2fdc5..c559e861e 100644 --- a/xorg-server/include/dixfontstr.h +++ b/xorg-server/include/dixfontstr.h @@ -28,7 +28,6 @@ SOFTWARE. #include "dixfont.h" #include <X11/fonts/fontstruct.h> #include "closure.h" -#define NEED_REPLIES #include <X11/Xproto.h> /* for xQueryFontReply */ #define FONTCHARSET(font) (font) diff --git a/xorg-server/include/dixgrabs.h b/xorg-server/include/dixgrabs.h index 29aa82857..3b2a46d72 100644 --- a/xorg-server/include/dixgrabs.h +++ b/xorg-server/include/dixgrabs.h @@ -26,35 +26,35 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef DIXGRABS_H #define DIXGRABS_H 1 +struct _GrabParameters; + extern GrabPtr CreateGrab( int /* client */, DeviceIntPtr /* device */, - WindowPtr /* window */, - Mask /* eventMask */, - Bool /* ownerEvents */, - Bool /* keyboardMode */, - Bool /* pointerMode */, DeviceIntPtr /* modDevice */, - unsigned short /* modifiers */, + WindowPtr /* window */, + GrabType /* grabtype */, + GrabMask * /* mask */, + struct _GrabParameters * /* param */, int /* type */, KeyCode /* keybut */, - WindowPtr /* confineTo */, - CursorPtr /* cursor */); + WindowPtr /* confineTo */, + CursorPtr /* cursor */); -extern int DeletePassiveGrab( +extern _X_EXPORT int DeletePassiveGrab( pointer /* value */, XID /* id */); -extern Bool GrabMatchesSecond( +extern _X_EXPORT Bool GrabMatchesSecond( GrabPtr /* pFirstGrab */, GrabPtr /* pSecondGrab */, Bool /*ignoreDevice*/); -extern int AddPassiveGrabToList( +extern _X_EXPORT int AddPassiveGrabToList( ClientPtr /* client */, GrabPtr /* pGrab */); -extern Bool DeletePassiveGrabFromList( +extern _X_EXPORT Bool DeletePassiveGrabFromList( GrabPtr /* pMinuendGrab */); #endif /* DIXGRABS_H */ diff --git a/xorg-server/include/dixstruct.h b/xorg-server/include/dixstruct.h index 3eac3d110..acfbe46ca 100644 --- a/xorg-server/include/dixstruct.h +++ b/xorg-server/include/dixstruct.h @@ -37,11 +37,7 @@ SOFTWARE. * translation from client ids to server addresses. */ -#ifdef DEBUG -#define MAX_REQUEST_LOG 100 -#endif - -extern CallbackListPtr ClientStateCallback; +extern _X_EXPORT CallbackListPtr ClientStateCallback; typedef struct { ClientPtr client; @@ -54,7 +50,7 @@ typedef void (*ReplySwapPtr) ( int /* size */, void * /* pbuf */); -extern void ReplyNotSwappd ( +extern _X_EXPORT void ReplyNotSwappd ( ClientPtr /* pClient */, int /* size */, void * /* pbuf */); @@ -89,6 +85,7 @@ typedef struct _Window *SaveSetElt; #define SaveSetAssignMap(ss,m) #endif +/* The unused_ members are ABI spacing. Please reuse them. */ typedef struct _Client { int index; Mask clientAsMask; @@ -104,7 +101,7 @@ typedef struct _Client { * killed */ SaveSetElt *saveSet; int numSaved; - pointer screenPrivate[MAXSCREENS]; + void *unused_screenPrivate[16]; int (**requestVector) ( ClientPtr /* pClient */); CARD32 req_len; /* length of current request */ @@ -112,23 +109,15 @@ typedef struct _Client { int priority; ClientState clientState; PrivateRec *devPrivates; -#ifdef XKB unsigned short xkbClientFlags; unsigned short mapNotifyMask; unsigned short newKeyboardNotifyMask; unsigned short vMajor,vMinor; KeyCode minKC,maxKC; -#endif -#ifdef DEBUG - unsigned char requestLog[MAX_REQUEST_LOG]; - int requestLogIndex; -#endif unsigned long replyBytesRemaining; - void *appgroup; /* Can't remove, ABI */ - struct _FontResolution * (*fontResFunc) ( /* no need for font.h */ - ClientPtr /* pClient */, - int * /* num */); + void *unused_appgroup; + void *unused_fontResFunc; int smart_priority; long smart_start_tick; long smart_stop_tick; @@ -140,17 +129,17 @@ typedef struct _Client { /* * Scheduling interface */ -extern long SmartScheduleTime; -extern long SmartScheduleInterval; -extern long SmartScheduleSlice; -extern long SmartScheduleMaxSlice; -extern Bool SmartScheduleDisable; -extern void SmartScheduleStartTimer(void); -extern void SmartScheduleStopTimer(void); +extern _X_EXPORT long SmartScheduleTime; +extern _X_EXPORT long SmartScheduleInterval; +extern _X_EXPORT long SmartScheduleSlice; +extern _X_EXPORT long SmartScheduleMaxSlice; +extern _X_EXPORT Bool SmartScheduleDisable; +extern _X_EXPORT void SmartScheduleStartTimer(void); +extern _X_EXPORT void SmartScheduleStopTimer(void); #define SMART_MAX_PRIORITY (20) #define SMART_MIN_PRIORITY (-20) -extern Bool SmartScheduleInit(void); +extern _X_EXPORT Bool SmartScheduleInit(void); /* This prototype is used pervasively in Xext, dix */ @@ -166,14 +155,14 @@ typedef struct _WorkQueue { pointer closure; } WorkQueueRec; -extern TimeStamp currentTime; -extern TimeStamp lastDeviceEventTime; +extern _X_EXPORT TimeStamp currentTime; +extern _X_EXPORT TimeStamp lastDeviceEventTime; -extern int CompareTimeStamps( +extern _X_EXPORT int CompareTimeStamps( TimeStamp /*a*/, TimeStamp /*b*/); -extern TimeStamp ClientTimeToServerTime(CARD32 /*c*/); +extern _X_EXPORT TimeStamp ClientTimeToServerTime(CARD32 /*c*/); typedef struct _CallbackRec { CallbackProcPtr proc; @@ -191,14 +180,14 @@ typedef struct _CallbackList { /* proc vectors */ -extern int (* InitialVector[3]) (ClientPtr /*client*/); +extern _X_EXPORT int (* InitialVector[3]) (ClientPtr /*client*/); -extern int (* ProcVector[256]) (ClientPtr /*client*/); +extern _X_EXPORT int (* ProcVector[256]) (ClientPtr /*client*/); -extern int (* SwappedProcVector[256]) (ClientPtr /*client*/); +extern _X_EXPORT int (* SwappedProcVector[256]) (ClientPtr /*client*/); -extern ReplySwapPtr ReplySwapVector[256]; +extern _X_EXPORT ReplySwapPtr ReplySwapVector[256]; -extern int ProcBadRequest(ClientPtr /*client*/); +extern _X_EXPORT int ProcBadRequest(ClientPtr /*client*/); #endif /* DIXSTRUCT_H */ diff --git a/xorg-server/include/do-not-use-config.h.in b/xorg-server/include/do-not-use-config.h.in index 26b50bcaf..b2f19ed6b 100644 --- a/xorg-server/include/do-not-use-config.h.in +++ b/xorg-server/include/do-not-use-config.h.in @@ -265,6 +265,12 @@ /* Define to 1 if you have the `pci_device_enable' function. */ #undef HAVE_PCI_DEVICE_ENABLE +/* Define to 1 if you have the `pci_device_is_boot_vga' function. */ +#undef HAVE_PCI_DEVICE_IS_BOOT_VGA + +/* Define to 1 if you have the `pci_device_vgaarb_init' function. */ +#undef HAVE_PCI_DEVICE_VGAARB_INIT + /* Define to 1 if you have the `pci_system_init_dev_mem' function. */ #undef HAVE_PCI_SYSTEM_INIT_DEV_MEM @@ -307,6 +313,9 @@ /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H +/* Define to 1 if you have the <stropts.h> header file. */ +#undef HAVE_STROPTS_H + /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR @@ -316,6 +325,9 @@ /* Define to 1 if SYSV IPC is available */ #undef HAVE_SYSV_IPC +/* Define to 1 if you have the <sys/agpgart.h> header file. */ +#undef HAVE_SYS_AGPGART_H + /* Define to 1 if you have the <sys/agpio.h> header file. */ #undef HAVE_SYS_AGPIO_H @@ -348,6 +360,9 @@ /* Define to 1 if you have the <sys/vm86.h> header file. */ #undef HAVE_SYS_VM86_H +/* Define to 1 if you have the <sys/vt.h> header file. */ +#undef HAVE_SYS_VT_H + /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H @@ -433,9 +448,6 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME -/* Define to the home page for this package. */ -#undef PACKAGE_URL - /* Define to the version of this package. */ #undef PACKAGE_VERSION @@ -522,6 +534,9 @@ /* Have tslib support */ #undef TSLIB +/* Enable unit tests */ +#undef UNITTESTS + /* Support UNIX socket connections */ #undef UNIXCONN @@ -540,6 +555,18 @@ /* Define to use byteswap macros from <sys/endian.h> */ #undef USE_SYS_ENDIAN_H +/* Vendor man version */ +#undef VENDOR_MAN_VERSION + +/* Vendor name */ +#undef VENDOR_NAME + +/* Vendor name */ +#undef VENDOR_NAME_SHORT + +/* Vendor release */ +#undef VENDOR_RELEASE + /* Version number of package */ #undef VERSION @@ -603,20 +630,26 @@ /* Support Xinerama extension */ #undef XINERAMA -/* Build XKB */ -#undef XKB - /* Path to XKB data */ #undef XKB_BASE_DIRECTORY /* Path to XKB bin dir */ #undef XKB_BIN_DIRECTORY -/* Disable XKB per default */ -#undef XKB_DFLT_DISABLED +/* Default XKB layout */ +#undef XKB_DFLT_LAYOUT + +/* Default XKB model */ +#undef XKB_DFLT_MODEL -/* Build XKB server */ -#undef XKB_IN_SERVER +/* Default XKB options */ +#undef XKB_DFLT_OPTIONS + +/* Default XKB ruleset */ +#undef XKB_DFLT_RULES + +/* Default XKB variant */ +#undef XKB_DFLT_VARIANT /* Path to XKB output dir */ #undef XKM_OUTPUT_DIR @@ -639,6 +672,9 @@ /* Have Quartz */ #undef XQUARTZ +/* Support application updating through sparkle. */ +#undef XQUARTZ_SPARKLE + /* Support Record extension */ #undef XRECORD @@ -694,18 +730,12 @@ /* Define to 1 if unsigned long is 64 bits. */ #undef _XSERVER64 -/* Solaris 8 or later */ -#undef __SOL8__ - /* Vendor web address for support */ #undef __VENDORDWEBSUPPORT__ /* Name of configuration file */ #undef __XCONFIGFILE__ -/* Default XKB rules */ -#undef __XKBDEFRULES__ - /* Name of X server */ #undef __XSERVERNAME__ diff --git a/xorg-server/include/eventconvert.h b/xorg-server/include/eventconvert.h new file mode 100644 index 000000000..277a6c4b8 --- /dev/null +++ b/xorg-server/include/eventconvert.h @@ -0,0 +1,40 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _EVENTCONVERT_H_ +#include <X11/X.h> +#include <X11/extensions/XIproto.h> +#include "input.h" +#include "events.h" + +#define FP1616(integral, frac) ((integral) * (1 << 16) + (frac) * (1 << 16)) + +_X_INTERNAL int EventToCore(InternalEvent *event, xEvent *core); +_X_INTERNAL int EventToXI(InternalEvent *ev, xEvent **xi, int *count); +_X_INTERNAL int EventToXI2(InternalEvent *ev, xEvent **xi); +_X_INTERNAL int GetCoreType(InternalEvent* ev); +_X_INTERNAL int GetXIType(InternalEvent* ev); +_X_INTERNAL int GetXI2Type(InternalEvent* ev); + +#endif /* _EVENTCONVERT_H_ */ diff --git a/xorg-server/include/events.h b/xorg-server/include/events.h new file mode 100644 index 000000000..9f6a94c5b --- /dev/null +++ b/xorg-server/include/events.h @@ -0,0 +1,35 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef EVENTS_H +#define EVENTS_H +typedef struct _DeviceEvent DeviceEvent; +typedef struct _DeviceChangedEvent DeviceChangedEvent; +#if XFreeXDGA +typedef struct _DGAEvent DGAEvent; +#endif +typedef struct _RawDeviceEvent RawDeviceEvent; +typedef union _InternalEvent InternalEvent; + +#endif diff --git a/xorg-server/include/eventstr.h b/xorg-server/include/eventstr.h new file mode 100644 index 000000000..f082db34a --- /dev/null +++ b/xorg-server/include/eventstr.h @@ -0,0 +1,232 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef EVENTSTR_H +#define EVENTSTR_H + +#include <events.h> +/** + * @file events.h + * This file describes the event structures used internally by the X + * server during event generation and event processing. + * + * When are internal events used? + * Events from input devices are stored as internal events in the EQ and + * processed as internal events until late in the processing cycle. Only then + * do they switch to their respective wire events. + */ + +/** + * Event types. Used exclusively internal to the server, not visible on the + * protocol. + * + * Note: Keep KeyPress to Motion aligned with the core events. + * Keep ET_Raw* in the same order as KeyPress - Motion + */ +enum EventType { + ET_KeyPress = 2, + ET_KeyRelease, + ET_ButtonPress, + ET_ButtonRelease, + ET_Motion, + ET_Enter, + ET_Leave, + ET_FocusIn, + ET_FocusOut, + ET_ProximityIn, + ET_ProximityOut, + ET_DeviceChanged, + ET_Hierarchy, +#if XFreeXDGA + ET_DGAEvent, +#endif + ET_RawKeyPress, + ET_RawKeyRelease, + ET_RawButtonPress, + ET_RawButtonRelease, + ET_RawMotion, + ET_Internal = 0xFF /* First byte */ +}; + +#define CHECKEVENT(ev) if (ev && ((InternalEvent*)(ev))->any.header != 0xFF) \ + FatalError("Wrong event type %d.\n", \ + ((InternalEvent*)(ev))->any.header); + +/** + * Used for ALL input device events internal in the server until + * copied into the matching protocol event. + * + * Note: We only use the device id because the DeviceIntPtr may become invalid while + * the event is in the EQ. + */ +struct _DeviceEvent +{ + unsigned char header; /**< Always ET_Internal */ + enum EventType type; /**< One of EventType */ + int length; /**< Length in bytes */ + Time time; /**< Time in ms */ + int deviceid; /**< Device to post this event for */ + int sourceid; /**< The physical source device */ + union { + uint32_t button; /**< Button number */ + uint32_t key; /**< Key code */ + } detail; + uint16_t root_x; /**< Pos relative to root window in integral data */ + float root_x_frac; /**< Pos relative to root window in frac part */ + uint16_t root_y; /**< Pos relative to root window in integral part */ + float root_y_frac; /**< Pos relative to root window in frac part */ + uint8_t buttons[(MAX_BUTTONS + 7)/8]; /**< Button mask */ + struct { + uint8_t mask[(MAX_VALUATORS + 7)/8]; /**< Valuator mask */ + uint8_t mode[(MAX_VALUATORS + 7)/8]; /**< Valuator mode (Abs or Rel)*/ + uint32_t data[MAX_VALUATORS]; /**< Valuator data */ + int32_t data_frac[MAX_VALUATORS]; /**< Fractional part for data */ + } valuators; + struct { + uint32_t base; /**< XKB base modifiers */ + uint32_t latched; /**< XKB latched modifiers */ + uint32_t locked; /**< XKB locked modifiers */ + uint32_t effective;/**< XKB effective modifiers */ + } mods; + struct { + uint8_t base; /**< XKB base group */ + uint8_t latched; /**< XKB latched group */ + uint8_t locked; /**< XKB locked group */ + uint8_t effective;/**< XKB effective group */ + } group; + Window root; /**< Root window of the event */ + int corestate; /**< Core key/button state BEFORE the event */ + int key_repeat; /**< Internally-generated key repeat event */ +}; + + +/* Flags used in DeviceChangedEvent to signal if the slave has changed */ +#define DEVCHANGE_SLAVE_SWITCH 0x2 +/* Flags used in DeviceChangedEvent to signal whether the event was a + * pointer event or a keyboard event */ +#define DEVCHANGE_POINTER_EVENT 0x4 +#define DEVCHANGE_KEYBOARD_EVENT 0x8 +/* device capabilities changed */ +#define DEVCHANGE_DEVICE_CHANGE 0x10 + +/** + * Sent whenever a device's capabilities have changed. + */ +struct _DeviceChangedEvent +{ + unsigned char header; /**< Always ET_Internal */ + enum EventType type; /**< ET_DeviceChanged */ + int length; /**< Length in bytes */ + Time time; /**< Time in ms */ + int deviceid; /**< Device whose capabilities have changed */ + int flags; /**< Mask of ::HAS_NEW_SLAVE, + ::POINTER_EVENT, ::KEYBOARD_EVENT */ + int masterid; /**< MD when event was generated */ + int sourceid; /**< The device that caused the change */ + + struct { + int num_buttons; /**< Number of buttons */ + Atom names[MAX_BUTTONS];/**< Button names */ + } buttons; + + int num_valuators; /**< Number of axes */ + struct { + uint32_t min; /**< Minimum value */ + uint32_t max; /**< Maximum value */ + /* FIXME: frac parts of min/max */ + uint32_t resolution; /**< Resolution counts/m */ + uint8_t mode; /**< Relative or Absolute */ + Atom name; /**< Axis name */ + } valuators[MAX_VALUATORS]; + + struct { + int min_keycode; + int max_keycode; + } keys; +}; + +#if XFreeXDGA +/** + * DGAEvent, used by DGA to intercept and emulate input events. + */ +struct _DGAEvent +{ + unsigned char header; /**< Always ET_Internal */ + enum EventType type; /**< ET_DGAEvent */ + int length; /**< Length in bytes */ + Time time; /**< Time in ms */ + int subtype; /**< KeyPress, KeyRelease, ButtonPress, + ButtonRelease, MotionNotify */ + int detail; /**< Relative x coordinate */ + int dx; /**< Relative x coordinate */ + int dy; /**< Relative y coordinate */ + int screen; /**< Screen number this event applies to */ + uint16_t state; /**< Core modifier/button state */ +}; +#endif + +/** + * Raw event, contains the data as posted by the device. + */ +struct _RawDeviceEvent +{ + unsigned char header; /**< Always ET_Internal */ + enum EventType type; /**< ET_Raw */ + int length; /**< Length in bytes */ + Time time; /**< Time in ms */ + int deviceid; /**< Device to post this event for */ + int sourceid; /**< The physical source device */ + union { + uint32_t button; /**< Button number */ + uint32_t key; /**< Key code */ + } detail; + struct { + uint8_t mask[(MAX_VALUATORS + 7)/8]; /**< Valuator mask */ + int32_t data[MAX_VALUATORS]; /**< Valuator data */ + int32_t data_frac[MAX_VALUATORS]; /**< Fractional part for data */ + int32_t data_raw[MAX_VALUATORS]; /**< Valuator data as posted */ + int32_t data_raw_frac[MAX_VALUATORS];/**< Fractional part for data_raw */ + } valuators; +}; + +/** + * Event type used inside the X server for input event + * processing. + */ +union _InternalEvent { + struct { + unsigned char header; /**< Always ET_Internal */ + enum EventType type; /**< One of ET_* */ + int length; /**< Length in bytes */ + Time time; /**< Time in ms. */ + } any; + DeviceEvent device; + DeviceChangedEvent changed; +#if XFreeXDGA + DGAEvent dga; +#endif + RawDeviceEvent raw; +}; + +#endif diff --git a/xorg-server/include/exevents.h b/xorg-server/include/exevents.h index 971afc2ea..39e1c70fe 100644 --- a/xorg-server/include/exevents.h +++ b/xorg-server/include/exevents.h @@ -31,6 +31,98 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define EXEVENTS_H #include <X11/extensions/XIproto.h> +#include "inputstr.h" + +/*************************************************************** + * Interface available to drivers * + ***************************************************************/ + +extern _X_EXPORT int InitProximityClassDeviceStruct( + DeviceIntPtr /* dev */); + +extern _X_EXPORT void InitValuatorAxisStruct( + DeviceIntPtr /* dev */, + int /* axnum */, + Atom /* label */, + int /* minval */, + int /* maxval */, + int /* resolution */, + int /* min_res */, + int /* max_res */); + +/* Input device properties */ +extern _X_EXPORT void XIDeleteAllDeviceProperties( + DeviceIntPtr /* device */ +); + +extern _X_EXPORT int XIDeleteDeviceProperty( + DeviceIntPtr /* device */, + Atom /* property */, + Bool /* fromClient */ +); + +extern _X_EXPORT int XIChangeDeviceProperty( + DeviceIntPtr /* dev */, + Atom /* property */, + Atom /* type */, + int /* format*/, + int /* mode*/, + unsigned long /* len*/, + pointer /* value*/, + Bool /* sendevent*/ + ); + +extern _X_EXPORT int XIGetDeviceProperty( + DeviceIntPtr /* dev */, + Atom /* property */, + XIPropertyValuePtr* /* value */ +); + +extern _X_EXPORT int XISetDevicePropertyDeletable( + DeviceIntPtr /* dev */, + Atom /* property */, + Bool /* deletable */ +); + +extern _X_EXPORT long XIRegisterPropertyHandler( + DeviceIntPtr dev, + int (*SetProperty) (DeviceIntPtr dev, + Atom property, + XIPropertyValuePtr prop, + BOOL checkonly), + int (*GetProperty) (DeviceIntPtr dev, + Atom property), + int (*DeleteProperty) (DeviceIntPtr dev, + Atom property) +); + +extern _X_EXPORT void XIUnregisterPropertyHandler( + DeviceIntPtr dev, + long id +); + +extern _X_EXPORT Atom XIGetKnownProperty( + char* name +); + +extern _X_EXPORT DeviceIntPtr XIGetDevice(xEvent *ev); + +extern _X_EXPORT int XIPropToInt( + XIPropertyValuePtr val, + int *nelem_return, + int **buf_return +); + +extern _X_EXPORT int XIPropToFloat( + XIPropertyValuePtr val, + int *nelem_return, + float **buf_return +); + +/**************************************************************************** + * End of driver interface * + ****************************************************************************/ + /** * Attached to the devPrivates of each client. Specifies the version number as @@ -41,87 +133,100 @@ typedef struct _XIClientRec { int minor_version; } XIClientRec, *XIClientPtr; -extern void RegisterOtherDevice ( + +typedef struct _GrabParameters { + int grabtype; /* GRABTYPE_CORE, etc. */ + unsigned int ownerEvents; + unsigned int this_device_mode; + unsigned int other_devices_mode; + Window grabWindow; + Window confineTo; + Cursor cursor; + unsigned int modifiers; +} GrabParameters; + + +extern void +RegisterOtherDevice ( DeviceIntPtr /* device */); extern int UpdateDeviceState ( DeviceIntPtr /* device */, - xEventPtr /* xE */, - int /* count */); + DeviceEvent* /* xE */); -extern void ProcessOtherEvent ( - xEventPtr /* FIXME deviceKeyButtonPointer * xE */, - DeviceIntPtr /* other */, - int /* count */); +extern void +ProcessOtherEvent ( + InternalEvent* /* ev */, + DeviceIntPtr /* other */); -extern int InitProximityClassDeviceStruct( - DeviceIntPtr /* dev */); - -extern void InitValuatorAxisStruct( - DeviceIntPtr /* dev */, - int /* axnum */, - int /* minval */, - int /* maxval */, - int /* resolution */, - int /* min_res */, - int /* max_res */); - -extern void DeviceFocusEvent( +extern void +DeviceFocusEvent( DeviceIntPtr /* dev */, int /* type */, int /* mode */, int /* detail */, WindowPtr /* pWin */); -extern int GrabButton( +extern int +CheckGrabValues( + ClientPtr /* client */, + GrabParameters* /* param */); + +extern int +GrabButton( ClientPtr /* client */, DeviceIntPtr /* dev */, - BYTE /* this_device_mode */, - BYTE /* other_devices_mode */, - CARD16 /* modifiers */, DeviceIntPtr /* modifier_device */, - CARD8 /* button */, - Window /* grabWindow */, - BOOL /* ownerEvents */, - Cursor /* rcursor */, - Window /* rconfineTo */, - Mask /* eventMask */); - -extern int GrabKey( + int /* button */, + GrabParameters* /* param */, + GrabType /* grabtype */, + GrabMask* /* eventMask */); + +extern int +GrabKey( ClientPtr /* client */, DeviceIntPtr /* dev */, - BYTE /* this_device_mode */, - BYTE /* other_devices_mode */, - CARD16 /* modifiers */, DeviceIntPtr /* modifier_device */, - CARD8 /* key */, - Window /* grabWindow */, - BOOL /* ownerEvents */, - Mask /* mask */); + int /* key */, + GrabParameters* /* param */, + GrabType /* grabtype */, + GrabMask* /* eventMask */); + +extern int +GrabWindow( + ClientPtr /* client */, + DeviceIntPtr /* dev */, + int /* type */, + GrabParameters* /* param */, + GrabMask* /* eventMask */); -extern int SelectForWindow( +extern int +SelectForWindow( DeviceIntPtr /* dev */, WindowPtr /* pWin */, ClientPtr /* client */, Mask /* mask */, - Mask /* exclusivemasks */, - Mask /* validmasks */); + Mask /* exclusivemasks */); -extern int AddExtensionClient ( +extern int +AddExtensionClient ( WindowPtr /* pWin */, ClientPtr /* client */, Mask /* mask */, int /* mskidx */); -extern void RecalculateDeviceDeliverableEvents( +extern void +RecalculateDeviceDeliverableEvents( WindowPtr /* pWin */); -extern int InputClientGone( +extern int +InputClientGone( WindowPtr /* pWin */, XID /* id */); -extern int SendEvent ( +extern int +SendEvent ( ClientPtr /* client */, DeviceIntPtr /* d */, Window /* dest */, @@ -130,29 +235,15 @@ extern int SendEvent ( Mask /* mask */, int /* count */); -extern int SetButtonMapping ( +extern int +SetButtonMapping ( ClientPtr /* client */, DeviceIntPtr /* dev */, int /* nElts */, BYTE * /* map */); -extern int SetModifierMapping( - ClientPtr /* client */, - DeviceIntPtr /* dev */, - int /* len */, - int /* rlen */, - int /* numKeyPerModifier */, - KeyCode * /* inputMap */, - KeyClassPtr * /* k */); - -extern void SendDeviceMappingNotify( - ClientPtr /* client, */, - CARD8 /* request, */, - KeyCode /* firstKeyCode */, - CARD8 /* count */, - DeviceIntPtr /* dev */); - -extern int ChangeKeyMapping( +extern int +ChangeKeyMapping( ClientPtr /* client */, DeviceIntPtr /* dev */, unsigned /* len */, @@ -162,15 +253,18 @@ extern int ChangeKeyMapping( CARD8 /* keySymsPerKeyCode */, KeySym * /* map */); -extern void DeleteWindowFromAnyExtEvents( +extern void +DeleteWindowFromAnyExtEvents( WindowPtr /* pWin */, Bool /* freeResources */); -extern int MaybeSendDeviceMotionNotifyHint ( +extern int +MaybeSendDeviceMotionNotifyHint ( deviceKeyButtonPointer * /* pEvents */, Mask /* mask */); -extern void CheckDeviceGrabAndHintWindow ( +extern void +CheckDeviceGrabAndHintWindow ( WindowPtr /* pWin */, int /* type */, deviceKeyButtonPointer * /* xE */, @@ -178,89 +272,44 @@ extern void CheckDeviceGrabAndHintWindow ( ClientPtr /* client */, Mask /* deliveryMask */); -extern void MaybeStopDeviceHint( +extern void +MaybeStopDeviceHint( DeviceIntPtr /* dev */, ClientPtr /* client */); -extern int DeviceEventSuppressForWindow( +extern int +DeviceEventSuppressForWindow( WindowPtr /* pWin */, ClientPtr /* client */, Mask /* mask */, int /* maskndx */); -extern void SendEventToAllWindows( +extern void +SendEventToAllWindows( DeviceIntPtr /* dev */, Mask /* mask */, xEvent * /* ev */, int /* count */); -/* Input device properties */ -extern void XIDeleteAllDeviceProperties( - DeviceIntPtr /* device */ -); +extern _X_HIDDEN void XI2EventSwap( + xGenericEvent * /* from */, + xGenericEvent * /* to */); -extern int XIDeleteDeviceProperty( - DeviceIntPtr /* device */, - Atom /* property */, - Bool /* fromClient */ -); - -extern int XIChangeDeviceProperty( - DeviceIntPtr /* dev */, - Atom /* property */, - Atom /* type */, - int /* format*/, - int /* mode*/, - unsigned long /* len*/, - pointer /* value*/, - Bool /* sendevent*/ - ); - -extern int XIGetDeviceProperty( - DeviceIntPtr /* dev */, - Atom /* property */, - XIPropertyValuePtr* /* value */ -); - -extern int XISetDevicePropertyDeletable( - DeviceIntPtr /* dev */, - Atom /* property */, - Bool /* deletable */ -); - -extern long XIRegisterPropertyHandler( - DeviceIntPtr dev, - int (*SetProperty) (DeviceIntPtr dev, - Atom property, - XIPropertyValuePtr prop, - BOOL checkonly), - int (*GetProperty) (DeviceIntPtr dev, - Atom property), - int (*DeleteProperty) (DeviceIntPtr dev, - Atom property) -); - -extern _X_EXPORT void XIUnregisterPropertyHandler( - DeviceIntPtr dev, - long id -); - -extern Atom XIGetKnownProperty( - char* name -); +/* For an event such as MappingNotify which affects client interpretation + * of input events sent by device dev, should we notify the client, or + * would it merely be irrelevant and confusing? */ +extern int +XIShouldNotify(ClientPtr client, DeviceIntPtr dev); -extern DeviceIntPtr XIGetDevice(xEvent *ev); +extern void +XISendDeviceChangedEvent(DeviceIntPtr device, DeviceIntPtr master, + DeviceChangedEvent *dce); -extern _X_EXPORT int XIPropToInt( - XIPropertyValuePtr val, - int *nelem_return, - int **buf_return -); +extern int +XISetEventMask(DeviceIntPtr dev, WindowPtr win, ClientPtr client, + unsigned int len, unsigned char* mask); -extern _X_EXPORT int XIPropToFloat( - XIPropertyValuePtr val, - int *nelem_return, - float **buf_return -); +extern int +XICheckInvalidMaskBits(unsigned char *mask, int len); #endif /* EXEVENTS_H */ diff --git a/xorg-server/include/extension.h b/xorg-server/include/extension.h index 14526e9b5..29a11c300 100644 --- a/xorg-server/include/extension.h +++ b/xorg-server/include/extension.h @@ -50,17 +50,17 @@ SOFTWARE. _XFUNCPROTOBEGIN -extern unsigned short StandardMinorOpcode(ClientPtr /*client*/); +extern _X_EXPORT unsigned short StandardMinorOpcode(ClientPtr /*client*/); -extern unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/); +extern _X_EXPORT unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/); -extern Bool EnableDisableExtension(char *name, Bool enable); +extern _X_EXPORT Bool EnableDisableExtension(char *name, Bool enable); -extern void EnableDisableExtensionError(char *name, Bool enable); +extern _X_EXPORT void EnableDisableExtensionError(char *name, Bool enable); -extern void InitExtensions(int argc, char **argv); +extern _X_EXPORT void InitExtensions(int argc, char **argv); -extern void CloseDownExtensions(void); +extern _X_EXPORT void CloseDownExtensions(void); _XFUNCPROTOEND diff --git a/xorg-server/include/extinit.h b/xorg-server/include/extinit.h index d9964805e..c3aa7b681 100644 --- a/xorg-server/include/extinit.h +++ b/xorg-server/include/extinit.h @@ -32,17 +32,12 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "extnsionst.h" -void +extern void XInputExtensionInit( void ); -Bool -DeviceIsPointerType( - DeviceIntPtr dev - ); - -void +extern _X_EXPORT void AssignTypeAndName ( DeviceIntPtr /* dev */, Atom /* type */, diff --git a/xorg-server/include/extnsionst.h b/xorg-server/include/extnsionst.h index 59acd0ef4..19c76fcc4 100644 --- a/xorg-server/include/extnsionst.h +++ b/xorg-server/include/extnsionst.h @@ -80,9 +80,9 @@ typedef struct _ExtensionEntry { */ typedef void (*EventSwapPtr) (xEvent *, xEvent *); -extern EventSwapPtr EventSwapVector[128]; +extern _X_EXPORT EventSwapPtr EventSwapVector[128]; -extern void NotImplemented ( /* FIXME: this may move to another file... */ +extern _X_EXPORT void NotImplemented ( /* FIXME: this may move to another file... */ xEvent *, xEvent *); @@ -91,7 +91,7 @@ extern void NotImplemented ( /* FIXME: this may move to another file... */ #define GetGCValue(pGC, GCElement) (pGC->GCElement) -extern ExtensionEntry *AddExtension( +extern _X_EXPORT ExtensionEntry *AddExtension( char* /*name*/, int /*NumEvents*/, int /*NumErrors*/, @@ -101,12 +101,12 @@ extern ExtensionEntry *AddExtension( unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/) ); -extern Bool AddExtensionAlias( +extern _X_EXPORT Bool AddExtensionAlias( char* /*alias*/, ExtensionEntry * /*extension*/); -extern ExtensionEntry *CheckExtension(const char *extname); -extern ExtensionEntry *GetExtensionEntry(int major); +extern _X_EXPORT ExtensionEntry *CheckExtension(const char *extname); +extern _X_EXPORT ExtensionEntry *GetExtensionEntry(int major); #endif /* EXTENSIONSTRUCT_H */ diff --git a/xorg-server/include/gc.h b/xorg-server/include/gc.h index bf4c268a8..e75cc5e83 100644 --- a/xorg-server/include/gc.h +++ b/xorg-server/include/gc.h @@ -84,16 +84,16 @@ typedef struct _GCInterest *GCInterestPtr; typedef struct _GC *GCPtr; typedef struct _GCOps *GCOpsPtr; -extern void ValidateGC( +extern _X_EXPORT void ValidateGC( DrawablePtr /*pDraw*/, GCPtr /*pGC*/); -extern int ChangeGC( +extern _X_EXPORT int ChangeGC( GCPtr/*pGC*/, BITS32 /*mask*/, XID* /*pval*/); -extern int DoChangeGC( +extern _X_EXPORT int DoChangeGC( GCPtr/*pGC*/, BITS32 /*mask*/, XID* /*pval*/, @@ -104,14 +104,14 @@ typedef union { pointer ptr; } ChangeGCVal, *ChangeGCValPtr; -extern int dixChangeGC( +extern _X_EXPORT int dixChangeGC( ClientPtr /*client*/, GCPtr /*pGC*/, BITS32 /*mask*/, CARD32 * /*pval*/, ChangeGCValPtr /*pCGCV*/); -extern GCPtr CreateGC( +extern _X_EXPORT GCPtr CreateGC( DrawablePtr /*pDrawable*/, BITS32 /*mask*/, XID* /*pval*/, @@ -119,43 +119,43 @@ extern GCPtr CreateGC( XID /*gcid*/, ClientPtr /*client*/); -extern int CopyGC( +extern _X_EXPORT int CopyGC( GCPtr/*pgcSrc*/, GCPtr/*pgcDst*/, BITS32 /*mask*/); -extern int FreeGC( +extern _X_EXPORT int FreeGC( pointer /*pGC*/, XID /*gid*/); -extern GCPtr CreateScratchGC( +extern _X_EXPORT GCPtr CreateScratchGC( ScreenPtr /*pScreen*/, unsigned /*depth*/); -extern void FreeGCperDepth( +extern _X_EXPORT void FreeGCperDepth( int /*screenNum*/); -extern Bool CreateGCperDepth( +extern _X_EXPORT Bool CreateGCperDepth( int /*screenNum*/); -extern Bool CreateDefaultStipple( +extern _X_EXPORT Bool CreateDefaultStipple( int /*screenNum*/); -extern void FreeDefaultStipple( +extern _X_EXPORT void FreeDefaultStipple( int /*screenNum*/); -extern int SetDashes( +extern _X_EXPORT int SetDashes( GCPtr /*pGC*/, unsigned /*offset*/, unsigned /*ndash*/, unsigned char* /*pdash*/); -extern int VerifyRectOrder( +extern _X_EXPORT int VerifyRectOrder( int /*nrects*/, xRectangle* /*prects*/, int /*ordering*/); -extern int SetClipRects( +extern _X_EXPORT int SetClipRects( GCPtr /*pGC*/, int /*xOrigin*/, int /*yOrigin*/, @@ -163,11 +163,11 @@ extern int SetClipRects( xRectangle* /*prects*/, int /*ordering*/); -extern GCPtr GetScratchGC( +extern _X_EXPORT GCPtr GetScratchGC( unsigned /*depth*/, ScreenPtr /*pScreen*/); -extern void FreeScratchGC( +extern _X_EXPORT void FreeScratchGC( GCPtr /*pGC*/); #endif /* GC_H */ diff --git a/xorg-server/include/globals.h b/xorg-server/include/globals.h index 74b09e71d..6aadb8bdf 100644 --- a/xorg-server/include/globals.h +++ b/xorg-server/include/globals.h @@ -6,133 +6,127 @@ /* Global X server variables that are visible to mi, dix, os, and ddx */ -extern CARD32 defaultScreenSaverTime; -extern CARD32 defaultScreenSaverInterval; -extern CARD32 ScreenSaverTime; -extern CARD32 ScreenSaverInterval; +extern _X_EXPORT CARD32 defaultScreenSaverTime; +extern _X_EXPORT CARD32 defaultScreenSaverInterval; +extern _X_EXPORT CARD32 ScreenSaverTime; +extern _X_EXPORT CARD32 ScreenSaverInterval; #ifdef SCREENSAVER -extern Bool screenSaverSuspended; +extern _X_EXPORT Bool screenSaverSuspended; #endif -extern char *defaultFontPath; -extern int monitorResolution; -extern int defaultColorVisualClass; +extern _X_EXPORT char *defaultFontPath; +extern _X_EXPORT int monitorResolution; +extern _X_EXPORT int defaultColorVisualClass; -extern WindowPtr WindowTable[MAXSCREENS]; -extern int GrabInProgress; -extern Bool noTestExtensions; +extern _X_EXPORT WindowPtr WindowTable[MAXSCREENS]; +extern _X_EXPORT int GrabInProgress; +extern _X_EXPORT Bool noTestExtensions; -extern DDXPointRec dixScreenOrigins[MAXSCREENS]; +extern _X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS]; -extern char *ConnectionInfo; +extern _X_EXPORT char *ConnectionInfo; #ifdef DPMSExtension -extern CARD32 defaultDPMSStandbyTime; -extern CARD32 defaultDPMSSuspendTime; -extern CARD32 defaultDPMSOffTime; -extern CARD32 DPMSStandbyTime; -extern CARD32 DPMSSuspendTime; -extern CARD32 DPMSOffTime; -extern CARD16 DPMSPowerLevel; -extern Bool defaultDPMSEnabled; -extern Bool DPMSEnabled; -extern Bool DPMSEnabledSwitch; -extern Bool DPMSDisabledSwitch; -extern Bool DPMSCapableFlag; +extern _X_EXPORT CARD32 DPMSStandbyTime; +extern _X_EXPORT CARD32 DPMSSuspendTime; +extern _X_EXPORT CARD32 DPMSOffTime; +extern _X_EXPORT CARD16 DPMSPowerLevel; +extern _X_EXPORT Bool DPMSEnabled; +extern _X_EXPORT Bool DPMSDisabledSwitch; +extern _X_EXPORT Bool DPMSCapableFlag; #endif #ifdef PANORAMIX -extern Bool PanoramiXExtensionDisabledHack; +extern _X_EXPORT Bool PanoramiXExtensionDisabledHack; #endif -extern Bool noCompositeExtension; +extern _X_EXPORT Bool noCompositeExtension; #ifdef DAMAGE -extern Bool noDamageExtension; +extern _X_EXPORT Bool noDamageExtension; #endif #ifdef DBE -extern Bool noDbeExtension; +extern _X_EXPORT Bool noDbeExtension; #endif #ifdef DPMSExtension -extern Bool noDPMSExtension; +extern _X_EXPORT Bool noDPMSExtension; #endif #ifdef GLXEXT -extern Bool noGlxExtension; +extern _X_EXPORT Bool noGlxExtension; #endif #ifdef SCREENSAVER -extern Bool noScreenSaverExtension; +extern _X_EXPORT Bool noScreenSaverExtension; #endif #ifdef MITSHM -extern Bool noMITShmExtension; +extern _X_EXPORT Bool noMITShmExtension; #endif #ifdef MULTIBUFFER -extern Bool noMultibufferExtension; +extern _X_EXPORT Bool noMultibufferExtension; #endif #ifdef RANDR -extern Bool noRRExtension; +extern _X_EXPORT Bool noRRExtension; #endif #ifdef RENDER -extern Bool noRenderExtension; +extern _X_EXPORT Bool noRenderExtension; #endif #ifdef XCSECURITY -extern Bool noSecurityExtension; +extern _X_EXPORT Bool noSecurityExtension; #endif #ifdef RES -extern Bool noResExtension; +extern _X_EXPORT Bool noResExtension; #endif #ifdef XF86BIGFONT -extern Bool noXFree86BigfontExtension; +extern _X_EXPORT Bool noXFree86BigfontExtension; #endif #ifdef XFreeXDGA -extern Bool noXFree86DGAExtension; +extern _X_EXPORT Bool noXFree86DGAExtension; #endif #ifdef XF86DRI -extern Bool noXFree86DRIExtension; +extern _X_EXPORT Bool noXFree86DRIExtension; #endif #ifdef XF86VIDMODE -extern Bool noXFree86VidModeExtension; +extern _X_EXPORT Bool noXFree86VidModeExtension; #endif #ifdef XFIXES -extern Bool noXFixesExtension; -#endif - -#ifdef XKB -/* |noXkbExtension| is defined in xc/programs/Xserver/xkb/xkbInit.c */ -extern Bool noXkbExtension; +extern _X_EXPORT Bool noXFixesExtension; #endif #ifdef PANORAMIX -extern Bool noPanoramiXExtension; +extern _X_EXPORT Bool noPanoramiXExtension; #endif #ifdef XSELINUX -extern Bool noSELinuxExtension; +extern _X_EXPORT Bool noSELinuxExtension; #define SELINUX_MODE_DEFAULT 0 #define SELINUX_MODE_DISABLED 1 #define SELINUX_MODE_PERMISSIVE 2 #define SELINUX_MODE_ENFORCING 3 -extern int selinuxEnforcingState; +extern _X_EXPORT int selinuxEnforcingState; #endif #ifdef XV -extern Bool noXvExtension; +extern _X_EXPORT Bool noXvExtension; +#endif + +#ifdef DRI2 +extern _X_EXPORT Bool noDRI2Extension; #endif #endif /* !_XSERV_GLOBAL_H_ */ diff --git a/xorg-server/include/hotplug.h b/xorg-server/include/hotplug.h index b4f1bb60d..d074df31d 100644 --- a/xorg-server/include/hotplug.h +++ b/xorg-server/include/hotplug.h @@ -26,7 +26,7 @@ #ifndef HOTPLUG_H #define HOTPLUG_H -void config_init(void); -void config_fini(void); +extern _X_EXPORT void config_init(void); +extern _X_EXPORT void config_fini(void); #endif /* HOTPLUG_H */ diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h index 2ab815b80..7ab5e9d65 100644 --- a/xorg-server/include/input.h +++ b/xorg-server/include/input.h @@ -53,6 +53,8 @@ SOFTWARE. #include <X11/Xmd.h> #include <X11/Xproto.h> #include "window.h" /* for WindowPtr */ +#include "xkbrules.h" +#include "events.h" #define DEVICE_INIT 0 #define DEVICE_ON 1 @@ -74,6 +76,7 @@ SOFTWARE. /* Maximum number of valuators, divided by six, rounded up, to get number * of events. */ #define MAX_VALUATOR_EVENTS 6 +#define MAX_BUTTONS 256 /* completely arbitrarily chosen */ #define NO_AXIS_LIMITS -1 @@ -94,34 +97,21 @@ SOFTWARE. #define RevertToFollowKeyboard 3 #endif -/* Used for enter/leave and focus in/out semaphores */ -#define SEMAPHORE_FIELD_SET(win, dev, field) \ - (win)->field[(dev)->id/8] |= (1 << ((dev)->id % 8)); \ - -#define SEMAPHORE_FIELD_UNSET(win, dev, field) \ - (win)->field[(dev)->id/8] &= ~(1 << ((dev)->id % 8)); - -#define FOCUS_SEMAPHORE_SET(win, dev) \ - SEMAPHORE_FIELD_SET(win, dev, focusinout); - -#define FOCUS_SEMAPHORE_UNSET(win, dev) \ - SEMAPHORE_FIELD_UNSET(win, dev, focusinout); - -#define FOCUS_SEMAPHORE_ISSET(win, dev) \ - (win)->focusinout[(dev)->id/8] & (1 << ((dev)->id % 8)) - typedef unsigned long Leds; typedef struct _OtherClients *OtherClientsPtr; typedef struct _InputClients *InputClientsPtr; typedef struct _DeviceIntRec *DeviceIntPtr; typedef struct _ClassesRec *ClassesPtr; +typedef union _GrabMask GrabMask; typedef struct _EventList { xEvent* event; int evlen; /* length of allocated memory for event in bytes. This is not the actual length of the event. The event's actual length is 32 for standard events or 32 + - ((xGenericEvent*)event)->length * 4 for GenericEvents */ + ((xGenericEvent*)event)->length * 4 for GenericEvents. + For events in the EQ, the length is + ((InternalEvent*)event)->u.any.length */ } EventList, *EventListPtr; /* The DIX stores incoming input events in this list */ @@ -133,9 +123,8 @@ typedef int (*DeviceProc)( int /*what*/); typedef void (*ProcessInputProc)( - xEventPtr /*events*/, - DeviceIntPtr /*device*/, - int /*count*/); + InternalEvent * /*event*/, + DeviceIntPtr /*device*/); typedef Bool (*DeviceHandleProc)( DeviceIntPtr /*device*/, @@ -212,8 +201,8 @@ typedef struct { unsigned char id; } LedCtrl; -extern KeybdCtrl defaultKeyboardControl; -extern PtrCtrl defaultPointerControl; +extern _X_EXPORT KeybdCtrl defaultKeyboardControl; +extern _X_EXPORT PtrCtrl defaultPointerControl; typedef struct _InputOption { char *key; @@ -221,21 +210,34 @@ typedef struct _InputOption { struct _InputOption *next; } InputOption; +/* Key has been run through all input processing and events sent to clients. */ +#define KEY_PROCESSED 1 +/* Key has not been fully processed, no events have been sent. */ +#define KEY_POSTED 2 + +extern void set_key_down(DeviceIntPtr pDev, int key_code, int type); +extern void set_key_up(DeviceIntPtr pDev, int key_code, int type); +extern int key_is_down(DeviceIntPtr pDev, int key_code, int type); + extern void InitCoreDevices(void); +extern void InitXTestDevices(void); -extern DeviceIntPtr AddInputDevice( +extern _X_EXPORT DeviceIntPtr AddInputDevice( ClientPtr /*client*/, DeviceProc /*deviceProc*/, Bool /*autoStart*/); -extern Bool EnableDevice( - DeviceIntPtr /*device*/); +extern _X_EXPORT Bool EnableDevice( + DeviceIntPtr /*device*/, + BOOL /* sendevent */); -extern Bool ActivateDevice( - DeviceIntPtr /*device*/); +extern _X_EXPORT Bool ActivateDevice( + DeviceIntPtr /*device*/, + BOOL /* sendevent */); -extern Bool DisableDevice( - DeviceIntPtr /*device*/); +extern _X_EXPORT Bool DisableDevice( + DeviceIntPtr /*device*/, + BOOL /* sendevent */); extern int InitAndStartDevices(void); @@ -243,10 +245,11 @@ extern void CloseDownDevices(void); extern void UndisplayDevices(void); -extern int RemoveDevice( - DeviceIntPtr /*dev*/); +extern _X_EXPORT int RemoveDevice( + DeviceIntPtr /*dev*/, + BOOL /* sendevent */); -extern int NumMotionEvents(void); +extern _X_EXPORT int NumMotionEvents(void); extern void RegisterPointerDevice( DeviceIntPtr /*device*/); @@ -254,44 +257,41 @@ extern void RegisterPointerDevice( extern void RegisterKeyboardDevice( DeviceIntPtr /*device*/); -extern int dixLookupDevice( +extern _X_EXPORT int dixLookupDevice( DeviceIntPtr * /* dev */, int /* id */, ClientPtr /* client */, Mask /* access_mode */); -extern void QueryMinMaxKeyCodes( +extern _X_EXPORT void QueryMinMaxKeyCodes( KeyCode* /*minCode*/, KeyCode* /*maxCode*/); -extern Bool SetKeySymsMap( +extern _X_EXPORT Bool SetKeySymsMap( KeySymsPtr /*dst*/, KeySymsPtr /*src*/); -extern Bool InitKeyClassDeviceStruct( - DeviceIntPtr /*device*/, - KeySymsPtr /*pKeySyms*/, - CARD8 /*pModifiers*/[]); - -extern Bool InitButtonClassDeviceStruct( +extern _X_EXPORT Bool InitButtonClassDeviceStruct( DeviceIntPtr /*device*/, int /*numButtons*/, + Atom* /* labels */, CARD8* /*map*/); -extern Bool InitValuatorClassDeviceStruct( +extern _X_EXPORT Bool InitValuatorClassDeviceStruct( DeviceIntPtr /*device*/, int /*numAxes*/, + Atom* /* labels */, int /*numMotionEvents*/, int /*mode*/); -extern Bool InitPointerAccelerationScheme( +extern _X_EXPORT Bool InitPointerAccelerationScheme( DeviceIntPtr /*dev*/, int /*scheme*/); -extern Bool InitAbsoluteClassDeviceStruct( +extern _X_EXPORT Bool InitAbsoluteClassDeviceStruct( DeviceIntPtr /*device*/); -extern Bool InitFocusClassDeviceStruct( +extern _X_EXPORT Bool InitFocusClassDeviceStruct( DeviceIntPtr /*device*/); typedef void (*BellProcPtr)( @@ -304,16 +304,11 @@ typedef void (*KbdCtrlProcPtr)( DeviceIntPtr /*device*/, KeybdCtrl * /*ctrl*/); -extern Bool InitKbdFeedbackClassDeviceStruct( - DeviceIntPtr /*device*/, - BellProcPtr /*bellProc*/, - KbdCtrlProcPtr /*controlProc*/); - typedef void (*PtrCtrlProcPtr)( DeviceIntPtr /*device*/, PtrCtrl * /*ctrl*/); -extern Bool InitPtrFeedbackClassDeviceStruct( +extern _X_EXPORT Bool InitPtrFeedbackClassDeviceStruct( DeviceIntPtr /*device*/, PtrCtrlProcPtr /*controlProc*/); @@ -321,7 +316,7 @@ typedef void (*StringCtrlProcPtr)( DeviceIntPtr /*device*/, StringCtrl * /*ctrl*/); -extern Bool InitStringFeedbackClassDeviceStruct( +extern _X_EXPORT Bool InitStringFeedbackClassDeviceStruct( DeviceIntPtr /*device*/, StringCtrlProcPtr /*controlProc*/, int /*max_symbols*/, @@ -332,7 +327,7 @@ typedef void (*BellCtrlProcPtr)( DeviceIntPtr /*device*/, BellCtrl * /*ctrl*/); -extern Bool InitBellFeedbackClassDeviceStruct( +extern _X_EXPORT Bool InitBellFeedbackClassDeviceStruct( DeviceIntPtr /*device*/, BellProcPtr /*bellProc*/, BellCtrlProcPtr /*controlProc*/); @@ -341,7 +336,7 @@ typedef void (*LedCtrlProcPtr)( DeviceIntPtr /*device*/, LedCtrl * /*ctrl*/); -extern Bool InitLedFeedbackClassDeviceStruct( +extern _X_EXPORT Bool InitLedFeedbackClassDeviceStruct( DeviceIntPtr /*device*/, LedCtrlProcPtr /*controlProc*/); @@ -350,30 +345,30 @@ typedef void (*IntegerCtrlProcPtr)( IntegerCtrl * /*ctrl*/); -extern Bool InitIntegerFeedbackClassDeviceStruct( +extern _X_EXPORT Bool InitIntegerFeedbackClassDeviceStruct( DeviceIntPtr /*device*/, IntegerCtrlProcPtr /*controlProc*/); -extern Bool InitPointerDeviceStruct( +extern _X_EXPORT Bool InitPointerDeviceStruct( DevicePtr /*device*/, CARD8* /*map*/, int /*numButtons*/, + Atom* /* btn_labels */, PtrCtrlProcPtr /*controlProc*/, int /*numMotionEvents*/, - int /*numAxes*/); + int /*numAxes*/, + Atom* /* axes_labels */); -extern Bool InitKeyboardDeviceStruct( - DevicePtr /*device*/, - KeySymsPtr /*pKeySyms*/, - CARD8 /*pModifiers*/[], +extern _X_EXPORT Bool InitKeyboardDeviceStruct( + DeviceIntPtr /*device*/, + XkbRMLVOSet * /*rmlvo*/, BellProcPtr /*bellProc*/, KbdCtrlProcPtr /*controlProc*/); -extern void SendMappingNotify( +extern int ApplyPointerMapping( DeviceIntPtr /* pDev */, - unsigned int /*request*/, - unsigned int /*firstKeyCode*/, - unsigned int /*count*/, + CARD8 * /* map */, + int /* len */, ClientPtr /* client */); extern Bool BadDeviceMap( @@ -383,13 +378,6 @@ extern Bool BadDeviceMap( unsigned /*high*/, XID* /*errval*/); -extern Bool AllModifierKeysAreUp( - DeviceIntPtr /*device*/, - CARD8* /*map1*/, - int /*per1*/, - CARD8* /*map2*/, - int /*per2*/); - extern void NoteLedState( DeviceIntPtr /*keybd*/, int /*led*/, @@ -400,49 +388,36 @@ extern void MaybeStopHint( ClientPtr /*client*/); extern void ProcessPointerEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*mouse*/, - int /*count*/); + InternalEvent* /* ev */, + DeviceIntPtr /*mouse*/); extern void ProcessKeyboardEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*keybd*/, - int /*count*/); - -#ifdef XKB -extern void CoreProcessPointerEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*mouse*/, - int /*count*/) _X_DEPRECATED; - -extern _X_DEPRECATED void CoreProcessKeyboardEvent( - xEventPtr /*xE*/, - DeviceIntPtr /*keybd*/, - int /*count*/) _X_DEPRECATED; -#endif + InternalEvent* /*ev*/, + DeviceIntPtr /*keybd*/); extern Bool LegalModifier( unsigned int /*key*/, DeviceIntPtr /*pDev*/); -extern void ProcessInputEvents(void); +extern _X_EXPORT void ProcessInputEvents(void); -extern void InitInput( +extern _X_EXPORT void InitInput( int /*argc*/, char ** /*argv*/); -extern int GetMaximumEventsNum(void); +extern _X_EXPORT int GetMaximumEventsNum(void); -extern int GetEventList(EventListPtr* list); -extern EventListPtr InitEventList(int num_events); -extern void SetMinimumEventSize(EventListPtr list, +extern _X_EXPORT int GetEventList(EventListPtr* list); +extern _X_EXPORT EventListPtr InitEventList(int num_events); +extern _X_EXPORT void SetMinimumEventSize(EventListPtr list, int num_events, int min_size); -extern void FreeEventList(EventListPtr list, int num_events); +extern _X_EXPORT void FreeEventList(EventListPtr list, int num_events); -extern void CreateClassesChangedEvent(EventListPtr event, +extern void CreateClassesChangedEvent(EventListPtr event, DeviceIntPtr master, - DeviceIntPtr slave); + DeviceIntPtr slave, + int type); extern int GetPointerEvents( EventListPtr events, DeviceIntPtr pDev, @@ -483,13 +458,13 @@ extern void PostSyntheticMotion( int screen, unsigned long time); -extern int GetMotionHistorySize( +extern _X_EXPORT int GetMotionHistorySize( void); -extern void AllocateMotionHistory( +extern _X_EXPORT void AllocateMotionHistory( DeviceIntPtr pDev); -extern int GetMotionHistory( +extern _X_EXPORT int GetMotionHistory( DeviceIntPtr pDev, xTimecoord **buff, unsigned long start, @@ -501,25 +476,57 @@ extern int AttachDevice(ClientPtr client, DeviceIntPtr slave, DeviceIntPtr master); -extern DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd); +extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd); +extern DeviceIntPtr GetMaster(DeviceIntPtr dev, int type); -extern int AllocMasterDevice(ClientPtr client, +extern int AllocDevicePair(ClientPtr client, char* name, DeviceIntPtr* ptr, - DeviceIntPtr* keybd); + DeviceIntPtr* keybd, + DeviceProc ptr_proc, + DeviceProc keybd_proc, + Bool master); extern void DeepCopyDeviceClasses(DeviceIntPtr from, - DeviceIntPtr to); + DeviceIntPtr to, + DeviceChangedEvent *dce); + +/* Helper functions. */ +extern int generate_modkeymap(ClientPtr client, DeviceIntPtr dev, + KeyCode **modkeymap, int *max_keys_per_mod); +extern int change_modmap(ClientPtr client, DeviceIntPtr dev, KeyCode *map, + int max_keys_per_mod); +extern int AllocXTestDevice(ClientPtr client, + char* name, + DeviceIntPtr* ptr, + DeviceIntPtr* keybd, + DeviceIntPtr master_ptr, + DeviceIntPtr master_keybd); +extern BOOL IsXTestDevice(DeviceIntPtr dev, DeviceIntPtr master); +extern DeviceIntPtr GetXTestDevice(DeviceIntPtr master); + +/* misc event helpers */ +extern Mask GetEventFilter(DeviceIntPtr dev, xEvent *event); +extern Mask GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev); +void FixUpEventFromWindow(DeviceIntPtr pDev, + xEvent *xE, + WindowPtr pWin, + Window child, + Bool calcChild); /* Implemented by the DDX. */ -extern int NewInputDeviceRequest( +extern _X_EXPORT int NewInputDeviceRequest( InputOption *options, DeviceIntPtr *dev); -extern void DeleteInputDeviceRequest( +extern _X_EXPORT void DeleteInputDeviceRequest( DeviceIntPtr dev); -extern void DDXRingBell( +extern _X_EXPORT void DDXRingBell( int volume, int pitch, int duration); +/* Set to TRUE by default - os/utils.c sets it to FALSE on user request, + xfixes/cursor.c uses it to determine if the cursor is enabled */ +extern Bool EnableCursor; + #endif /* INPUT_H */ diff --git a/xorg-server/include/inputstr.h b/xorg-server/include/inputstr.h index a6f823cd5..29ad5a814 100644 --- a/xorg-server/include/inputstr.h +++ b/xorg-server/include/inputstr.h @@ -57,33 +57,86 @@ SOFTWARE. #include "privates.h" #define BitIsOn(ptr, bit) (((BYTE *) (ptr))[(bit)>>3] & (1 << ((bit) & 7))) +#define SetBit(ptr, bit) (((BYTE *) (ptr))[(bit)>>3] |= (1 << ((bit) & 7))) +#define ClearBit(ptr, bit) (((BYTE *)(ptr))[(bit)>>3] &= ~(1 << ((bit) & 7))) #define SameClient(obj,client) \ (CLIENT_BITS((obj)->resource) == (client)->clientAsMask) -#define EMASKSIZE MAXDEVICES + 1 +#define EMASKSIZE MAXDEVICES + 2 -extern DevPrivateKey CoreDevicePrivateKey; - -/* Kludge: OtherClients and InputClients must be compatible, see code */ +/* This is the last XI2 event supported by the server. If you add + * events to the protocol, the server will not support these events until + * this number here is bumped. + */ +#define XI2LASTEVENT 17 /* XI_RawMotion */ +#define XI2MASKSIZE ((XI2LASTEVENT + 7)/8) /* no of bits for masks */ +/** + * This struct stores the core event mask for each client except the client + * that created the window. + * + * Each window that has events selected from other clients has at least one of + * these masks. If multiple clients selected for events on the same window, + * these masks are in a linked list. + * + * The event mask for the client that created the window is stored in + * win->eventMask instead. + * + * The resource id is simply a fake client ID to associate this mask with a + * client. + * + * Kludge: OtherClients and InputClients must be compatible, see code. + */ typedef struct _OtherClients { - OtherClientsPtr next; - XID resource; /* id for putting into resource manager */ - Mask mask; + OtherClientsPtr next; /**< Pointer to the next mask */ + XID resource; /**< id for putting into resource manager */ + Mask mask; /**< Core event mask */ } OtherClients; +/** + * This struct stores the XI event mask for each client. + * + * Each window that has events selected has at least one of these masks. If + * multiple client selected for events on the same window, these masks are in + * a linked list. + */ typedef struct _InputClients { - InputClientsPtr next; - XID resource; /* id for putting into resource manager */ - Mask mask[EMASKSIZE]; + InputClientsPtr next; /**< Pointer to the next mask */ + XID resource; /**< id for putting into resource manager */ + Mask mask[EMASKSIZE]; /**< Actual XI event mask, deviceid is index */ + /** XI2 event masks. One per device, each bit is a mask of (1 << type) */ + unsigned char xi2mask[EMASKSIZE][XI2MASKSIZE]; } InputClients; +/** + * Combined XI event masks from all devices. + * + * This is the XI equivalent of the deliverableEvents, eventMask and + * dontPropagate mask of the WindowRec (or WindowOptRec). + * + * A window that has an XI client selecting for events has exactly one + * OtherInputMasks struct and exactly one InputClients struct hanging off + * inputClients. Each further client appends to the inputClients list. + * Each Mask field is per-device, with the device id as the index. + * Exception: for non-device events (Presence events), the MAXDEVICES + * deviceid is used. + */ typedef struct _OtherInputMasks { + /** + * Bitwise OR of all masks by all clients and the window's parent's masks. + */ Mask deliverableEvents[EMASKSIZE]; + /** + * Bitwise OR of all masks by all clients on this window. + */ Mask inputEvents[EMASKSIZE]; + /** The do-not-propagate masks for each device. */ Mask dontPropagateMask[EMASKSIZE]; + /** The clients that selected for events */ InputClientsPtr inputClients; + /* XI2 event masks. One per device, each bit is a mask of (1 << type) */ + unsigned char xi2mask[EMASKSIZE][XI2MASKSIZE]; } OtherInputMasks; /* @@ -98,10 +151,22 @@ typedef struct _OtherInputMasks { 3 buttons. */ typedef struct _DetailRec { /* Grab details may be bit masks */ - unsigned short exact; + unsigned int exact; Mask *pMask; } DetailRec; +typedef enum { + GRABTYPE_CORE, + GRABTYPE_XI, + GRABTYPE_XI2 +} GrabType; + +union _GrabMask { + Mask core; + Mask xi; + char xi2mask[EMASKSIZE][XI2MASKSIZE]; +}; + /** * Central struct for device grabs. * The same struct is used for both core grabs and device grabs, with @@ -123,8 +188,7 @@ typedef struct _GrabRec { unsigned ownerEvents:1; unsigned keyboardMode:1; unsigned pointerMode:1; - unsigned coreGrab:1; /* grab is on core device */ - unsigned coreMods:1; /* modifiers are on core keyboard */ + GrabType grabtype; CARD8 type; /* event type */ DetailRec modifiersDetail; DeviceIntPtr modifierDevice; @@ -133,24 +197,16 @@ typedef struct _GrabRec { CursorPtr cursor; /* always NULL for keyboards */ Mask eventMask; Mask deviceMask; - GenericMaskPtr genericMasks; + /* XI2 event masks. One per device, each bit is a mask of (1 << type) */ + unsigned char xi2mask[EMASKSIZE][XI2MASKSIZE]; } GrabRec; typedef struct _KeyClassRec { + int sourceid; CARD8 down[DOWN_LENGTH]; CARD8 postdown[DOWN_LENGTH]; - KeyCode *modifierKeyMap; - KeySymsRec curKeySyms; - int modifierKeyCount[8]; - CARD8 modifierMap[MAP_LENGTH]; - CARD8 maxKeysPerModifier; - unsigned short state; - unsigned short prev_state; -#ifdef XKB + int modifierKeyCount[8]; struct _XkbSrvInfo *xkbInfo; -#else - void *pad0; -#endif } KeyClassRec, *KeyClassPtr; typedef struct _AxisInfo { @@ -159,6 +215,7 @@ typedef struct _AxisInfo { int max_resolution; int min_value; int max_value; + Atom label; } AxisInfo, *AxisInfoPtr; typedef struct _ValuatorAccelerationRec { @@ -169,6 +226,7 @@ typedef struct _ValuatorAccelerationRec { } ValuatorAccelerationRec, *ValuatorAccelerationPtr; typedef struct _ValuatorClassRec { + int sourceid; int numMotionEvents; int first_motion; int last_motion; @@ -178,12 +236,13 @@ typedef struct _ValuatorClassRec { AxisInfoPtr axes; unsigned short numAxes; - int *axisVal; /* always absolute, but device-coord system */ + double *axisVal; /* always absolute, but device-coord system */ CARD8 mode; ValuatorAccelerationRec accelScheme; } ValuatorClassRec, *ValuatorClassPtr; typedef struct _ButtonClassRec { + int sourceid; CARD8 numButtons; CARD8 buttonsDown; /* number of buttons currently down This counts logical buttons, not @@ -193,15 +252,14 @@ typedef struct _ButtonClassRec { unsigned short state; Mask motionMask; CARD8 down[DOWN_LENGTH]; + CARD8 postdown[DOWN_LENGTH]; CARD8 map[MAP_LENGTH]; -#ifdef XKB union _XkbAction *xkb_acts; -#else - void *pad0; -#endif + Atom labels[MAX_BUTTONS]; } ButtonClassRec, *ButtonClassPtr; typedef struct _FocusClassRec { + int sourceid; WindowPtr win; /* May be set to a int constant (e.g. PointerRootWin)! */ int revert; TimeStamp time; @@ -211,10 +269,12 @@ typedef struct _FocusClassRec { } FocusClassRec, *FocusClassPtr; typedef struct _ProximityClassRec { + int sourceid; char pad; } ProximityClassRec, *ProximityClassPtr; typedef struct _AbsoluteClassRec { + int sourceid; /* Calibration. */ int min_x; int max_x; @@ -246,11 +306,7 @@ typedef struct _KbdFeedbackClassRec { KbdCtrlProcPtr CtrlProc; KeybdCtrl ctrl; KbdFeedbackPtr next; -#ifdef XKB struct _XkbSrvLedInfo *xkb_sli; -#else - void *pad0; -#endif } KbdFeedbackClassRec; typedef struct _PtrFeedbackClassRec { @@ -282,11 +338,7 @@ typedef struct _LedFeedbackClassRec { LedCtrlProcPtr CtrlProc; LedCtrl ctrl; LedFeedbackPtr next; -#ifdef XKB struct _XkbSrvLedInfo *xkb_sli; -#else - void *pad0; -#endif } LedFeedbackClassRec; @@ -405,8 +457,7 @@ typedef struct _GrabInfoRec { Bool frozen; int state; GrabPtr other; /* if other grab has this frozen */ - xEvent *event; /* saved to be replayed */ - int evcount; + DeviceEvent *event; /* saved to be replayed */ } sync; } GrabInfoRec, *GrabInfoPtr; @@ -420,6 +471,11 @@ typedef struct _SpriteInfoRec { pointer that owns the sprite. */ } SpriteInfoRec, *SpriteInfoPtr; +/* device types */ +#define MASTER_POINTER 1 +#define MASTER_KEYBOARD 2 +#define SLAVE 3 + typedef struct _DeviceIntRec { DeviceRec public; DeviceIntPtr next; @@ -432,10 +488,10 @@ typedef struct _DeviceIntRec { Bool enabled; /* TRUE if ON returns Success */ Bool coreEvents; /* TRUE if device also sends core */ GrabInfoRec deviceGrab; /* grab on the device */ - Bool isMaster; /* TRUE if device is master */ - Atom type; + int type; /* MASTER_POINTER, MASTER_KEYBOARD, SLAVE */ + Atom xinput_type; char *name; - CARD8 id; + int id; KeyClassPtr key; ValuatorClassPtr valuator; ButtonClassPtr button; @@ -448,19 +504,15 @@ typedef struct _DeviceIntRec { StringFeedbackPtr stringfeed; BellFeedbackPtr bell; LedFeedbackPtr leds; -#ifdef XKB struct _XkbInterest *xkb_interest; -#else - void *pad0; -#endif char *config_info; /* used by the hotplug layer */ PrivateRec *devPrivates; int nPrivates; DeviceUnwrapProc unwrapProc; SpriteInfoPtr spriteInfo; union { - DeviceIntPtr master; /* master device */ - DeviceIntPtr lastSlave; /* last slave device used */ + DeviceIntPtr master; /* master device */ + DeviceIntPtr lastSlave; /* last slave device used */ } u; /* last valuator values recorded, not posted to client; @@ -473,6 +525,7 @@ typedef struct _DeviceIntRec { int valuators[MAX_VALUATORS]; float remainder[MAX_VALUATORS]; int numValuators; + DeviceIntPtr slave; } last; /* Input device property handling. */ @@ -488,9 +541,11 @@ typedef struct { DeviceIntPtr off_devices; /* all devices turned off */ DeviceIntPtr keyboard; /* the main one for the server */ DeviceIntPtr pointer; + DeviceIntPtr all_devices; + DeviceIntPtr all_master_devices; } InputInfo; -extern InputInfo inputInfo; +extern _X_EXPORT InputInfo inputInfo; /* for keeping the events for devices grabbed synchronously */ typedef struct _QdEvent *QdEventPtr; @@ -499,8 +554,7 @@ typedef struct _QdEvent { DeviceIntPtr device; ScreenPtr pScreen; /* what screen the pointer was on */ unsigned long months; /* milliseconds is in the event */ - xEvent *event; - int evcount; -} QdEventRec; + InternalEvent *event; +} QdEventRec; #endif /* INPUTSTRUCT_H */ diff --git a/xorg-server/include/misc.h b/xorg-server/include/misc.h index f56c2c609..a2109e63a 100644 --- a/xorg-server/include/misc.h +++ b/xorg-server/include/misc.h @@ -72,9 +72,6 @@ OF THIS SOFTWARE. * */ -extern unsigned long globalSerialNumber; -extern unsigned long serverGeneration; - #include <X11/Xosdefs.h> #include <X11/Xfuncproto.h> #include <X11/Xmd.h> @@ -89,7 +86,7 @@ extern unsigned long serverGeneration; #define MAXCLIENTS 256 #define MAXEXTENSIONS 128 #define MAXFORMATS 8 -#define MAXDEVICES 20 /* input devices */ +#define MAXDEVICES 40 /* input devices */ #define EXTENSION_EVENT_BASE 64 #define EXTENSION_BASE 128 @@ -183,6 +180,36 @@ typedef struct _xReq *xReqPtr; #endif +/** + * Calculate the number of bytes needed to hold bits. + * @param bits The minimum number of bits needed. + * @return The number of bytes needed to hold bits. + */ +static __inline int +bits_to_bytes(const int bits) { + return ((bits + 7) >> 3); +} +/** + * Calculate the number of 4-byte units needed to hold the given number of + * bytes. + * @param bytes The minimum number of bytes needed. + * @return The number of 4-byte units needed to hold bytes. + */ +static __inline int +bytes_to_int32(const int bytes) { + return (((bytes) + 3) >> 2); +} + +/** + * Calculate the number of bytes (in multiples of 4) needed to hold bytes. + * @param bytes The minimum number of bytes needed. + * @return The closest multiple of 4 that is equal or higher than bytes. + */ +static __inline int +pad_to_int32(const int bytes) { + return (((bytes) + 3) & ~3); +} + /* some macros to help swap requests, replies, and events */ #define LengthRestB(stuff) \ @@ -227,17 +254,17 @@ typedef struct _xReq *xReqPtr; ((char *) &(dst))[0] = ((char *) &(src))[1];\ ((char *) &(dst))[1] = ((char *) &(src))[0]; } -extern void SwapLongs( +extern _X_EXPORT void SwapLongs( CARD32 *list, unsigned long count); -extern void SwapShorts( +extern _X_EXPORT void SwapShorts( short *list, unsigned long count); -extern void MakePredeclaredAtoms(void); +extern _X_EXPORT void MakePredeclaredAtoms(void); -extern int Ones( +extern _X_EXPORT int Ones( unsigned long /*mask*/); typedef struct _xPoint *DDXPointPtr; @@ -256,4 +283,7 @@ typedef struct _CharInfo *CharInfoPtr; /* also in fonts/include/font.h */ #define _XTYPEDEF_CHARINFOPTR #endif +extern _X_EXPORT unsigned long globalSerialNumber; +extern _X_EXPORT unsigned long serverGeneration; + #endif /* MISC_H */ diff --git a/xorg-server/include/opaque.h b/xorg-server/include/opaque.h index 07a0715ef..b3c7c70d6 100644 --- a/xorg-server/include/opaque.h +++ b/xorg-server/include/opaque.h @@ -33,46 +33,46 @@ from The Open Group. #include "globals.h" -extern char *defaultTextFont; -extern char *defaultCursorFont; -extern int MaxClients; -extern volatile char isItTimeToYield; -extern volatile char dispatchException; +extern _X_EXPORT char *defaultTextFont; +extern _X_EXPORT char *defaultCursorFont; +extern _X_EXPORT int MaxClients; +extern _X_EXPORT volatile char isItTimeToYield; +extern _X_EXPORT volatile char dispatchException; /* bit values for dispatchException */ #define DE_RESET 1 #define DE_TERMINATE 2 #define DE_PRIORITYCHANGE 4 /* set when a client's priority changes */ -extern CARD32 TimeOutValue; -extern int ScreenSaverBlanking; -extern int ScreenSaverAllowExposures; -extern int defaultScreenSaverBlanking; -extern int defaultScreenSaverAllowExposures; -extern char *display; - -extern int defaultBackingStore; -extern Bool disableBackingStore; -extern Bool enableBackingStore; -extern Bool PartialNetwork; +extern _X_EXPORT CARD32 TimeOutValue; +extern _X_EXPORT int ScreenSaverBlanking; +extern _X_EXPORT int ScreenSaverAllowExposures; +extern _X_EXPORT int defaultScreenSaverBlanking; +extern _X_EXPORT int defaultScreenSaverAllowExposures; +extern _X_EXPORT char *display; + +extern _X_EXPORT int defaultBackingStore; +extern _X_EXPORT Bool disableBackingStore; +extern _X_EXPORT Bool enableBackingStore; +extern _X_EXPORT Bool PartialNetwork; #ifndef NOLOGOHACK -extern int logoScreenSaver; +extern _X_EXPORT int logoScreenSaver; #endif #ifdef RLIMIT_DATA -extern int limitDataSpace; +extern _X_EXPORT int limitDataSpace; #endif #ifdef RLIMIT_STACK -extern int limitStackSpace; +extern _X_EXPORT int limitStackSpace; #endif #ifdef RLIMIT_NOFILE -extern int limitNoFile; +extern _X_EXPORT int limitNoFile; #endif -extern Bool defeatAccessControl; -extern long maxBigRequestSize; -extern Bool party_like_its_1989; -extern Bool whiteRoot; +extern _X_EXPORT Bool defeatAccessControl; +extern _X_EXPORT long maxBigRequestSize; +extern _X_EXPORT Bool party_like_its_1989; +extern _X_EXPORT Bool whiteRoot; -extern Bool CoreDump; +extern _X_EXPORT Bool CoreDump; #endif /* OPAQUE_H */ diff --git a/xorg-server/include/os.h b/xorg-server/include/os.h index 59f26898f..7b99a597e 100644 --- a/xorg-server/include/os.h +++ b/xorg-server/include/os.h @@ -52,8 +52,6 @@ SOFTWARE. #include "misc.h" #include <stdarg.h> -#define NullFID ((FID) 0) - #define SCREEN_SAVER_ON 0 #define SCREEN_SAVER_OFF 1 #define SCREEN_SAVER_FORCER 2 @@ -66,7 +64,6 @@ SOFTWARE. #define MAX_BIG_REQUEST_SIZE 4194303 #endif -typedef pointer FID; typedef struct _FontPathRec *FontPathPtr; typedef struct _NewClientRec *NewClientPtr; @@ -86,92 +83,87 @@ typedef struct _NewClientRec *NewClientPtr; #include <stdio.h> #include <stdarg.h> -/* have to put $(SIGNAL_DEFINES) in DEFINES in Imakefile to get this right */ -#ifdef SIGNALRETURNSINT -#define SIGVAL int -#else -#define SIGVAL void +#ifdef DDXOSVERRORF +extern _X_EXPORT void (*OsVendorVErrorFProc)(const char *, va_list args); #endif -extern void (*OsVendorVErrorFProc)(const char *, va_list args); - -extern int WaitForSomething( +extern _X_EXPORT int WaitForSomething( int* /*pClientsReady*/ ); -extern int ReadRequestFromClient(ClientPtr /*client*/); +extern _X_EXPORT int ReadRequestFromClient(ClientPtr /*client*/); -extern Bool InsertFakeRequest( +extern _X_EXPORT Bool InsertFakeRequest( ClientPtr /*client*/, char* /*data*/, int /*count*/); -extern void ResetCurrentRequest(ClientPtr /*client*/); +extern _X_EXPORT void ResetCurrentRequest(ClientPtr /*client*/); -extern void FlushAllOutput(void); +extern _X_EXPORT void FlushAllOutput(void); -extern void FlushIfCriticalOutputPending(void); +extern _X_EXPORT void FlushIfCriticalOutputPending(void); -extern void SetCriticalOutputPending(void); +extern _X_EXPORT void SetCriticalOutputPending(void); -extern int WriteToClient(ClientPtr /*who*/, int /*count*/, const void* /*buf*/); +extern _X_EXPORT int WriteToClient(ClientPtr /*who*/, int /*count*/, const void* /*buf*/); -extern void ResetOsBuffers(void); +extern _X_EXPORT void ResetOsBuffers(void); -extern void InitConnectionLimits(void); +extern _X_EXPORT void InitConnectionLimits(void); -extern void NotifyParentProcess(void); +extern _X_EXPORT void NotifyParentProcess(void); -extern void CreateWellKnownSockets(void); +extern _X_EXPORT void CreateWellKnownSockets(void); -extern void ResetWellKnownSockets(void); +extern _X_EXPORT void ResetWellKnownSockets(void); -extern void CloseWellKnownConnections(void); +extern _X_EXPORT void CloseWellKnownConnections(void); -extern XID AuthorizationIDOfClient(ClientPtr /*client*/); +extern _X_EXPORT XID AuthorizationIDOfClient(ClientPtr /*client*/); -extern char *ClientAuthorized( +extern _X_EXPORT char *ClientAuthorized( ClientPtr /*client*/, unsigned int /*proto_n*/, char* /*auth_proto*/, unsigned int /*string_n*/, char* /*auth_string*/); -extern Bool EstablishNewConnections( +extern _X_EXPORT Bool EstablishNewConnections( ClientPtr /*clientUnused*/, pointer /*closure*/); -extern void CheckConnections(void); +extern _X_EXPORT void CheckConnections(void); -extern void CloseDownConnection(ClientPtr /*client*/); +extern _X_EXPORT void CloseDownConnection(ClientPtr /*client*/); -extern void AddGeneralSocket(int /*fd*/); +extern _X_EXPORT void AddGeneralSocket(int /*fd*/); -extern void RemoveGeneralSocket(int /*fd*/); +extern _X_EXPORT void RemoveGeneralSocket(int /*fd*/); -extern void AddEnabledDevice(int /*fd*/); +extern _X_EXPORT void AddEnabledDevice(int /*fd*/); -extern void RemoveEnabledDevice(int /*fd*/); +extern _X_EXPORT void RemoveEnabledDevice(int /*fd*/); -extern int OnlyListenToOneClient(ClientPtr /*client*/); +extern _X_EXPORT int OnlyListenToOneClient(ClientPtr /*client*/); -extern void ListenToAllClients(void); +extern _X_EXPORT void ListenToAllClients(void); -extern void IgnoreClient(ClientPtr /*client*/); +extern _X_EXPORT void IgnoreClient(ClientPtr /*client*/); -extern void AttendClient(ClientPtr /*client*/); +extern _X_EXPORT void AttendClient(ClientPtr /*client*/); -extern void MakeClientGrabImpervious(ClientPtr /*client*/); +extern _X_EXPORT void MakeClientGrabImpervious(ClientPtr /*client*/); -extern void MakeClientGrabPervious(ClientPtr /*client*/); +extern _X_EXPORT void MakeClientGrabPervious(ClientPtr /*client*/); #ifdef XQUARTZ extern void ListenOnOpenFD(int /* fd */, int /* noxauth */); #endif -extern CARD32 GetTimeInMillis(void); +extern _X_EXPORT CARD32 GetTimeInMillis(void); -extern void AdjustWaitForDelay( +extern _X_EXPORT void AdjustWaitForDelay( pointer /*waitTime*/, unsigned long /*newdelay*/); @@ -182,69 +174,71 @@ typedef CARD32 (*OsTimerCallback)( CARD32 /* time */, pointer /* arg */); -extern void TimerInit(void); +extern _X_EXPORT void TimerInit(void); -extern Bool TimerForce(OsTimerPtr /* timer */); +extern _X_EXPORT Bool TimerForce(OsTimerPtr /* timer */); #define TimerAbsolute (1<<0) #define TimerForceOld (1<<1) -extern OsTimerPtr TimerSet( +extern _X_EXPORT OsTimerPtr TimerSet( OsTimerPtr /* timer */, int /* flags */, CARD32 /* millis */, OsTimerCallback /* func */, pointer /* arg */); -extern void TimerCheck(void); -extern void TimerCancel(OsTimerPtr /* pTimer */); -extern void TimerFree(OsTimerPtr /* pTimer */); +extern _X_EXPORT void TimerCheck(void); +extern _X_EXPORT void TimerCancel(OsTimerPtr /* pTimer */); +extern _X_EXPORT void TimerFree(OsTimerPtr /* pTimer */); -extern void SetScreenSaverTimer(void); -extern void FreeScreenSaverTimer(void); +extern _X_EXPORT void SetScreenSaverTimer(void); +extern _X_EXPORT void FreeScreenSaverTimer(void); -extern SIGVAL AutoResetServer(int /*sig*/); +extern _X_EXPORT void AutoResetServer(int /*sig*/); -extern SIGVAL GiveUp(int /*sig*/); +extern _X_EXPORT void GiveUp(int /*sig*/); -extern void UseMsg(void); +extern _X_EXPORT void UseMsg(void); -extern void ProcessCommandLine(int /*argc*/, char* /*argv*/[]); +extern _X_EXPORT void ProcessCommandLine(int /*argc*/, char* /*argv*/[]); -extern int set_font_authorizations( +extern _X_EXPORT int set_font_authorizations( char ** /* authorizations */, int * /*authlen */, pointer /* client */); #ifndef _HAVE_XALLOC_DECLS #define _HAVE_XALLOC_DECLS -extern pointer Xalloc(unsigned long /*amount*/); -extern pointer Xcalloc(unsigned long /*amount*/); -extern pointer Xrealloc(pointer /*ptr*/, unsigned long /*amount*/); -extern void Xfree(pointer /*ptr*/); +extern _X_EXPORT pointer Xalloc(unsigned long /*amount*/); +extern _X_EXPORT pointer Xcalloc(unsigned long /*amount*/); +extern _X_EXPORT pointer Xrealloc(pointer /*ptr*/, unsigned long /*amount*/); +extern _X_EXPORT void Xfree(pointer /*ptr*/); #endif -extern pointer XNFalloc(unsigned long /*amount*/); -extern pointer XNFcalloc(unsigned long /*amount*/); -extern pointer XNFrealloc(pointer /*ptr*/, unsigned long /*amount*/); +extern _X_EXPORT pointer XNFalloc(unsigned long /*amount*/); +extern _X_EXPORT pointer XNFcalloc(unsigned long /*amount*/); +extern _X_EXPORT pointer XNFrealloc(pointer /*ptr*/, unsigned long /*amount*/); -extern char *Xstrdup(const char *s); -extern char *XNFstrdup(const char *s); -extern char *Xprintf(const char *fmt, ...); -extern char *Xvprintf(const char *fmt, va_list va); -extern char *XNFprintf(const char *fmt, ...); -extern char *XNFvprintf(const char *fmt, va_list va); +extern _X_EXPORT char *Xstrdup(const char *s); +extern _X_EXPORT char *XNFstrdup(const char *s); +extern _X_EXPORT char *Xprintf(const char *fmt, ...); +extern _X_EXPORT char *Xvprintf(const char *fmt, va_list va); +extern _X_EXPORT char *XNFprintf(const char *fmt, ...); +extern _X_EXPORT char *XNFvprintf(const char *fmt, va_list va); -typedef SIGVAL (*OsSigHandlerPtr)(int /* sig */); +typedef void (*OsSigHandlerPtr)(int /* sig */); +typedef int (*OsSigWrapperPtr)(int /* sig */); -extern OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */); +extern _X_EXPORT OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */); +extern _X_EXPORT OsSigWrapperPtr OsRegisterSigWrapper(OsSigWrapperPtr newWrap); -extern int auditTrailLevel; +extern _X_EXPORT int auditTrailLevel; -extern void LockServer(void); -extern void UnlockServer(void); +extern _X_EXPORT void LockServer(void); +extern _X_EXPORT void UnlockServer(void); -extern int OsLookupColor( +extern _X_EXPORT int OsLookupColor( int /*screen*/, char * /*name*/, unsigned /*len*/, @@ -252,24 +246,24 @@ extern int OsLookupColor( unsigned short * /*pgreen*/, unsigned short * /*pblue*/); -extern void OsInit(void); +extern _X_EXPORT void OsInit(void); -extern void OsCleanup(Bool); +extern _X_EXPORT void OsCleanup(Bool); -extern void OsVendorFatalError(void); +extern _X_EXPORT void OsVendorFatalError(void); -extern void OsVendorInit(void); +extern _X_EXPORT void OsVendorInit(void); -void OsBlockSignals (void); +extern _X_EXPORT void OsBlockSignals (void); -void OsReleaseSignals (void); +extern _X_EXPORT void OsReleaseSignals (void); #if !defined(WIN32) -extern int System(char *); -extern pointer Popen(char *, char *); -extern int Pclose(pointer); -extern pointer Fopen(char *, char *); -extern int Fclose(pointer); +extern _X_EXPORT int System(char *); +extern _X_EXPORT pointer Popen(char *, char *); +extern _X_EXPORT int Pclose(pointer); +extern _X_EXPORT pointer Fopen(char *, char *); +extern _X_EXPORT int Fclose(pointer); #else #define System(a) system(a) #define Popen(a,b) popen(a,b) @@ -278,16 +272,16 @@ extern int Fclose(pointer); #define Fclose(a) fclose(a) #endif -extern void CheckUserParameters(int argc, char **argv, char **envp); -extern void CheckUserAuthorization(void); +extern _X_EXPORT void CheckUserParameters(int argc, char **argv, char **envp); +extern _X_EXPORT void CheckUserAuthorization(void); -extern int AddHost( +extern _X_EXPORT int AddHost( ClientPtr /*client*/, int /*family*/, unsigned /*length*/, pointer /*pAddr*/); -extern Bool ForEachHostInFamily ( +extern _X_EXPORT Bool ForEachHostInFamily ( int /*family*/, Bool (* /*func*/ )( unsigned char * /* addr */, @@ -295,13 +289,13 @@ extern Bool ForEachHostInFamily ( pointer /* closure */), pointer /*closure*/); -extern int RemoveHost( +extern _X_EXPORT int RemoveHost( ClientPtr /*client*/, int /*family*/, unsigned /*length*/, pointer /*pAddr*/); -extern int GetHosts( +extern _X_EXPORT int GetHosts( pointer * /*data*/, int * /*pnHosts*/, int * /*pLen*/, @@ -309,11 +303,11 @@ extern int GetHosts( typedef struct sockaddr * sockaddrPtr; -extern int InvalidHost(sockaddrPtr /*saddr*/, int /*len*/, ClientPtr client); +extern _X_EXPORT int InvalidHost(sockaddrPtr /*saddr*/, int /*len*/, ClientPtr client); -extern int LocalClient(ClientPtr /* client */); +extern _X_EXPORT int LocalClient(ClientPtr /* client */); -extern int LocalClientCred(ClientPtr, int *, int *); +extern _X_EXPORT int LocalClientCred(ClientPtr, int *, int *); #define LCC_UID_SET (1 << 0) #define LCC_GID_SET (1 << 1) @@ -330,42 +324,44 @@ typedef struct { int zoneid; /* Only set on Solaris 10 & later */ } LocalClientCredRec; -extern int GetLocalClientCreds(ClientPtr, LocalClientCredRec **); -extern void FreeLocalClientCreds(LocalClientCredRec *); +extern _X_EXPORT int GetLocalClientCreds(ClientPtr, LocalClientCredRec **); +extern _X_EXPORT void FreeLocalClientCreds(LocalClientCredRec *); -extern int ChangeAccessControl(ClientPtr /*client*/, int /*fEnabled*/); +extern _X_EXPORT int ChangeAccessControl(ClientPtr /*client*/, int /*fEnabled*/); -extern int GetAccessControl(void); +extern _X_EXPORT int GetAccessControl(void); -extern void AddLocalHosts(void); +extern _X_EXPORT void AddLocalHosts(void); -extern void ResetHosts(char *display); +extern _X_EXPORT void ResetHosts(char *display); -extern void EnableLocalHost(void); +extern _X_EXPORT void EnableLocalHost(void); -extern void DisableLocalHost(void); +extern _X_EXPORT void DisableLocalHost(void); -extern void AccessUsingXdmcp(void); +extern _X_EXPORT void AccessUsingXdmcp(void); -extern void DefineSelf(int /*fd*/); +extern _X_EXPORT void DefineSelf(int /*fd*/); -extern void AugmentSelf(pointer /*from*/, int /*len*/); +#if XDMCP +extern _X_EXPORT void AugmentSelf(pointer /*from*/, int /*len*/); -extern void InitAuthorization(char * /*filename*/); +extern _X_EXPORT void RegisterAuthorizations(void); +#endif -/* extern int LoadAuthorization(void); */ +extern _X_EXPORT void InitAuthorization(char * /*filename*/); -extern void RegisterAuthorizations(void); +/* extern int LoadAuthorization(void); */ -extern int AuthorizationFromID ( +extern _X_EXPORT int AuthorizationFromID ( XID id, unsigned short *name_lenp, char **namep, unsigned short *data_lenp, char **datap); -extern XID CheckAuthorization( +extern _X_EXPORT XID CheckAuthorization( unsigned int /*namelength*/, char * /*name*/, unsigned int /*datalength*/, @@ -374,31 +370,33 @@ extern XID CheckAuthorization( char ** /*reason*/ ); -extern void ResetAuthorization(void); +extern _X_EXPORT void ResetAuthorization(void); -extern int RemoveAuthorization ( +extern _X_EXPORT int RemoveAuthorization ( unsigned short name_length, char *name, unsigned short data_length, char *data); -extern int AddAuthorization( +extern _X_EXPORT int AddAuthorization( unsigned int /*name_length*/, char * /*name*/, unsigned int /*data_length*/, char * /*data*/); -extern XID GenerateAuthorization( +#ifdef XCSECURITY +extern _X_EXPORT XID GenerateAuthorization( unsigned int /* name_length */, char * /* name */, unsigned int /* data_length */, char * /* data */, unsigned int * /* data_length_return */, char ** /* data_return */); +#endif -extern int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/); +extern _X_EXPORT int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/); -extern void ddxUseMsg(void); +extern _X_EXPORT void ddxUseMsg(void); /* int ReqLen(xReq *req, ClientPtr client) * Given a pointer to a *complete* request, return its length in bytes. @@ -424,7 +422,7 @@ extern void ddxUseMsg(void); : (otherReqTypePtr)(((CARD32*)_pxReq)+1)) /* stuff for ReplyCallback */ -extern CallbackListPtr ReplyCallback; +extern _X_EXPORT CallbackListPtr ReplyCallback; typedef struct { ClientPtr client; const void *replyData; @@ -434,31 +432,31 @@ typedef struct { } ReplyInfoRec; /* stuff for FlushCallback */ -extern CallbackListPtr FlushCallback; +extern _X_EXPORT CallbackListPtr FlushCallback; -extern void AbortDDX(void); -extern void ddxGiveUp(void); -extern int TimeSinceLastInputEvent(void); +extern _X_EXPORT void AbortDDX(void); +extern _X_EXPORT void ddxGiveUp(void); +extern _X_EXPORT int TimeSinceLastInputEvent(void); /* strcasecmp.c */ #if NEED_STRCASECMP #define strcasecmp xstrcasecmp -extern int xstrcasecmp(const char *s1, const char *s2); +extern _X_EXPORT int xstrcasecmp(const char *s1, const char *s2); #endif #if NEED_STRNCASECMP #define strncasecmp xstrncasecmp -extern int xstrncasecmp(const char *s1, const char *s2, size_t n); +extern _X_EXPORT int xstrncasecmp(const char *s1, const char *s2, size_t n); #endif #if NEED_STRCASESTR #define strcasestr xstrcasestr -extern char *xstrcasestr(const char *s, const char *find); +extern _X_EXPORT char *xstrcasestr(const char *s, const char *find); #endif #ifndef HAS_STRLCPY -extern size_t strlcpy(char *dst, const char *src, size_t siz); -extern size_t strlcat(char *dst, const char *src, size_t siz); +extern _X_EXPORT size_t strlcpy(char *dst, const char *src, size_t siz); +extern _X_EXPORT size_t strlcat(char *dst, const char *src, size_t siz); #endif /* Logging. */ @@ -491,21 +489,21 @@ typedef enum { #define _printf_attribute(a,b) /**/ #endif -extern const char *LogInit(const char *fname, const char *backup); -extern void LogClose(void); -extern Bool LogSetParameter(LogParameter param, int value); -extern void LogVWrite(int verb, const char *f, va_list args); -extern void LogWrite(int verb, const char *f, ...) _printf_attribute(2,3); -extern void LogVMessageVerb(MessageType type, int verb, const char *format, +extern _X_EXPORT const char *LogInit(const char *fname, const char *backup); +extern _X_EXPORT void LogClose(void); +extern _X_EXPORT Bool LogSetParameter(LogParameter param, int value); +extern _X_EXPORT void LogVWrite(int verb, const char *f, va_list args); +extern _X_EXPORT void LogWrite(int verb, const char *f, ...) _printf_attribute(2,3); +extern _X_EXPORT void LogVMessageVerb(MessageType type, int verb, const char *format, va_list args); -extern void LogMessageVerb(MessageType type, int verb, const char *format, +extern _X_EXPORT void LogMessageVerb(MessageType type, int verb, const char *format, ...) _printf_attribute(3,4); -extern void LogMessage(MessageType type, const char *format, ...) +extern _X_EXPORT void LogMessage(MessageType type, const char *format, ...) _printf_attribute(2,3); -extern void FreeAuditTimer(void); -extern void AuditF(const char *f, ...) _printf_attribute(1,2); -extern void VAuditF(const char *f, va_list args); -extern void FatalError(const char *f, ...) _printf_attribute(1,2) +extern _X_EXPORT void FreeAuditTimer(void); +extern _X_EXPORT void AuditF(const char *f, ...) _printf_attribute(1,2); +extern _X_EXPORT void VAuditF(const char *f, va_list args); +extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2) #if defined(__GNUC__) && (__GNUC__ > 2) __attribute((noreturn)) #endif @@ -517,12 +515,12 @@ __attribute((noreturn)) #define DebugF(...) /* */ #endif -extern void VErrorF(const char *f, va_list args); -extern void ErrorF(const char *f, ...) _printf_attribute(1,2); -extern void Error(char *str); -extern void LogPrintMarkers(void); +extern _X_EXPORT void VErrorF(const char *f, va_list args); +extern _X_EXPORT void ErrorF(const char *f, ...) _printf_attribute(1,2); +extern _X_EXPORT void Error(char *str); +extern _X_EXPORT void LogPrintMarkers(void); -extern void xorg_backtrace(void); +extern _X_EXPORT void xorg_backtrace(void); #ifdef _MSC_VER #define snprintf _snprintf diff --git a/xorg-server/include/pixmap.h b/xorg-server/include/pixmap.h index 5ff0b8c16..55a9c818a 100644 --- a/xorg-server/include/pixmap.h +++ b/xorg-server/include/pixmap.h @@ -93,7 +93,7 @@ typedef union _PixUnion { #define WindowDrawable(type) \ ((type == DRAWABLE_WINDOW) || (type == UNDRAWABLE_WINDOW)) -extern PixmapPtr GetScratchPixmapHeader( +extern _X_EXPORT PixmapPtr GetScratchPixmapHeader( ScreenPtr /*pScreen*/, int /*width*/, int /*height*/, @@ -102,16 +102,16 @@ extern PixmapPtr GetScratchPixmapHeader( int /*devKind*/, pointer /*pPixData*/); -extern void FreeScratchPixmapHeader( +extern _X_EXPORT void FreeScratchPixmapHeader( PixmapPtr /*pPixmap*/); -extern Bool CreateScratchPixmapsForScreen( +extern _X_EXPORT Bool CreateScratchPixmapsForScreen( int /*scrnum*/); -extern void FreeScratchPixmapsForScreen( +extern _X_EXPORT void FreeScratchPixmapsForScreen( int /*scrnum*/); -extern PixmapPtr AllocatePixmap( +extern _X_EXPORT PixmapPtr AllocatePixmap( ScreenPtr /*pScreen*/, int /*pixDataSize*/); diff --git a/xorg-server/include/privates.h b/xorg-server/include/privates.h index e3fa83cde..3c5c32175 100644 --- a/xorg-server/include/privates.h +++ b/xorg-server/include/privates.h @@ -27,31 +27,31 @@ typedef struct _Private PrivateRec; * Request pre-allocated private space for your driver/module. * Calling this is not necessary if only a pointer by itself is needed. */ -extern int +extern _X_EXPORT int dixRequestPrivate(const DevPrivateKey key, unsigned size); /* * Allocates a new private and attaches it to an existing object. */ -extern pointer * +extern _X_EXPORT pointer * dixAllocatePrivate(PrivateRec **privates, const DevPrivateKey key); /* * Look up a private pointer. */ -pointer +extern _X_EXPORT pointer dixLookupPrivate(PrivateRec **privates, const DevPrivateKey key); /* * Look up the address of a private pointer. */ -pointer * +extern _X_EXPORT pointer * dixLookupPrivateAddr(PrivateRec **privates, const DevPrivateKey key); /* * Set a private pointer. */ -int +extern _X_EXPORT int dixSetPrivate(PrivateRec **privates, const DevPrivateKey key, pointer val); /* @@ -63,24 +63,24 @@ typedef struct _PrivateCallback { pointer *value; /* address of private pointer */ } PrivateCallbackRec; -extern int +extern _X_EXPORT int dixRegisterPrivateInitFunc(const DevPrivateKey key, CallbackProcPtr callback, pointer userdata); -extern int +extern _X_EXPORT int dixRegisterPrivateDeleteFunc(const DevPrivateKey key, CallbackProcPtr callback, pointer userdata); /* * Frees private data. */ -extern void +extern _X_EXPORT void dixFreePrivates(PrivateRec *privates); /* * Resets the subsystem, called from the main loop. */ -extern int +extern _X_EXPORT int dixResetPrivates(void); /* @@ -93,14 +93,14 @@ dixResetPrivates(void); * Looks up the offset where the devPrivates field is located. * Returns -1 if no offset has been registered for the resource type. */ -extern int +extern _X_EXPORT int dixLookupPrivateOffset(RESTYPE type); /* * Specifies the offset where the devPrivates field is located. * A negative value indicates no devPrivates field is available. */ -extern int +extern _X_EXPORT int dixRegisterPrivateOffset(RESTYPE type, int offset); /* diff --git a/xorg-server/include/property.h b/xorg-server/include/property.h index 1207e8191..075eb4a0d 100644 --- a/xorg-server/include/property.h +++ b/xorg-server/include/property.h @@ -52,14 +52,14 @@ SOFTWARE. typedef struct _Property *PropertyPtr; -extern int dixLookupProperty( +extern _X_EXPORT int dixLookupProperty( PropertyPtr * /*result*/, WindowPtr /*pWin*/, Atom /*proprty*/, ClientPtr /*pClient*/, Mask /*access_mode*/); -extern int dixChangeWindowProperty( +extern _X_EXPORT int dixChangeWindowProperty( ClientPtr /*pClient*/, WindowPtr /*pWin*/, Atom /*property*/, @@ -70,7 +70,7 @@ extern int dixChangeWindowProperty( pointer /*value*/, Bool /*sendevent*/); -extern int ChangeWindowProperty( +extern _X_EXPORT int ChangeWindowProperty( WindowPtr /*pWin*/, Atom /*property*/, Atom /*type*/, @@ -80,12 +80,12 @@ extern int ChangeWindowProperty( pointer /*value*/, Bool /*sendevent*/); -extern int DeleteProperty( +extern _X_EXPORT int DeleteProperty( ClientPtr /*client*/, WindowPtr /*pWin*/, Atom /*propName*/); -extern void DeleteAllWindowProperties( +extern _X_EXPORT void DeleteAllWindowProperties( WindowPtr /*pWin*/); #endif /* PROPERTY_H */ diff --git a/xorg-server/include/ptrveloc.h b/xorg-server/include/ptrveloc.h index 384f9a6f2..fa2156b0d 100644 --- a/xorg-server/include/ptrveloc.h +++ b/xorg-server/include/ptrveloc.h @@ -1,6 +1,6 @@ /* * - * Copyright © 2006-2008 Simon Thum simon dot thum at gmx dot de + * Copyright © 2006-2009 Simon Thum simon dot thum at gmx dot de * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -27,14 +27,9 @@ #include <input.h> /* DeviceIntPtr */ -/* maximum number of filters to approximate velocity. - * ABI-breaker! - */ -#define MAX_VELOCITY_FILTERS 8 - -/* constants for acceleration profiles; - * see */ +/* constants for acceleration profiles */ +#define AccelProfileNone -1 #define AccelProfileClassic 0 #define AccelProfileDeviceSpecific 1 #define AccelProfilePolynomial 2 @@ -42,7 +37,7 @@ #define AccelProfileSimple 4 #define AccelProfilePower 5 #define AccelProfileLinear 6 -#define AccelProfileReserved 7 +#define AccelProfileLAST AccelProfileLinear /* fwd */ struct _DeviceVelocityRec; @@ -52,80 +47,87 @@ struct _DeviceVelocityRec; * returns actual acceleration depending on velocity, acceleration control,... */ typedef float (*PointerAccelerationProfileFunc) - (struct _DeviceVelocityRec* /*pVel*/, - float /*velocity*/, float /*threshold*/, float /*acc*/); + (DeviceIntPtr dev, struct _DeviceVelocityRec* vel, + float velocity, float threshold, float accelCoeff); /** - * a filter stage contains the data for adaptive IIR filtering. - * To improve results, one may run several parallel filters - * which have different decays. Since more integration means more - * delay, a given filter only does good matches in a specific phase of - * a stroke. - * - * Basically, the coupling feature makes one filter fairly enough, - * so that is the default. + * a motion history, with just enough information to + * calc mean velocity and decide which motion was along + * a more or less straight line */ -typedef struct _FilterStage { - float* fading_lut; /* lookup for adaptive IIR filter */ - int fading_lut_size; /* size of lookup table */ - float rdecay; /* reciprocal weighting halflife in ms */ - float current; -} FilterStage, *FilterStagePtr; +typedef struct _MotionTracker { + int dx, dy; /* accumulated delta for each axis */ + int time; /* time of creation */ + int dir; /* initial direction bitfield */ +} MotionTracker, *MotionTrackerPtr; /** * Contains all data needed to implement mouse ballistics */ typedef struct _DeviceVelocityRec { - FilterStage filters[MAX_VELOCITY_FILTERS]; + MotionTrackerPtr tracker; + int num_tracker; + int cur_tracker; /* current index */ float velocity; /* velocity as guessed by algorithm */ float last_velocity; /* previous velocity estimate */ - int lrm_time; /* time the last motion event was processed */ - int last_dx, last_dy; /* last motion delta */ - int last_diff; /* last time-difference */ - Bool last_reset; /* whether a nv-reset occurred just before */ + int last_dx; /* last time-difference */ + int last_dy ; /* phase of last/current estimate */ float corr_mul; /* config: multiply this into velocity */ float const_acceleration; /* config: (recipr.) const deceleration */ float min_acceleration; /* config: minimum acceleration */ short reset_time; /* config: reset non-visible state after # ms */ short use_softening; /* config: use softening of mouse values */ - float coupling; /* config: max. divergence before coupling */ + float max_rel_diff; /* config: max. relative difference */ + float max_diff; /* config: max. difference */ + int initial_range; /* config: max. offset used as initial velocity */ Bool average_accel; /* config: average acceleration over velocity */ PointerAccelerationProfileFunc Profile; PointerAccelerationProfileFunc deviceSpecificProfile; void* profile_private;/* extended data, see SetAccelerationProfile() */ struct { /* to be able to query this information */ int profile_number; - int filter_usecount[MAX_VELOCITY_FILTERS +1]; } statistics; } DeviceVelocityRec, *DeviceVelocityPtr; -extern void -InitVelocityData(DeviceVelocityPtr s); +extern _X_EXPORT void +InitVelocityData(DeviceVelocityPtr vel); + +extern _X_EXPORT void +InitTrackers(DeviceVelocityPtr vel, int ntracker); + +extern _X_EXPORT short +ProcessVelocityData2D(DeviceVelocityPtr vel, int dx, int dy, int time); + +extern _X_EXPORT float +BasicComputeAcceleration(DeviceIntPtr dev, DeviceVelocityPtr vel, + float velocity, float threshold, float acc); + +extern _X_EXPORT void +FreeVelocityData(DeviceVelocityPtr vel); -extern void -InitFilterChain(DeviceVelocityPtr s, float rdecay, float degression, - int lutsize, int stages); +extern _X_INTERNAL BOOL +InitializePredictableAccelerationProperties(DeviceIntPtr dev); -extern int -SetAccelerationProfile(DeviceVelocityPtr s, int profile_num); +extern _X_EXPORT int +SetAccelerationProfile(DeviceVelocityPtr vel, int profile_num); -extern DeviceVelocityPtr -GetDevicePredictableAccelData(DeviceIntPtr pDev); +extern _X_EXPORT DeviceVelocityPtr +GetDevicePredictableAccelData(DeviceIntPtr dev); -extern void -SetDeviceSpecificAccelerationProfile(DeviceVelocityPtr s, +extern _X_EXPORT void +SetDeviceSpecificAccelerationProfile(DeviceVelocityPtr vel, PointerAccelerationProfileFunc profile); -extern void -AccelerationDefaultCleanup(DeviceIntPtr pDev); +extern _X_INTERNAL void +AccelerationDefaultCleanup(DeviceIntPtr dev); -extern void -acceleratePointerPredictable(DeviceIntPtr pDev, int first_valuator, +extern _X_INTERNAL void +acceleratePointerPredictable(DeviceIntPtr dev, int first_valuator, int num_valuators, int *valuators, int evtime); -extern void -acceleratePointerLightweight(DeviceIntPtr pDev, int first_valuator, - int num_valuators, int *valuators, int ignore); +extern _X_INTERNAL void +acceleratePointerLightweight(DeviceIntPtr dev, int first_valuator, + int num_valuators, int *valuators, int ignored); #endif /* POINTERVELOCITY_H */ diff --git a/xorg-server/include/regionstr.h b/xorg-server/include/regionstr.h index db712f8ae..eead1a1f2 100644 --- a/xorg-server/include/regionstr.h +++ b/xorg-server/include/regionstr.h @@ -66,9 +66,9 @@ typedef struct pixman_region16 RegionRec, *RegionPtr; typedef struct pixman_region16_data RegDataRec, *RegDataPtr; -extern BoxRec miEmptyBox; -extern RegDataRec miEmptyData; -extern RegDataRec miBrokenData; +extern _X_EXPORT BoxRec miEmptyBox; +extern _X_EXPORT RegDataRec miEmptyData; +extern _X_EXPORT RegDataRec miBrokenData; #define REGION_NIL(reg) ((reg)->data && !(reg)->data->numRects) /* not a region */ @@ -198,96 +198,96 @@ extern RegDataRec miBrokenData; /* moved from mi.h */ -extern void InitRegions (void); +extern _X_EXPORT void InitRegions (void); -extern RegionPtr miRegionCreate( +extern _X_EXPORT RegionPtr miRegionCreate( BoxPtr /*rect*/, int /*size*/); -extern void miRegionInit( +extern _X_EXPORT void miRegionInit( RegionPtr /*pReg*/, BoxPtr /*rect*/, int /*size*/); -extern void miRegionDestroy( +extern _X_EXPORT void miRegionDestroy( RegionPtr /*pReg*/); -extern void miRegionUninit( +extern _X_EXPORT void miRegionUninit( RegionPtr /*pReg*/); -extern Bool miRegionCopy( +extern _X_EXPORT Bool miRegionCopy( RegionPtr /*dst*/, RegionPtr /*src*/); -extern Bool miIntersect( +extern _X_EXPORT Bool miIntersect( RegionPtr /*newReg*/, RegionPtr /*reg1*/, RegionPtr /*reg2*/); -extern Bool miUnion( +extern _X_EXPORT Bool miUnion( RegionPtr /*newReg*/, RegionPtr /*reg1*/, RegionPtr /*reg2*/); -extern Bool miRegionAppend( +extern _X_EXPORT Bool miRegionAppend( RegionPtr /*dstrgn*/, RegionPtr /*rgn*/); -extern Bool miRegionValidate( +extern _X_EXPORT Bool miRegionValidate( RegionPtr /*badreg*/, Bool * /*pOverlap*/); -extern RegionPtr miRectsToRegion( +extern _X_EXPORT RegionPtr miRectsToRegion( int /*nrects*/, xRectanglePtr /*prect*/, int /*ctype*/); -extern Bool miSubtract( +extern _X_EXPORT Bool miSubtract( RegionPtr /*regD*/, RegionPtr /*regM*/, RegionPtr /*regS*/); -extern Bool miInverse( +extern _X_EXPORT Bool miInverse( RegionPtr /*newReg*/, RegionPtr /*reg1*/, BoxPtr /*invRect*/); -extern int miRectIn( +extern _X_EXPORT int miRectIn( RegionPtr /*region*/, BoxPtr /*prect*/); -extern void miTranslateRegion( +extern _X_EXPORT void miTranslateRegion( RegionPtr /*pReg*/, int /*x*/, int /*y*/); -extern void miRegionReset( +extern _X_EXPORT void miRegionReset( RegionPtr /*pReg*/, BoxPtr /*pBox*/); -extern Bool miRegionBreak( +extern _X_EXPORT Bool miRegionBreak( RegionPtr /*pReg*/); -extern Bool miPointInRegion( +extern _X_EXPORT Bool miPointInRegion( RegionPtr /*pReg*/, int /*x*/, int /*y*/, BoxPtr /*box*/); -extern Bool miRegionEqual( +extern _X_EXPORT Bool miRegionEqual( RegionPtr /*pReg1*/, RegionPtr /*pReg2*/); -extern Bool miRegionNotEmpty( +extern _X_EXPORT Bool miRegionNotEmpty( RegionPtr /*pReg*/); -extern void miRegionEmpty( +extern _X_EXPORT void miRegionEmpty( RegionPtr /*pReg*/); -extern BoxPtr miRegionExtents( +extern _X_EXPORT BoxPtr miRegionExtents( RegionPtr /*pReg*/); -extern void miPrintRegion( +extern _X_EXPORT void miPrintRegion( RegionPtr /*pReg*/); #endif /* REGIONSTRUCT_H */ diff --git a/xorg-server/include/registry.h b/xorg-server/include/registry.h index 29e5fdfd3..325f76515 100644 --- a/xorg-server/include/registry.h +++ b/xorg-server/include/registry.h @@ -28,22 +28,22 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * Registration functions. The name string is not copied, so it must * not be a stack variable. */ -void RegisterResourceName(RESTYPE type, char *name); -void RegisterExtensionNames(ExtensionEntry *ext); +extern _X_EXPORT void RegisterResourceName(RESTYPE type, char *name); +extern _X_EXPORT void RegisterExtensionNames(ExtensionEntry *ext); /* * Lookup functions. The returned string must not be modified or freed. */ -const char *LookupMajorName(int major); -const char *LookupRequestName(int major, int minor); -const char *LookupEventName(int event); -const char *LookupErrorName(int error); -const char *LookupResourceName(RESTYPE rtype); +extern _X_EXPORT const char *LookupMajorName(int major); +extern _X_EXPORT const char *LookupRequestName(int major, int minor); +extern _X_EXPORT const char *LookupEventName(int event); +extern _X_EXPORT const char *LookupErrorName(int error); +extern _X_EXPORT const char *LookupResourceName(RESTYPE rtype); /* * Setup and teardown */ -void dixResetRegistry(void); +extern _X_EXPORT void dixResetRegistry(void); #else /* XREGISTRY */ diff --git a/xorg-server/include/resource.h b/xorg-server/include/resource.h index 9b5792e30..774f81b56 100644 --- a/xorg-server/include/resource.h +++ b/xorg-server/include/resource.h @@ -122,7 +122,7 @@ typedef unsigned long RESTYPE; #define BAD_RESOURCE 0xe0000000 /* Resource state callback */ -extern CallbackListPtr ResourceStateCallback; +extern _X_EXPORT CallbackListPtr ResourceStateCallback; typedef enum {ResourceStateAdding, ResourceStateFreeing} ResourceState; @@ -154,15 +154,15 @@ typedef Bool (*FindComplexResType)( XID /*id*/, pointer /*cdata*/); -extern RESTYPE CreateNewResourceType( +extern _X_EXPORT RESTYPE CreateNewResourceType( DeleteType /*deleteFunc*/); -extern RESTYPE CreateNewResourceClass(void); +extern _X_EXPORT RESTYPE CreateNewResourceClass(void); -extern Bool InitClientResources( +extern _X_EXPORT Bool InitClientResources( ClientPtr /*client*/); -extern XID FakeClientID( +extern _X_EXPORT XID FakeClientID( int /*client*/); /* Quartz support on Mac OS X uses the CarbonCore @@ -170,81 +170,81 @@ extern XID FakeClientID( #ifdef __APPLE__ #define AddResource Darwin_X_AddResource #endif -extern Bool AddResource( +extern _X_EXPORT Bool AddResource( XID /*id*/, RESTYPE /*type*/, pointer /*value*/); -extern void FreeResource( +extern _X_EXPORT void FreeResource( XID /*id*/, RESTYPE /*skipDeleteFuncType*/); -extern void FreeResourceByType( +extern _X_EXPORT void FreeResourceByType( XID /*id*/, RESTYPE /*type*/, Bool /*skipFree*/); -extern Bool ChangeResourceValue( +extern _X_EXPORT Bool ChangeResourceValue( XID /*id*/, RESTYPE /*rtype*/, pointer /*value*/); -extern void FindClientResourcesByType( +extern _X_EXPORT void FindClientResourcesByType( ClientPtr /*client*/, RESTYPE /*type*/, FindResType /*func*/, pointer /*cdata*/); -extern void FindAllClientResources( +extern _X_EXPORT void FindAllClientResources( ClientPtr /*client*/, FindAllRes /*func*/, pointer /*cdata*/); -extern void FreeClientNeverRetainResources( +extern _X_EXPORT void FreeClientNeverRetainResources( ClientPtr /*client*/); -extern void FreeClientResources( +extern _X_EXPORT void FreeClientResources( ClientPtr /*client*/); -extern void FreeAllResources(void); +extern _X_EXPORT void FreeAllResources(void); -extern Bool LegalNewID( +extern _X_EXPORT Bool LegalNewID( XID /*id*/, ClientPtr /*client*/); -extern pointer LookupClientResourceComplex( +extern _X_EXPORT pointer LookupClientResourceComplex( ClientPtr client, RESTYPE type, FindComplexResType func, pointer cdata); -extern int dixLookupResourceByType( +extern _X_EXPORT int dixLookupResourceByType( pointer *result, XID id, RESTYPE rtype, ClientPtr client, Mask access_mode); -extern int dixLookupResourceByClass( +extern _X_EXPORT int dixLookupResourceByClass( pointer *result, XID id, RESTYPE rclass, ClientPtr client, Mask access_mode); -extern void GetXIDRange( +extern _X_EXPORT void GetXIDRange( int /*client*/, Bool /*server*/, XID * /*minp*/, XID * /*maxp*/); -extern unsigned int GetXIDList( +extern _X_EXPORT unsigned int GetXIDList( ClientPtr /*client*/, unsigned int /*count*/, XID * /*pids*/); -extern RESTYPE lastResourceType; -extern RESTYPE TypeMask; +extern _X_EXPORT RESTYPE lastResourceType; +extern _X_EXPORT RESTYPE TypeMask; /* * These are deprecated compatibility functions and will be removed soon! @@ -265,26 +265,27 @@ extern int dixLookupResource( ClientPtr client, Mask access_mode) X_DEPRECATED; -extern pointer SecurityLookupIDByType( +/* replaced by dixLookupResourceByType */ +extern _X_EXPORT pointer SecurityLookupIDByType( ClientPtr client, XID id, RESTYPE rtype, Mask access_mode) X_DEPRECATED; /* replaced by dixLookupResourceByClass */ -extern pointer SecurityLookupIDByClass( +extern _X_EXPORT pointer SecurityLookupIDByClass( ClientPtr client, XID id, RESTYPE classes, Mask access_mode) X_DEPRECATED; /* replaced by dixLookupResourceByType */ -extern pointer LookupIDByType( +extern _X_EXPORT pointer LookupIDByType( XID id, RESTYPE rtype) X_DEPRECATED; /* replaced by dixLookupResourceByClass */ -extern pointer LookupIDByClass( +extern _X_EXPORT pointer LookupIDByClass( XID id, RESTYPE classes) X_DEPRECATED; diff --git a/xorg-server/include/screenint.h b/xorg-server/include/screenint.h index 6d074a375..4e6c574e7 100644 --- a/xorg-server/include/screenint.h +++ b/xorg-server/include/screenint.h @@ -55,7 +55,7 @@ typedef struct _Visual *VisualPtr; typedef struct _Depth *DepthPtr; typedef struct _Screen *ScreenPtr; -extern int AddScreen( +extern _X_EXPORT int AddScreen( Bool (* /*pfnInit*/)( int /*index*/, ScreenPtr /*pScreen*/, diff --git a/xorg-server/include/scrnintstr.h b/xorg-server/include/scrnintstr.h index d2d4a659f..2299504c7 100644 --- a/xorg-server/include/scrnintstr.h +++ b/xorg-server/include/scrnintstr.h @@ -615,9 +615,9 @@ typedef struct _ScreenInfo { int unused; } ScreenInfo; -extern ScreenInfo screenInfo; +extern _X_EXPORT ScreenInfo screenInfo; -extern void InitOutput( +extern _X_EXPORT void InitOutput( ScreenInfo * /*pScreenInfo*/, int /*argc*/, char ** /*argv*/); diff --git a/xorg-server/include/selection.h b/xorg-server/include/selection.h index dd9b056fe..3271f6abb 100644 --- a/xorg-server/include/selection.h +++ b/xorg-server/include/selection.h @@ -70,12 +70,12 @@ typedef struct _Selection { * Selection API */ -int dixLookupSelection(Selection **result, Atom name, +extern _X_EXPORT int dixLookupSelection(Selection **result, Atom name, ClientPtr client, Mask access_mode); -extern Selection *CurrentSelections; +extern _X_EXPORT Selection *CurrentSelections; -extern CallbackListPtr SelectionCallback; +extern _X_EXPORT CallbackListPtr SelectionCallback; typedef enum { SelectionSetOwner, @@ -94,11 +94,11 @@ typedef struct { * Selection server internals */ -void InitSelections(void); +extern _X_EXPORT void InitSelections(void); -void DeleteWindowFromAnySelections(WindowPtr pWin); +extern _X_EXPORT void DeleteWindowFromAnySelections(WindowPtr pWin); -void DeleteClientFromAnySelections(ClientPtr client); +extern _X_EXPORT void DeleteClientFromAnySelections(ClientPtr client); #endif /* SELECTION_H */ diff --git a/xorg-server/include/servermd.h b/xorg-server/include/servermd.h index 8cc20f000..c851d19bc 100644 --- a/xorg-server/include/servermd.h +++ b/xorg-server/include/servermd.h @@ -294,6 +294,7 @@ SOFTWARE. #define LOG2_BYTES_PER_SCANLINE_PAD 2 #endif +#include <X11/Xfuncproto.h> /* * This returns the number of padding units, for depth d and width w. * For bitmaps this can be calculated with the macros above. @@ -309,7 +310,7 @@ typedef struct _PaddingInfo { int bytesPerPixel; /* only set when notPower2 is TRUE */ int bitsPerPixel; /* bits per pixel */ } PaddingInfo; -extern PaddingInfo PixmapWidthPaddingInfo[]; +extern _X_EXPORT PaddingInfo PixmapWidthPaddingInfo[]; /* The only portable way to get the bpp from the depth is to look it up */ #define BitsPerPixel(d) (PixmapWidthPaddingInfo[d].bitsPerPixel) diff --git a/xorg-server/include/site.h b/xorg-server/include/site.h index 56c802d07..7dcbd7e6f 100644 --- a/xorg-server/include/site.h +++ b/xorg-server/include/site.h @@ -90,11 +90,7 @@ SOFTWARE. #define DEFAULT_BELL 50 #define DEFAULT_BELL_PITCH 400 #define DEFAULT_BELL_DURATION 100 -#ifdef XKB #define DEFAULT_AUTOREPEAT TRUE -#else -#define DEFAULT_AUTOREPEAT FALSE -#endif #define DEFAULT_AUTOREPEATS {\ 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\ diff --git a/xorg-server/include/swaprep.h b/xorg-server/include/swaprep.h index bebd3a814..8c02737d3 100644 --- a/xorg-server/include/swaprep.h +++ b/xorg-server/include/swaprep.h @@ -26,239 +26,239 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef SWAPREP_H #define SWAPREP_H 1 -extern void Swap32Write( +extern _X_EXPORT void Swap32Write( ClientPtr /* pClient */, int /* size */, CARD32 * /* pbuf */); -extern void CopySwap32Write( +extern _X_EXPORT void CopySwap32Write( ClientPtr /* pClient */, int /* size */, CARD32 * /* pbuf */); -extern void CopySwap16Write( +extern _X_EXPORT void CopySwap16Write( ClientPtr /* pClient */, int /* size */, short * /* pbuf */); -extern void SGenericReply( +extern _X_EXPORT void SGenericReply( ClientPtr /* pClient */, int /* size */, xGenericReply * /* pRep */); -extern void SGetWindowAttributesReply( +extern _X_EXPORT void SGetWindowAttributesReply( ClientPtr /* pClient */, int /* size */, xGetWindowAttributesReply * /* pRep */); -extern void SGetGeometryReply( +extern _X_EXPORT void SGetGeometryReply( ClientPtr /* pClient */, int /* size */, xGetGeometryReply * /* pRep */); -extern void SQueryTreeReply( +extern _X_EXPORT void SQueryTreeReply( ClientPtr /* pClient */, int /* size */, xQueryTreeReply * /* pRep */); -extern void SInternAtomReply( +extern _X_EXPORT void SInternAtomReply( ClientPtr /* pClient */, int /* size */, xInternAtomReply * /* pRep */); -extern void SGetAtomNameReply( +extern _X_EXPORT void SGetAtomNameReply( ClientPtr /* pClient */, int /* size */, xGetAtomNameReply * /* pRep */); -extern void SGetPropertyReply( +extern _X_EXPORT void SGetPropertyReply( ClientPtr /* pClient */, int /* size */, xGetPropertyReply * /* pRep */); -extern void SListPropertiesReply( +extern _X_EXPORT void SListPropertiesReply( ClientPtr /* pClient */, int /* size */, xListPropertiesReply * /* pRep */); -extern void SGetSelectionOwnerReply( +extern _X_EXPORT void SGetSelectionOwnerReply( ClientPtr /* pClient */, int /* size */, xGetSelectionOwnerReply * /* pRep */); -extern void SQueryPointerReply( +extern _X_EXPORT void SQueryPointerReply( ClientPtr /* pClient */, int /* size */, xQueryPointerReply * /* pRep */); -extern void SwapTimeCoordWrite( +extern _X_EXPORT void SwapTimeCoordWrite( ClientPtr /* pClient */, int /* size */, xTimecoord * /* pRep */); -extern void SGetMotionEventsReply( +extern _X_EXPORT void SGetMotionEventsReply( ClientPtr /* pClient */, int /* size */, xGetMotionEventsReply * /* pRep */); -extern void STranslateCoordsReply( +extern _X_EXPORT void STranslateCoordsReply( ClientPtr /* pClient */, int /* size */, xTranslateCoordsReply * /* pRep */); -extern void SGetInputFocusReply( +extern _X_EXPORT void SGetInputFocusReply( ClientPtr /* pClient */, int /* size */, xGetInputFocusReply * /* pRep */); -extern void SQueryKeymapReply( +extern _X_EXPORT void SQueryKeymapReply( ClientPtr /* pClient */, int /* size */, xQueryKeymapReply * /* pRep */); -extern void SQueryFontReply( +extern _X_EXPORT void SQueryFontReply( ClientPtr /* pClient */, int /* size */, xQueryFontReply * /* pRep */); -extern void SQueryTextExtentsReply( +extern _X_EXPORT void SQueryTextExtentsReply( ClientPtr /* pClient */, int /* size */, xQueryTextExtentsReply * /* pRep */); -extern void SListFontsReply( +extern _X_EXPORT void SListFontsReply( ClientPtr /* pClient */, int /* size */, xListFontsReply * /* pRep */); -extern void SListFontsWithInfoReply( +extern _X_EXPORT void SListFontsWithInfoReply( ClientPtr /* pClient */, int /* size */, xListFontsWithInfoReply * /* pRep */); -extern void SGetFontPathReply( +extern _X_EXPORT void SGetFontPathReply( ClientPtr /* pClient */, int /* size */, xGetFontPathReply * /* pRep */); -extern void SGetImageReply( +extern _X_EXPORT void SGetImageReply( ClientPtr /* pClient */, int /* size */, xGetImageReply * /* pRep */); -extern void SListInstalledColormapsReply( +extern _X_EXPORT void SListInstalledColormapsReply( ClientPtr /* pClient */, int /* size */, xListInstalledColormapsReply * /* pRep */); -extern void SAllocColorReply( +extern _X_EXPORT void SAllocColorReply( ClientPtr /* pClient */, int /* size */, xAllocColorReply * /* pRep */); -extern void SAllocNamedColorReply( +extern _X_EXPORT void SAllocNamedColorReply( ClientPtr /* pClient */, int /* size */, xAllocNamedColorReply * /* pRep */); -extern void SAllocColorCellsReply( +extern _X_EXPORT void SAllocColorCellsReply( ClientPtr /* pClient */, int /* size */, xAllocColorCellsReply * /* pRep */); -extern void SAllocColorPlanesReply( +extern _X_EXPORT void SAllocColorPlanesReply( ClientPtr /* pClient */, int /* size */, xAllocColorPlanesReply * /* pRep */); -extern void SQColorsExtend( +extern _X_EXPORT void SQColorsExtend( ClientPtr /* pClient */, int /* size */, xrgb * /* prgb */); -extern void SQueryColorsReply( +extern _X_EXPORT void SQueryColorsReply( ClientPtr /* pClient */, int /* size */, xQueryColorsReply * /* pRep */); -extern void SLookupColorReply( +extern _X_EXPORT void SLookupColorReply( ClientPtr /* pClient */, int /* size */, xLookupColorReply * /* pRep */); -extern void SQueryBestSizeReply( +extern _X_EXPORT void SQueryBestSizeReply( ClientPtr /* pClient */, int /* size */, xQueryBestSizeReply * /* pRep */); -extern void SListExtensionsReply( +extern _X_EXPORT void SListExtensionsReply( ClientPtr /* pClient */, int /* size */, xListExtensionsReply * /* pRep */); -extern void SGetKeyboardMappingReply( +extern _X_EXPORT void SGetKeyboardMappingReply( ClientPtr /* pClient */, int /* size */, xGetKeyboardMappingReply * /* pRep */); -extern void SGetPointerMappingReply( +extern _X_EXPORT void SGetPointerMappingReply( ClientPtr /* pClient */, int /* size */, xGetPointerMappingReply * /* pRep */); -extern void SGetModifierMappingReply( +extern _X_EXPORT void SGetModifierMappingReply( ClientPtr /* pClient */, int /* size */, xGetModifierMappingReply * /* pRep */); -extern void SGetKeyboardControlReply( +extern _X_EXPORT void SGetKeyboardControlReply( ClientPtr /* pClient */, int /* size */, xGetKeyboardControlReply * /* pRep */); -extern void SGetPointerControlReply( +extern _X_EXPORT void SGetPointerControlReply( ClientPtr /* pClient */, int /* size */, xGetPointerControlReply * /* pRep */); -extern void SGetScreenSaverReply( +extern _X_EXPORT void SGetScreenSaverReply( ClientPtr /* pClient */, int /* size */, xGetScreenSaverReply * /* pRep */); -extern void SLHostsExtend( +extern _X_EXPORT void SLHostsExtend( ClientPtr /* pClient */, int /* size */, char * /* buf */); -extern void SListHostsReply( +extern _X_EXPORT void SListHostsReply( ClientPtr /* pClient */, int /* size */, xListHostsReply * /* pRep */); -extern void SErrorEvent( +extern _X_EXPORT void SErrorEvent( xError * /* from */, xError * /* to */); -extern void SwapConnSetupInfo( +extern _X_EXPORT void SwapConnSetupInfo( char * /* pInfo */, char * /* pInfoTBase */); -extern void WriteSConnectionInfo( +extern _X_EXPORT void WriteSConnectionInfo( ClientPtr /* pClient */, unsigned long /* size */, char * /* pInfo */); -extern void SwapConnSetupPrefix( +extern _X_EXPORT void SwapConnSetupPrefix( xConnSetupPrefix * /* pcspFrom */, xConnSetupPrefix * /* pcspTo */); -extern void WriteSConnSetupPrefix( +extern _X_EXPORT void WriteSConnSetupPrefix( ClientPtr /* pClient */, xConnSetupPrefix * /* pcsp */); #undef SWAPREP_PROC -#define SWAPREP_PROC(func) void func(xEvent * /* from */, xEvent * /* to */) +#define SWAPREP_PROC(func) extern _X_EXPORT void func(xEvent * /* from */, xEvent * /* to */) SWAPREP_PROC(SCirculateEvent); SWAPREP_PROC(SClientMessageEvent); diff --git a/xorg-server/include/swapreq.h b/xorg-server/include/swapreq.h index 83e524bab..8038f0272 100644 --- a/xorg-server/include/swapreq.h +++ b/xorg-server/include/swapreq.h @@ -26,15 +26,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef SWAPREQ_H #define SWAPREQ_H 1 -extern void SwapColorItem( +extern _X_EXPORT void SwapColorItem( xColorItem * /* pItem */); -extern void SwapConnClientPrefix( +extern _X_EXPORT void SwapConnClientPrefix( xConnClientPrefix * /* pCCP */); #undef SWAPREQ_PROC -#define SWAPREQ_PROC(func) int func(ClientPtr /* client */) +#define SWAPREQ_PROC(func) extern _X_EXPORT int func(ClientPtr /* client */) SWAPREQ_PROC(SProcAllocColor); SWAPREQ_PROC(SProcAllocColorCells); diff --git a/xorg-server/include/version-config.h b/xorg-server/include/version-config.h new file mode 100644 index 000000000..8bae75eaa --- /dev/null +++ b/xorg-server/include/version-config.h @@ -0,0 +1,16 @@ +/* version-config.h.in: not generated */ + +#ifndef VERSION_CONFIG_H +#define VERSION_CONFIG_H + +/* Vendor man version */ +#undef VENDOR_MAN_VERSION + +/* Vendor name */ +#define VENDOR_NAME "HMCA" + +/* Vendor release */ +#define VENDOR_RELEASE XORG_VERSION_CURRENT + +#endif /* VERSION_CONFIG_H */ + diff --git a/xorg-server/include/version-config.h.in b/xorg-server/include/version-config.h.in new file mode 100644 index 000000000..8180dff8e --- /dev/null +++ b/xorg-server/include/version-config.h.in @@ -0,0 +1,16 @@ +/* version-config.h.in: not generated */ + +#ifndef VERSION_CONFIG_H +#define VERSION_CONFIG_H + +/* Vendor man version */ +#undef VENDOR_MAN_VERSION + +/* Vendor name */ +#undef VENDOR_NAME + +/* Vendor release */ +#undef VENDOR_RELEASE + +#endif /* VERSION_CONFIG_H */ + diff --git a/xorg-server/include/window.h b/xorg-server/include/window.h index 04cbe2627..6fb2f8c18 100644 --- a/xorg-server/include/window.h +++ b/xorg-server/include/window.h @@ -77,30 +77,30 @@ typedef int (*VisitWindowProcPtr)( WindowPtr /*pWin*/, pointer /*data*/); -extern int TraverseTree( +extern _X_EXPORT int TraverseTree( WindowPtr /*pWin*/, VisitWindowProcPtr /*func*/, pointer /*data*/); -extern int WalkTree( +extern _X_EXPORT int WalkTree( ScreenPtr /*pScreen*/, VisitWindowProcPtr /*func*/, pointer /*data*/); -extern Bool CreateRootWindow( +extern _X_EXPORT Bool CreateRootWindow( ScreenPtr /*pScreen*/); -extern void InitRootWindow( +extern _X_EXPORT void InitRootWindow( WindowPtr /*pWin*/); typedef WindowPtr (* RealChildHeadProc) (WindowPtr pWin); -void RegisterRealChildHeadProc (RealChildHeadProc proc); +extern _X_EXPORT void RegisterRealChildHeadProc (RealChildHeadProc proc); -extern WindowPtr RealChildHead( +extern _X_EXPORT WindowPtr RealChildHead( WindowPtr /*pWin*/); -extern WindowPtr CreateWindow( +extern _X_EXPORT WindowPtr CreateWindow( Window /*wid*/, WindowPtr /*pParent*/, int /*x*/, @@ -116,11 +116,11 @@ extern WindowPtr CreateWindow( VisualID /*visual*/, int* /*error*/); -extern int DeleteWindow( +extern _X_EXPORT int DeleteWindow( pointer /*pWin*/, XID /*wid*/); -extern int DestroySubwindows( +extern _X_EXPORT int DestroySubwindows( WindowPtr /*pWin*/, ClientPtr /*client*/); @@ -129,18 +129,18 @@ extern int DestroySubwindows( #ifdef __APPLE__ #define ChangeWindowAttributes Darwin_X_ChangeWindowAttributes #endif -extern int ChangeWindowAttributes( +extern _X_EXPORT int ChangeWindowAttributes( WindowPtr /*pWin*/, Mask /*vmask*/, XID* /*vlist*/, ClientPtr /*client*/); -extern int ChangeWindowDeviceCursor( +extern _X_EXPORT int ChangeWindowDeviceCursor( WindowPtr /*pWin*/, struct _DeviceIntRec* /*pDev*/, struct _Cursor* /*pCursor*/); -extern struct _Cursor* WindowGetDeviceCursor( +extern _X_EXPORT struct _Cursor* WindowGetDeviceCursor( WindowPtr /*pWin*/, struct _DeviceIntRec* /*pDev*/); @@ -150,16 +150,13 @@ extern struct _Cursor* WindowGetDeviceCursor( #define GetWindowAttributes(w,c,x) Darwin_X_GetWindowAttributes(w,c,x) extern void Darwin_X_GetWindowAttributes( #else -extern void GetWindowAttributes( +extern _X_EXPORT void GetWindowAttributes( #endif WindowPtr /*pWin*/, ClientPtr /*client*/, xGetWindowAttributesReply* /* wa */); -extern RegionPtr CreateUnclippedWinSize( - WindowPtr /*pWin*/); - -extern void GravityTranslate( +extern _X_EXPORT void GravityTranslate( int /*x*/, int /*y*/, int /*oldx*/, @@ -170,103 +167,103 @@ extern void GravityTranslate( int* /*destx*/, int* /*desty*/); -extern int ConfigureWindow( +extern _X_EXPORT int ConfigureWindow( WindowPtr /*pWin*/, Mask /*mask*/, XID* /*vlist*/, ClientPtr /*client*/); -extern int CirculateWindow( +extern _X_EXPORT int CirculateWindow( WindowPtr /*pParent*/, int /*direction*/, ClientPtr /*client*/); -extern int ReparentWindow( +extern _X_EXPORT int ReparentWindow( WindowPtr /*pWin*/, WindowPtr /*pParent*/, int /*x*/, int /*y*/, ClientPtr /*client*/); -extern int MapWindow( +extern _X_EXPORT int MapWindow( WindowPtr /*pWin*/, ClientPtr /*client*/); -extern void MapSubwindows( +extern _X_EXPORT void MapSubwindows( WindowPtr /*pParent*/, ClientPtr /*client*/); -extern int UnmapWindow( +extern _X_EXPORT int UnmapWindow( WindowPtr /*pWin*/, Bool /*fromConfigure*/); -extern void UnmapSubwindows( +extern _X_EXPORT void UnmapSubwindows( WindowPtr /*pWin*/); -extern void HandleSaveSet( +extern _X_EXPORT void HandleSaveSet( ClientPtr /*client*/); -extern Bool PointInWindowIsVisible( +extern _X_EXPORT Bool PointInWindowIsVisible( WindowPtr /*pWin*/, int /*x*/, int /*y*/); -extern RegionPtr NotClippedByChildren( +extern _X_EXPORT RegionPtr NotClippedByChildren( WindowPtr /*pWin*/); -extern void SendVisibilityNotify( +extern _X_EXPORT void SendVisibilityNotify( WindowPtr /*pWin*/); -extern int dixSaveScreens( +extern _X_EXPORT int dixSaveScreens( ClientPtr client, int on, int mode); -extern int SaveScreens( +extern _X_EXPORT int SaveScreens( int on, int mode); -extern WindowPtr FindWindowWithOptional( +extern _X_EXPORT WindowPtr FindWindowWithOptional( WindowPtr /*w*/); -extern void CheckWindowOptionalNeed( +extern _X_EXPORT void CheckWindowOptionalNeed( WindowPtr /*w*/); -extern Bool MakeWindowOptional( +extern _X_EXPORT Bool MakeWindowOptional( WindowPtr /*pWin*/); -extern WindowPtr MoveWindowInStack( +extern _X_EXPORT WindowPtr MoveWindowInStack( WindowPtr /*pWin*/, WindowPtr /*pNextSib*/); -void SetWinSize( +extern _X_EXPORT void SetWinSize( WindowPtr /*pWin*/); -void SetBorderSize( +extern _X_EXPORT void SetBorderSize( WindowPtr /*pWin*/); -void ResizeChildrenWinSize( +extern _X_EXPORT void ResizeChildrenWinSize( WindowPtr /*pWin*/, int /*dx*/, int /*dy*/, int /*dw*/, int /*dh*/); -extern void ShapeExtensionInit(void); +extern _X_EXPORT void ShapeExtensionInit(void); -extern void SendShapeNotify( +extern _X_EXPORT void SendShapeNotify( WindowPtr /* pWin */, int /* which */ ); -extern RegionPtr CreateBoundingShape( +extern _X_EXPORT RegionPtr CreateBoundingShape( WindowPtr /* pWin */ ); -extern RegionPtr CreateClipShape( +extern _X_EXPORT RegionPtr CreateClipShape( WindowPtr /* pWin */ ); -extern void DisableMapUnmapEvents( +extern _X_EXPORT void DisableMapUnmapEvents( WindowPtr /* pWin */ ); -extern void EnableMapUnmapEvents( +extern _X_EXPORT void EnableMapUnmapEvents( WindowPtr /* pWin */ ); #endif /* WINDOW_H */ diff --git a/xorg-server/include/windowstr.h b/xorg-server/include/windowstr.h index e7f4691d9..94e04ead2 100644 --- a/xorg-server/include/windowstr.h +++ b/xorg-server/include/windowstr.h @@ -59,7 +59,6 @@ SOFTWARE. #include "miscstruct.h" #include <X11/Xprotostr.h> #include "opaque.h" -#include "inputstr.h" #define GuaranteeNothing 0 #define GuaranteeVisBack 1 @@ -79,24 +78,6 @@ typedef struct _DevCursorNode { struct _DevCursorNode* next; } DevCursNodeRec, *DevCursNodePtr, *DevCursorList; -/* Mask structure for GE extension as stored on the window. - * Allows one mask per extension. - * .eventMask - Summary mask for all clients, used for quick checking. - * .geClients - list of clients with their specific mask. - */ -typedef struct _GenericClientMasks { - Mask eventMasks[MAXEXTENSIONS]; - GenericMaskPtr geClients; -} GenericClientMasksRec, *GenericClientMasksPtr; - -typedef struct _WindowAccessRec { - int defaultRule; /* WindowAccessDenyAll */ - DeviceIntPtr* perm; - int nperm; - DeviceIntPtr* deny; - int ndeny; -} WindowAccessRec, *WindowAccessPtr; - typedef struct _WindowOpt { VisualID visual; /* default: same as parent */ CursorPtr cursor; /* default: window.cursorNone */ @@ -113,8 +94,6 @@ typedef struct _WindowOpt { RegionPtr inputShape; /* default: NULL */ struct _OtherInputMasks *inputMasks; /* default: NULL */ DevCursorList deviceCursors; /* default: NULL */ - struct _GenericClientMasks *geMasks; /* default: NULL */ - WindowAccessRec access; } WindowOptRec, *WindowOptPtr; #define BackgroundPixel 2L @@ -162,8 +141,8 @@ typedef struct _Window { RegionRec borderSize; DDXPointRec origin; /* position relative to parent */ unsigned short borderWidth; - unsigned long deliverableEvents; - Mask eventMask; + unsigned long deliverableEvents; /* all masks from all clients */ + Mask eventMask; /* mask from the creating client */ PixUnion background; PixUnion border; pointer backStorage; /* null when BS disabled */ @@ -195,7 +174,7 @@ typedef struct _Window { * fields (or filling the appropriate default value) */ -extern Mask DontPropagateMasks[]; +extern _X_EXPORT Mask DontPropagateMasks[]; #define wTrackParent(w,field) ((w)->optional ? \ (w)->optional->field \ @@ -242,7 +221,7 @@ typedef struct _ScreenSaverStuff { #define HasSaverWindow(i) (savedScreenInfo[i].pWindow != NullWindow) -extern int screenIsSaved; -extern ScreenSaverStuffRec savedScreenInfo[MAXSCREENS]; +extern _X_EXPORT int screenIsSaved; +extern _X_EXPORT ScreenSaverStuffRec savedScreenInfo[MAXSCREENS]; #endif /* WINDOWSTRUCT_H */ diff --git a/xorg-server/include/xkb-config.h b/xorg-server/include/xkb-config.h index 91c7957bf..9f7dac59e 100644 --- a/xorg-server/include/xkb-config.h +++ b/xorg-server/include/xkb-config.h @@ -7,7 +7,19 @@ #define _XKB_CONFIG_H_ /* Default set of XKB rules. */ -#define __XKBDEFRULES__ "xorg" +#define XKB_DFLT_RULES "xorg" + +/* Default XKB model. */ +#define XKB_DFLT_MODEL "pc104" + +/* Default XKB layout. */ +#define XKB_DFLT_LAYOUT "us" + +/* Default XKB variant. */ +#define XKB_DFLT_VARIANT "" + +/* Default XKB options. */ +#define XKB_DFLT_OPTIONS "" /* Path to XKB definitions. */ #define XKB_BASE_DIRECTORY "xkbdata" diff --git a/xorg-server/include/xkb-config.h.in b/xorg-server/include/xkb-config.h.in index 29261def7..d3cdd1916 100644 --- a/xorg-server/include/xkb-config.h.in +++ b/xorg-server/include/xkb-config.h.in @@ -6,7 +6,19 @@ #define _XKB_CONFIG_H_ /* Default set of XKB rules. */ -#undef __XKBDEFRULES__ +#undef XKB_DFLT_RULES + +/* Default XKB model. */ +#undef XKB_DFLT_MODEL + +/* Default XKB layout. */ +#undef XKB_DFLT_LAYOUT + +/* Default XKB variant. */ +#undef XKB_DFLT_VARIANT + +/* Default XKB options. */ +#undef XKB_DFLT_OPTIONS /* Path to XKB definitions. */ #undef XKB_BASE_DIRECTORY diff --git a/xorg-server/include/xkbfile.h b/xorg-server/include/xkbfile.h index 948d6ca4a..a4b99ee07 100644 --- a/xorg-server/include/xkbfile.h +++ b/xorg-server/include/xkbfile.h @@ -27,6 +27,8 @@ #ifndef _XKBFILE_H_ #define _XKBFILE_H_ 1 +#include "xkbstr.h" + /***====================================================================***/ #define XkbXKMFile 0 @@ -76,116 +78,101 @@ typedef void (*XkbFileAddOnFunc)( #define _XkbErrXReqFailure 25 #define _XkbErrBadImplementation 26 -extern char * _XkbErrMessages[]; -extern unsigned _XkbErrCode; -extern char * _XkbErrLocation; -extern unsigned _XkbErrData; - /***====================================================================***/ _XFUNCPROTOBEGIN -extern char * XkbIndentText( +extern _X_EXPORT char * XkbIndentText( unsigned /* size */ ); -extern char * XkbAtomText( +extern _X_EXPORT char * XkbAtomText( Atom /* atm */, unsigned /* format */ ); -extern char * XkbKeysymText( +extern _X_EXPORT char * XkbKeysymText( KeySym /* sym */, unsigned /* format */ ); -extern char * XkbStringText( +extern _X_EXPORT char * XkbStringText( char * /* str */, unsigned /* format */ ); -extern char * XkbKeyNameText( +extern _X_EXPORT char * XkbKeyNameText( char * /* name */, unsigned /* format */ ); -extern char * +extern _X_EXPORT char * XkbModIndexText( unsigned /* ndx */, unsigned /* format */ ); -extern char * +extern _X_EXPORT char * XkbModMaskText( unsigned /* mask */, unsigned /* format */ ); -extern char * XkbVModIndexText( +extern _X_EXPORT char * XkbVModIndexText( XkbDescPtr /* xkb */, unsigned /* ndx */, unsigned /* format */ ); -extern char * XkbVModMaskText( +extern _X_EXPORT char * XkbVModMaskText( XkbDescPtr /* xkb */, unsigned /* modMask */, unsigned /* mask */, unsigned /* format */ ); -extern char * XkbConfigText( +extern _X_EXPORT char * XkbConfigText( unsigned /* config */, unsigned /* format */ ); -extern char * XkbSIMatchText( +extern _X_EXPORT char * XkbSIMatchText( unsigned /* type */, unsigned /* format */ ); -extern char * XkbIMWhichStateMaskText( +extern _X_EXPORT char * XkbIMWhichStateMaskText( unsigned /* use_which */, unsigned /* format */ ); -extern char * XkbAccessXDetailText( - unsigned /* state */, - unsigned /* format */ -); - -extern char * XkbNKNDetailMaskText( - unsigned /* detail */, - unsigned /* format */ -); - -extern char * XkbControlsMaskText( +extern _X_EXPORT char * XkbControlsMaskText( unsigned /* ctrls */, unsigned /* format */ ); -extern char * XkbGeomFPText( +extern _X_EXPORT char * XkbGeomFPText( int /* val */, unsigned /* format */ ); -extern char * XkbDoodadTypeText( +extern _X_EXPORT char * XkbDoodadTypeText( unsigned /* type */, unsigned /* format */ ); -extern char * XkbActionTypeText( +extern _X_EXPORT char * XkbActionTypeText( unsigned /* type */, unsigned /* format */ ); -extern char * XkbActionText( +extern _X_EXPORT char * XkbActionText( XkbDescPtr /* xkb */, XkbAction * /* action */, unsigned /* format */ ); -extern char * XkbBehaviorText( +extern _X_EXPORT char * XkbBehaviorText( XkbDescPtr /* xkb */, XkbBehavior * /* behavior */, unsigned /* format */ @@ -202,33 +189,23 @@ extern char * XkbBehaviorText( #define XkbKSIsDeadKey(k) \ (((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound)) -extern unsigned _XkbKSCheckCase( +extern _X_EXPORT unsigned _XkbKSCheckCase( KeySym /* sym */ ); -extern int XkbFindKeycodeByName( +extern _X_EXPORT int XkbFindKeycodeByName( XkbDescPtr /* xkb */, char * /* name */, Bool /* use_aliases */ ); -extern Bool XkbLookupGroupAndLevel( - XkbDescPtr /* xkb */, - int /* key */, - int * /* mods_inout */, - int * /* grp_inout */, - int * /* lvl_rtrn */ -); - /***====================================================================***/ -extern Atom XkbInternAtom( +extern _X_EXPORT Atom XkbInternAtom( char * /* name */, Bool /* onlyIfExists */ ); -extern void XkbInitAtoms(void); - /***====================================================================***/ #ifdef _XKBGEOM_H_ @@ -246,39 +223,23 @@ typedef struct _XkbDrawable { struct _XkbDrawable * next; } XkbDrawableRec,*XkbDrawablePtr; -extern XkbDrawablePtr -XkbGetOrderedDrawables( - XkbGeometryPtr /* geom */, - XkbSectionPtr /* section */ -); - -extern void -XkbFreeOrderedDrawables( - XkbDrawablePtr /* draw */ -); - #endif /***====================================================================***/ -extern unsigned XkbConvertGetByNameComponents( +extern _X_EXPORT unsigned XkbConvertGetByNameComponents( Bool /* toXkm */, unsigned /* orig */ ); -extern unsigned XkbConvertXkbComponents( - Bool /* toXkm */, - unsigned /* orig */ -); - -extern Bool XkbNameMatchesPattern( +extern _X_EXPORT Bool XkbNameMatchesPattern( char * /* name */, char * /* pattern */ ); /***====================================================================***/ -extern Bool XkbWriteXKBKeycodes( +extern _X_EXPORT Bool XkbWriteXKBKeycodes( FILE * /* file */, XkbDescPtr /* result */, Bool /* topLevel */, @@ -287,7 +248,7 @@ extern Bool XkbWriteXKBKeycodes( void * /* priv */ ); -extern Bool XkbWriteXKBKeyTypes( +extern _X_EXPORT Bool XkbWriteXKBKeyTypes( FILE * /* file */, XkbDescPtr /* result */, Bool /* topLevel */, @@ -296,34 +257,7 @@ extern Bool XkbWriteXKBKeyTypes( void * /* priv */ ); -extern Bool XkbWriteXKBCompatMap( - FILE * /* file */, - XkbDescPtr /* result */, - Bool /* topLevel */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -); - -extern Bool XkbWriteXKBSymbols( - FILE * /* file */, - XkbDescPtr /* result */, - Bool /* topLevel */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -); - -extern Bool XkbWriteXKBGeometry( - FILE * /* file */, - XkbDescPtr /* result */, - Bool /* topLevel */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -); - -extern Bool XkbWriteXKBSemantics( +extern _X_EXPORT Bool XkbWriteXKBCompatMap( FILE * /* file */, XkbDescPtr /* result */, Bool /* topLevel */, @@ -332,7 +266,7 @@ extern Bool XkbWriteXKBSemantics( void * /* priv */ ); -extern Bool XkbWriteXKBLayout( +extern _X_EXPORT Bool XkbWriteXKBSymbols( FILE * /* file */, XkbDescPtr /* result */, Bool /* topLevel */, @@ -341,7 +275,7 @@ extern Bool XkbWriteXKBLayout( void * /* priv */ ); -extern Bool XkbWriteXKBKeymap( +extern _X_EXPORT Bool XkbWriteXKBGeometry( FILE * /* file */, XkbDescPtr /* result */, Bool /* topLevel */, @@ -350,34 +284,7 @@ extern Bool XkbWriteXKBKeymap( void * /* priv */ ); -extern Bool XkbWriteXKBFile( - FILE * /* file */, - XkbDescPtr /* result */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -); - -extern Bool XkbWriteCFile( - FILE * /* file */, - char * /* name */, - XkbDescPtr /* info */ -); - -extern Bool XkbWriteXKMFile( - FILE * /* file */, - XkbDescPtr /* result */ -); - -extern Bool XkbWriteToServer( - XkbDescPtr /* result */ -); - -extern void XkbEnsureSafeMapName( - char * /* name */ -); - -extern Bool XkbWriteXKBKeymapForNames( +extern _X_EXPORT Bool XkbWriteXKBKeymapForNames( FILE * /* file */, XkbComponentNamesPtr /* names */, XkbDescPtr /* xkb */, @@ -385,17 +292,13 @@ extern Bool XkbWriteXKBKeymapForNames( unsigned /* need */ ); -extern Status XkbMergeFile( - XkbDescPtr /* xkb */ -); - /***====================================================================***/ -extern Bool XkmProbe( +extern _X_EXPORT Bool XkmProbe( FILE * /* file */ ); -extern unsigned XkmReadFile( +extern _X_EXPORT unsigned XkmReadFile( FILE * /* file */, unsigned /* need */, unsigned /* want */, diff --git a/xorg-server/include/xkbrules.h b/xorg-server/include/xkbrules.h index 648e2e9c6..0f3f93490 100644 --- a/xorg-server/include/xkbrules.h +++ b/xorg-server/include/xkbrules.h @@ -29,28 +29,21 @@ /***====================================================================***/ +typedef struct _XkbRMLVOSet { + char * rules; + char * model; + char * layout; + char * variant; + char * options; +} XkbRMLVOSet; + typedef struct _XkbRF_VarDefs { char * model; char * layout; char * variant; char * options; - unsigned short sz_extra; - unsigned short num_extra; - char * extra_names; - char ** extra_values; } XkbRF_VarDefsRec,*XkbRF_VarDefsPtr; -typedef struct _XkbRF_VarDesc { - char * name; - char * desc; -} XkbRF_VarDescRec, *XkbRF_VarDescPtr; - -typedef struct _XkbRF_DescribeVars { - int sz_desc; - int num_desc; - XkbRF_VarDescPtr desc; -} XkbRF_DescribeVarsRec,*XkbRF_DescribeVarsPtr; - typedef struct _XkbRF_Rule { int number; int layout_num; @@ -65,7 +58,6 @@ typedef struct _XkbRF_Rule { char * types; char * compat; char * geometry; - char * keymap; unsigned flags; } XkbRF_RuleRec,*XkbRF_RulePtr; @@ -82,15 +74,6 @@ typedef struct _XkbRF_Group { #define XkbRF_Invalid (1L<<5) typedef struct _XkbRF_Rules { - XkbRF_DescribeVarsRec models; - XkbRF_DescribeVarsRec layouts; - XkbRF_DescribeVarsRec variants; - XkbRF_DescribeVarsRec options; - unsigned short sz_extra; - unsigned short num_extra; - char ** extra_names; - XkbRF_DescribeVarsPtr extra; - unsigned short sz_rules; unsigned short num_rules; XkbRF_RulePtr rules; @@ -103,24 +86,21 @@ typedef struct _XkbRF_Rules { _XFUNCPROTOBEGIN -extern Bool XkbRF_GetComponents( +/* Seems preferable to dragging xkbstr.h in. */ +struct _XkbComponentNames; + +extern _X_EXPORT Bool XkbRF_GetComponents( XkbRF_RulesPtr /* rules */, XkbRF_VarDefsPtr /* var_defs */, - XkbComponentNamesPtr /* names */ -); - -extern XkbRF_RulePtr XkbRF_AddRule( - XkbRF_RulesPtr /* rules */ + struct _XkbComponentNames * /* names */ ); -extern XkbRF_GroupPtr XkbRF_AddGroup(XkbRF_RulesPtr rules); - -extern Bool XkbRF_LoadRules( +extern _X_EXPORT Bool XkbRF_LoadRules( FILE * /* file */, XkbRF_RulesPtr /* rules */ ); -extern Bool XkbRF_LoadRulesByName( +extern _X_EXPORT Bool XkbRF_LoadRulesByName( char * /* base */, char * /* locale */, XkbRF_RulesPtr /* rules */ @@ -128,51 +108,13 @@ extern Bool XkbRF_LoadRulesByName( /***====================================================================***/ -extern XkbRF_VarDescPtr XkbRF_AddVarDesc( - XkbRF_DescribeVarsPtr /* vars */ -); - -extern XkbRF_VarDescPtr XkbRF_AddVarDescCopy( - XkbRF_DescribeVarsPtr /* vars */, - XkbRF_VarDescPtr /* copy_from */ -); - -extern XkbRF_DescribeVarsPtr XkbRF_AddVarToDescribe( - XkbRF_RulesPtr /* rules */, - char * /* name */ -); - -extern Bool XkbRF_LoadDescriptions( - FILE * /* file */, - XkbRF_RulesPtr /* rules */ -); +extern _X_EXPORT XkbRF_RulesPtr XkbRF_Create(void); -extern Bool XkbRF_LoadDescriptionsByName( - char * /* base */, - char * /* locale */, - XkbRF_RulesPtr /* rules */ -); - -extern XkbRF_RulesPtr XkbRF_Load( - char * /* base */, - char * /* locale */, - Bool /* wantDesc */, - Bool /* wantRules */ -); - -extern XkbRF_RulesPtr XkbRF_Create( - int /* sz_rules */, - int /* sz_extra */ -); - -/***====================================================================***/ - -extern void XkbRF_Free( +extern _X_EXPORT void XkbRF_Free( XkbRF_RulesPtr /* rules */, Bool /* freeRules */ ); - /***====================================================================***/ #define _XKB_RF_NAMES_PROP_ATOM "_XKB_RULES_NAMES" diff --git a/xorg-server/include/xkbsrv.h b/xorg-server/include/xkbsrv.h index 03bf1fb03..28153de23 100644 --- a/xorg-server/include/xkbsrv.h +++ b/xorg-server/include/xkbsrv.h @@ -54,7 +54,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <X11/extensions/XKBproto.h> #include "xkbstr.h" +#include "xkbrules.h" #include "inputstr.h" +#include "events.h" typedef struct _XkbInterest { DeviceIntPtr dev; @@ -273,10 +275,10 @@ typedef struct device->public.realInputProc = oldprocs->realInputProc; \ device->unwrapProc = oldprocs->unwrapProc; -extern DevPrivateKey xkbDevicePrivateKey; +extern _X_EXPORT DevPrivateKey xkbDevicePrivateKey; #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey)) -extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer); +extern _X_EXPORT void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer); /***====================================================================***/ @@ -289,48 +291,31 @@ extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer); /***====================================================================***/ -extern int XkbReqCode; -extern int XkbEventBase; -extern int XkbDisableLockActions; -extern int XkbKeyboardErrorCode; -extern const char * XkbBaseDirectory; -extern const char * XkbBinDirectory; -extern char * XkbInitialMap; -extern unsigned int XkbXIUnsupported; - -extern Bool noXkbExtension; - -extern pointer XkbLastRepeatEvent; +extern _X_EXPORT int XkbReqCode; +extern _X_EXPORT int XkbEventBase; +extern _X_EXPORT int XkbKeyboardErrorCode; +extern _X_EXPORT const char * XkbBaseDirectory; +extern _X_EXPORT const char * XkbBinDirectory; -extern CARD32 xkbDebugFlags; +extern _X_EXPORT CARD32 xkbDebugFlags; -#define _XkbAlloc(s) xalloc((s)) -#define _XkbCalloc(n,s) Xcalloc((n)*(s)) -#define _XkbRealloc(o,s) Xrealloc((o),(s)) #define _XkbTypedAlloc(t) ((t *)xalloc(sizeof(t))) #define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t))) #define _XkbTypedRealloc(o,n,t) \ ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t)) #define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t)) -#define _XkbFree(p) Xfree(p) #define _XkbLibError(c,l,d) /* Epoch fail */ #define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff))) #define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c)) #define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d))) -extern int DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify; -extern int DeviceButtonPress,DeviceButtonRelease; -extern int DeviceEnterNotify,DeviceLeaveNotify; +extern _X_EXPORT int DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify; +extern _X_EXPORT int DeviceButtonPress,DeviceButtonRelease; #define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress)) #define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease)) -#define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\ - ((k)<=(c)->curKeySyms.maxKeyCode)) -#define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\ - (c)->curKeySyms.minKeyCode+1) - #define XConvertCase(s,l,u) XkbConvertCase(s,l,u) #undef IsKeypadKey #define IsKeypadKey(s) XkbKSIsKeypad(s) @@ -342,33 +327,31 @@ extern int DeviceEnterNotify,DeviceLeaveNotify; #define False FALSE #endif -_XFUNCPROTOBEGIN - -extern void XkbUseMsg( +extern _X_EXPORT void XkbUseMsg( void ); -extern int XkbProcessArguments( +extern _X_EXPORT int XkbProcessArguments( int /* argc */, char ** /* argv */, int /* i */ ); -extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc); +extern _X_EXPORT void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc); -extern void XkbFreeCompatMap( +extern _X_EXPORT void XkbFreeCompatMap( XkbDescPtr /* xkb */, unsigned int /* which */, Bool /* freeMap */ ); -extern void XkbFreeNames( +extern _X_EXPORT void XkbFreeNames( XkbDescPtr /* xkb */, unsigned int /* which */, Bool /* freeMap */ ); -extern int _XkbLookupAnyDevice( +extern _X_EXPORT int _XkbLookupAnyDevice( DeviceIntPtr *pDev, int id, ClientPtr client, @@ -376,7 +359,7 @@ extern int _XkbLookupAnyDevice( int *xkb_err ); -extern int _XkbLookupKeyboard( +extern _X_EXPORT int _XkbLookupKeyboard( DeviceIntPtr *pDev, int id, ClientPtr client, @@ -384,7 +367,7 @@ extern int _XkbLookupKeyboard( int *xkb_err ); -extern int _XkbLookupBellDevice( +extern _X_EXPORT int _XkbLookupBellDevice( DeviceIntPtr *pDev, int id, ClientPtr client, @@ -392,7 +375,7 @@ extern int _XkbLookupBellDevice( int *xkb_err ); -extern int _XkbLookupLedDevice( +extern _X_EXPORT int _XkbLookupLedDevice( DeviceIntPtr *pDev, int id, ClientPtr client, @@ -400,7 +383,7 @@ extern int _XkbLookupLedDevice( int *xkb_err ); -extern int _XkbLookupButtonDevice( +extern _X_EXPORT int _XkbLookupButtonDevice( DeviceIntPtr *pDev, int id, ClientPtr client, @@ -408,63 +391,63 @@ extern int _XkbLookupButtonDevice( int *xkb_err ); -extern XkbDescPtr XkbAllocKeyboard( +extern _X_EXPORT XkbDescPtr XkbAllocKeyboard( void ); -extern Status XkbAllocClientMap( +extern _X_EXPORT Status XkbAllocClientMap( XkbDescPtr /* xkb */, unsigned int /* which */, unsigned int /* nTypes */ ); -extern Status XkbAllocServerMap( +extern _X_EXPORT Status XkbAllocServerMap( XkbDescPtr /* xkb */, unsigned int /* which */, unsigned int /* nNewActions */ ); -extern void XkbFreeClientMap( +extern _X_EXPORT void XkbFreeClientMap( XkbDescPtr /* xkb */, unsigned int /* what */, Bool /* freeMap */ ); -extern void XkbFreeServerMap( +extern _X_EXPORT void XkbFreeServerMap( XkbDescPtr /* xkb */, unsigned int /* what */, Bool /* freeMap */ ); -extern Status XkbAllocIndicatorMaps( +extern _X_EXPORT Status XkbAllocIndicatorMaps( XkbDescPtr /* xkb */ ); -extern Status XkbAllocCompatMap( +extern _X_EXPORT Status XkbAllocCompatMap( XkbDescPtr /* xkb */, unsigned int /* which */, unsigned int /* nInterpret */ ); -extern Status XkbAllocNames( +extern _X_EXPORT Status XkbAllocNames( XkbDescPtr /* xkb */, unsigned int /* which */, int /* nTotalRG */, int /* nTotalAliases */ ); -extern Status XkbAllocControls( +extern _X_EXPORT Status XkbAllocControls( XkbDescPtr /* xkb */, unsigned int /* which*/ ); -extern Status XkbCopyKeyTypes( +extern _X_EXPORT Status XkbCopyKeyTypes( XkbKeyTypePtr /* from */, XkbKeyTypePtr /* into */, int /* num_types */ ); -extern Status XkbResizeKeyType( +extern _X_EXPORT Status XkbResizeKeyType( XkbDescPtr /* xkb */, int /* type_ndx */, int /* map_count */, @@ -472,67 +455,62 @@ extern Status XkbResizeKeyType( int /* new_num_lvls */ ); -extern void XkbFreeKeyboard( +extern _X_EXPORT void XkbFreeKeyboard( XkbDescPtr /* xkb */, unsigned int /* which */, Bool /* freeDesc */ ); -extern void XkbSetActionKeyMods( +extern _X_EXPORT void XkbSetActionKeyMods( XkbDescPtr /* xkb */, XkbAction * /* act */, unsigned int /* mods */ ); -extern Bool XkbCheckActionVMods( - XkbDescPtr /* xkb */, - XkbAction * /* act */, - unsigned int /* changed */ -); - -extern unsigned int XkbMaskForVMask( +extern _X_EXPORT unsigned int XkbMaskForVMask( XkbDescPtr /* xkb */, unsigned int /* vmask */ ); -extern Bool XkbVirtualModsToReal( +extern _X_EXPORT Bool XkbVirtualModsToReal( XkbDescPtr /* xkb */, unsigned int /* virtua_mask */, unsigned int * /* mask_rtrn */ ); -extern unsigned int XkbAdjustGroup( +extern _X_EXPORT unsigned int XkbAdjustGroup( int /* group */, XkbControlsPtr /* ctrls */ ); -extern KeySym *XkbResizeKeySyms( +extern _X_EXPORT KeySym *XkbResizeKeySyms( XkbDescPtr /* xkb */, int /* key */, int /* needed */ ); -extern XkbAction *XkbResizeKeyActions( +extern _X_EXPORT XkbAction *XkbResizeKeyActions( XkbDescPtr /* xkb */, int /* key */, int /* needed */ ); -extern void XkbUpdateKeyTypesFromCore( +extern _X_EXPORT void XkbUpdateKeyTypesFromCore( DeviceIntPtr /* pXDev */, + KeySymsPtr /* syms */, KeyCode /* first */, CARD8 /* num */, XkbChangesPtr /* pChanges */ ); -extern void XkbUpdateDescActions( +extern _X_EXPORT void XkbUpdateDescActions( XkbDescPtr /* xkb */, KeyCode /* first */, CARD8 /* num */, XkbChangesPtr /* changes */ ); -extern void XkbUpdateActions( +extern _X_EXPORT void XkbUpdateActions( DeviceIntPtr /* pXDev */, KeyCode /* first */, CARD8 /* num */, @@ -541,27 +519,27 @@ extern void XkbUpdateActions( XkbEventCausePtr /* cause */ ); -extern void XkbUpdateCoreDescription( - DeviceIntPtr /* keybd */, - Bool /* resize */ +extern _X_EXPORT KeySymsPtr XkbGetCoreMap( + DeviceIntPtr /* keybd */ ); -extern void XkbApplyMappingChange( +extern _X_EXPORT void XkbApplyMappingChange( DeviceIntPtr /* pXDev */, - CARD8 /* request */, - KeyCode /* firstKey */, - CARD8 /* num */, + KeySymsPtr /* map */, + KeyCode /* firstKey */, + CARD8 /* num */, + CARD8 * /* modmap */, ClientPtr /* client */ ); -extern void XkbSetIndicators( +extern _X_EXPORT void XkbSetIndicators( DeviceIntPtr /* pXDev */, CARD32 /* affect */, CARD32 /* values */, XkbEventCausePtr /* cause */ ); -extern void XkbUpdateIndicators( +extern _X_EXPORT void XkbUpdateIndicators( DeviceIntPtr /* keybd */, CARD32 /* changed */, Bool /* check_edevs */, @@ -569,14 +547,14 @@ extern void XkbUpdateIndicators( XkbEventCausePtr /* cause */ ); -extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo( +extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo( DeviceIntPtr /* dev */, KbdFeedbackPtr /* kf */, LedFeedbackPtr /* lf */, unsigned int /* needed_parts */ ); -extern XkbSrvLedInfoPtr XkbCopySrvLedInfo( +extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* src */, KbdFeedbackPtr /* kf */, @@ -584,14 +562,14 @@ extern XkbSrvLedInfoPtr XkbCopySrvLedInfo( ); -extern XkbSrvLedInfoPtr XkbFindSrvLedInfo( +extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo( DeviceIntPtr /* dev */, unsigned int /* class */, unsigned int /* id */, unsigned int /* needed_parts */ ); -extern void XkbApplyLedNameChanges( +extern _X_EXPORT void XkbApplyLedNameChanges( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* sli */, unsigned int /* changed_names */, @@ -600,7 +578,7 @@ extern void XkbApplyLedNameChanges( XkbEventCausePtr /* cause */ ); -extern void XkbApplyLedMapChanges( +extern _X_EXPORT void XkbApplyLedMapChanges( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* sli */, unsigned int /* changed_maps */, @@ -609,7 +587,7 @@ extern void XkbApplyLedMapChanges( XkbEventCausePtr /* cause */ ); -extern void XkbApplyLedStateChanges( +extern _X_EXPORT void XkbApplyLedStateChanges( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* sli */, unsigned int /* changed_leds */, @@ -618,7 +596,7 @@ extern void XkbApplyLedStateChanges( XkbEventCausePtr /* cause */ ); -extern void XkbFlushLedEvents( +extern _X_EXPORT void XkbFlushLedEvents( DeviceIntPtr /* dev */, DeviceIntPtr /* kbd */, XkbSrvLedInfoPtr /* sli */, @@ -627,45 +605,45 @@ extern void XkbFlushLedEvents( XkbEventCausePtr /* cause */ ); -extern unsigned int XkbIndicatorsToUpdate( +extern _X_EXPORT unsigned int XkbIndicatorsToUpdate( DeviceIntPtr /* dev */, unsigned long /* state_changes */, Bool /* enabled_ctrl_changes */ ); -extern void XkbComputeDerivedState( +extern _X_EXPORT void XkbComputeDerivedState( XkbSrvInfoPtr /* xkbi */ ); -extern void XkbCheckSecondaryEffects( +extern _X_EXPORT void XkbCheckSecondaryEffects( XkbSrvInfoPtr /* xkbi */, unsigned int /* which */, XkbChangesPtr /* changes */, XkbEventCausePtr /* cause */ ); -extern void XkbCheckIndicatorMaps( +extern _X_EXPORT void XkbCheckIndicatorMaps( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* sli */, unsigned int /* which */ ); -extern unsigned int XkbStateChangedFlags( +extern _X_EXPORT unsigned int XkbStateChangedFlags( XkbStatePtr /* old */, XkbStatePtr /* new */ ); -extern void XkbSendStateNotify( +extern _X_EXPORT void XkbSendStateNotify( DeviceIntPtr /* kbd */, xkbStateNotify * /* pSN */ ); -extern void XkbSendMapNotify( +extern _X_EXPORT void XkbSendMapNotify( DeviceIntPtr /* kbd */, xkbMapNotify * /* ev */ ); -extern int XkbComputeControlsNotify( +extern _X_EXPORT int XkbComputeControlsNotify( DeviceIntPtr /* kbd */, XkbControlsPtr /* old */, XkbControlsPtr /* new */, @@ -673,17 +651,17 @@ extern int XkbComputeControlsNotify( Bool /* forceCtrlProc */ ); -extern void XkbSendControlsNotify( +extern _X_EXPORT void XkbSendControlsNotify( DeviceIntPtr /* kbd */, xkbControlsNotify * /* ev */ ); -extern void XkbSendCompatMapNotify( +extern _X_EXPORT void XkbSendCompatMapNotify( DeviceIntPtr /* kbd */, xkbCompatMapNotify * /* ev */ ); -extern void XkbHandleBell( +extern _X_EXPORT void XkbHandleBell( BOOL /* force */, BOOL /* eventOnly */, DeviceIntPtr /* kbd */, @@ -695,52 +673,45 @@ extern void XkbHandleBell( ClientPtr /* pClient */ ); -extern void XkbSendAccessXNotify( +extern _X_EXPORT void XkbSendAccessXNotify( DeviceIntPtr /* kbd */, xkbAccessXNotify * /* pEv */ ); -extern void XkbSendNamesNotify( +extern _X_EXPORT void XkbSendNamesNotify( DeviceIntPtr /* kbd */, xkbNamesNotify * /* ev */ ); -extern void XkbSendCompatNotify( - DeviceIntPtr /* kbd */, - xkbCompatMapNotify * /* ev */ -); - -extern void XkbSendActionMessage( +extern _X_EXPORT void XkbSendActionMessage( DeviceIntPtr /* kbd */, xkbActionMessage * /* ev */ ); -extern void XkbSendExtensionDeviceNotify( +extern _X_EXPORT void XkbSendExtensionDeviceNotify( DeviceIntPtr /* kbd */, ClientPtr /* client */, xkbExtensionDeviceNotify * /* ev */ ); -extern void XkbSendNotification( +extern _X_EXPORT void XkbSendNotification( DeviceIntPtr /* kbd */, XkbChangesPtr /* pChanges */, XkbEventCausePtr /* cause */ ); -extern void XkbProcessKeyboardEvent( - struct _xEvent * /* xE */, - DeviceIntPtr /* keybd */, - int /* count */ +extern _X_EXPORT void XkbProcessKeyboardEvent( + DeviceEvent* /* event */, + DeviceIntPtr /* keybd */ ); -extern void XkbHandleActions( +extern _X_EXPORT void XkbHandleActions( DeviceIntPtr /* dev */, DeviceIntPtr /* kbd */, - struct _xEvent * /* xE */, - int /* count */ + DeviceEvent* /* event */ ); -extern Bool XkbEnableDisableControls( +extern _X_EXPORT Bool XkbEnableDisableControls( XkbSrvInfoPtr /* xkbi */, unsigned long /* change */, unsigned long /* newValues */, @@ -748,214 +719,185 @@ extern Bool XkbEnableDisableControls( XkbEventCausePtr /* cause */ ); -extern void AccessXInit( +extern _X_EXPORT void AccessXInit( DeviceIntPtr /* dev */ ); -extern Bool AccessXFilterPressEvent( - struct _xEvent * /* xE */, - DeviceIntPtr /* keybd */, - int /* count */ +extern _X_EXPORT Bool AccessXFilterPressEvent( + DeviceEvent* /* event */, + DeviceIntPtr /* keybd */ ); -extern Bool AccessXFilterReleaseEvent( - struct _xEvent * /* xE */, - DeviceIntPtr /* keybd */, - int /* count */ +extern _X_EXPORT Bool AccessXFilterReleaseEvent( + DeviceEvent* /* event */, + DeviceIntPtr /* keybd */ ); -extern void AccessXCancelRepeatKey( +extern _X_EXPORT void AccessXCancelRepeatKey( XkbSrvInfoPtr /* xkbi */, KeyCode /* key */ ); -extern void AccessXComputeCurveFactor( +extern _X_EXPORT void AccessXComputeCurveFactor( XkbSrvInfoPtr /* xkbi */, XkbControlsPtr /* ctrls */ ); -extern XkbInterestPtr XkbFindClientResource( +extern _X_EXPORT XkbInterestPtr XkbFindClientResource( DevicePtr /* inDev */, ClientPtr /* client */ ); -extern XkbInterestPtr XkbAddClientResource( +extern _X_EXPORT XkbInterestPtr XkbAddClientResource( DevicePtr /* inDev */, ClientPtr /* client */, XID /* id */ ); -extern int XkbRemoveResourceClient( +extern _X_EXPORT int XkbRemoveResourceClient( DevicePtr /* inDev */, XID /* id */ ); -extern int XkbDDXInitDevice( - DeviceIntPtr /* dev */ -); - -extern int XkbDDXAccessXBeep( +extern _X_EXPORT int XkbDDXAccessXBeep( DeviceIntPtr /* dev */, unsigned int /* what */, unsigned int /* which */ ); -extern void XkbDDXKeyClick( - DeviceIntPtr /* dev */, - int /* keycode */, - int /* synthetic */ -); - -extern int XkbDDXUsesSoftRepeat( +extern _X_EXPORT int XkbDDXUsesSoftRepeat( DeviceIntPtr /* dev */ ); -extern void XkbDDXKeybdCtrlProc( +extern _X_EXPORT void XkbDDXKeybdCtrlProc( DeviceIntPtr /* dev */, KeybdCtrl * /* ctrl */ ); -extern void XkbDDXChangeControls( +extern _X_EXPORT void XkbDDXChangeControls( DeviceIntPtr /* dev */, XkbControlsPtr /* old */, XkbControlsPtr /* new */ ); -extern void XkbDDXUpdateDeviceIndicators( +extern _X_EXPORT void XkbDDXUpdateDeviceIndicators( DeviceIntPtr /* dev */, XkbSrvLedInfoPtr /* sli */, CARD32 /* newState */ ); -extern void XkbDDXFakePointerButton( - int /* event */, - int /* button */ -); - -extern void XkbDDXFakePointerMotion( +extern _X_EXPORT void XkbDDXFakePointerMotion( unsigned int /* flags */, int /* x */, int /* y */ ); -extern void XkbDDXFakeDeviceButton( +extern _X_EXPORT void XkbDDXFakeDeviceButton( DeviceIntPtr /* dev */, Bool /* press */, int /* button */ ); -extern int XkbDDXTerminateServer( +extern _X_EXPORT int XkbDDXTerminateServer( DeviceIntPtr /* dev */, KeyCode /* key */, XkbAction * /* act */ ); -extern int XkbDDXSwitchScreen( +extern _X_EXPORT int XkbDDXSwitchScreen( DeviceIntPtr /* dev */, KeyCode /* key */, XkbAction * /* act */ ); -extern int XkbDDXPrivate( +extern _X_EXPORT int XkbDDXPrivate( DeviceIntPtr /* dev */, KeyCode /* key */, XkbAction * /* act */ ); -extern void XkbDisableComputedAutoRepeats( +extern _X_EXPORT void XkbDisableComputedAutoRepeats( DeviceIntPtr /* pXDev */, unsigned int /* key */ ); -extern void XkbSetRepeatKeys( +extern _X_EXPORT void XkbSetRepeatKeys( DeviceIntPtr /* pXDev */, int /* key */, int /* onoff */ ); -extern int XkbLatchModifiers( +extern _X_EXPORT int XkbLatchModifiers( DeviceIntPtr /* pXDev */, CARD8 /* mask */, CARD8 /* latches */ ); -extern int XkbLatchGroup( +extern _X_EXPORT int XkbLatchGroup( DeviceIntPtr /* pXDev */, int /* group */ ); -extern void XkbClearAllLatchesAndLocks( +extern _X_EXPORT void XkbClearAllLatchesAndLocks( DeviceIntPtr /* dev */, XkbSrvInfoPtr /* xkbi */, Bool /* genEv */, XkbEventCausePtr /* cause */ ); -extern void XkbSetRulesDflts( - char * /* rulesFile */, - char * /* model */, - char * /* layout */, - char * /* variant */, - char * /* options */ +extern _X_EXPORT void XkbGetRulesDflts( + XkbRMLVOSet * /* rmlvo */ ); -extern void XkbDeleteRulesDflts( - void +extern _X_EXPORT void XkbFreeRMLVOSet( + XkbRMLVOSet * /* rmlvo */, + Bool /* freeRMLVO */ ); -extern void XkbInitDevice( - DeviceIntPtr /* pXDev */ +extern _X_EXPORT void XkbSetRulesDflts( + XkbRMLVOSet * /* rmlvo */ ); -extern Bool XkbInitKeyboardDeviceStruct( - DeviceIntPtr /* pXDev */, - XkbComponentNamesPtr /* pNames */, - KeySymsPtr /* pSyms */, - CARD8 /* pMods */[], - BellProcPtr /* bellProc */, - KbdCtrlProcPtr /* ctrlProc */ +extern _X_EXPORT void XkbDeleteRulesDflts( + void ); -extern int SProcXkbDispatch( +extern _X_EXPORT int SProcXkbDispatch( ClientPtr /* client */ ); -extern XkbGeometryPtr XkbLookupNamedGeometry( +extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry( DeviceIntPtr /* dev */, Atom /* name */, Bool * /* shouldFree */ ); -extern char * _XkbDupString( - char * /* str */ +extern _X_EXPORT char * _XkbDupString( + const char * /* str */ ); -extern void XkbConvertCase( +extern _X_EXPORT void XkbConvertCase( KeySym /* sym */, KeySym * /* lower */, KeySym * /* upper */ ); -extern Status XkbChangeKeycodeRange( +extern _X_EXPORT Status XkbChangeKeycodeRange( XkbDescPtr /* xkb */, int /* minKC */, int /* maxKC */, XkbChangesPtr /* changes */ ); -extern int XkbFinishDeviceInit( - DeviceIntPtr /* pXDev */ -); - -extern void XkbFreeSrvLedInfo( +extern _X_EXPORT void XkbFreeSrvLedInfo( XkbSrvLedInfoPtr /* sli */ ); -extern void XkbFreeInfo( +extern _X_EXPORT void XkbFreeInfo( XkbSrvInfoPtr /* xkbi */ ); -extern Status XkbChangeTypesOfKey( +extern _X_EXPORT Status XkbChangeTypesOfKey( XkbDescPtr /* xkb */, int /* key */, int /* nGroups */, @@ -964,7 +906,7 @@ extern Status XkbChangeTypesOfKey( XkbMapChangesPtr /* changes */ ); -extern int XkbKeyTypesForCoreSymbols( +extern _X_EXPORT int XkbKeyTypesForCoreSymbols( XkbDescPtr /* xkb */, int /* map_width */, KeySym * /* core_syms */, @@ -973,34 +915,45 @@ extern int XkbKeyTypesForCoreSymbols( KeySym * /* xkb_syms_rtrn */ ); -extern Bool XkbApplyCompatMapToKey( +extern _X_EXPORT Bool XkbApplyCompatMapToKey( XkbDescPtr /* xkb */, KeyCode /* key */, XkbChangesPtr /* changes */ ); -extern Bool XkbApplyVirtualModChanges( +extern _X_EXPORT Bool XkbApplyVirtualModChanges( XkbDescPtr /* xkb */, unsigned int /* changed */, XkbChangesPtr /* changes */ ); -extern void XkbSendNewKeyboardNotify( +extern _X_EXPORT void XkbSendNewKeyboardNotify( DeviceIntPtr /* kbd */, xkbNewKeyboardNotify * /* pNKN */ ); +extern Bool XkbCopyKeymap( + XkbDescPtr /* dst */, + XkbDescPtr /* src */); + +extern Bool XkbCopyDeviceKeymap( + DeviceIntPtr /* dst */, + DeviceIntPtr /* src */); + +extern void XkbFilterEvents( + ClientPtr /* pClient */, + int /* nEvents */, + xEvent* /* xE */); + #include "xkbfile.h" -#include <X11/extensions/XKMformat.h> #include "xkbrules.h" -#define _XkbListKeymaps 0 -#define _XkbListKeycodes 1 -#define _XkbListTypes 2 -#define _XkbListCompat 3 -#define _XkbListSymbols 4 -#define _XkbListGeometry 5 -#define _XkbListNumComponents 6 +#define _XkbListKeycodes 0 +#define _XkbListTypes 1 +#define _XkbListCompat 2 +#define _XkbListSymbols 3 +#define _XkbListGeometry 4 +#define _XkbListNumComponents 5 typedef struct _XkbSrvListInfo { int szPool; @@ -1014,13 +967,13 @@ typedef struct _XkbSrvListInfo { int nFound[_XkbListNumComponents]; } XkbSrvListInfoRec,*XkbSrvListInfoPtr; -extern Status XkbDDXList( +extern _X_EXPORT Status XkbDDXList( DeviceIntPtr /* dev */, XkbSrvListInfoPtr /* listing */, ClientPtr /* client */ ); -extern unsigned int XkbDDXLoadKeymapByNames( +extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames( DeviceIntPtr /* keybd */, XkbComponentNamesPtr /* names */, unsigned int /* want */, @@ -1030,25 +983,18 @@ extern unsigned int XkbDDXLoadKeymapByNames( int /* keymapNameRtrnLen */ ); -extern Bool XkbDDXNamesFromRules( +extern _X_EXPORT Bool XkbDDXNamesFromRules( DeviceIntPtr /* keybd */, char * /* rules */, XkbRF_VarDefsPtr /* defs */, XkbComponentNamesPtr /* names */ ); -extern Bool XkbDDXApplyConfig( - void * /* cfg_in */, - XkbSrvInfoPtr /* xkbi */ -); - -extern int _XkbStrCaseCmp( - char * /* str1 */, - char * /* str2 */ +extern _X_EXPORT XkbDescPtr XkbCompileKeymap( + DeviceIntPtr /* dev */, + XkbRMLVOSet * /* rmlvo */ ); -_XFUNCPROTOEND - #define XkbAtomGetString(s) NameForAtom(s) #endif /* _XKBSRV_H_ */ diff --git a/xorg-server/include/xkbstr.h b/xorg-server/include/xkbstr.h index 5eebe41e3..4afe010d2 100644 --- a/xorg-server/include/xkbstr.h +++ b/xorg-server/include/xkbstr.h @@ -29,12 +29,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <X11/extensions/XKB.h> -#define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f)) -#define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff))) +#define XkbCharToInt(v) ((int) ((v) & 0x80 ? ((v) | (~0xff)) : ((v) & 0x7f))) +#define XkbIntTo2Chars(i, h, l) ((h) = (i >> 8) & 0xff, (l) = (i) & 0xff) #if defined(WORD64) && defined(UNSIGNEDBITFIELDS) -#define Xkb2CharsToInt(h,l) ((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)):\ - (int)(((h)<<8)|(l)&0x7fff)) +#define Xkb2CharsToInt(h, l) ((int) ((h) & 0x80 ? \ + (((h) << 8) | (l) | (~0xffff)) : \ + (((h) << 8) | (l) & 0x7fff)) #else #define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l))) #endif @@ -44,20 +45,30 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. */ typedef struct _XkbStateRec { - unsigned char group; + unsigned char group; /* base + latched + locked */ + /* FIXME: Why are base + latched short and not char?? */ + unsigned short base_group; /* physically ... down? */ + unsigned short latched_group; unsigned char locked_group; - unsigned short base_group; - unsigned short latched_group; - unsigned char mods; - unsigned char base_mods; - unsigned char latched_mods; - unsigned char locked_mods; - unsigned char compat_state; - unsigned char grab_mods; - unsigned char compat_grab_mods; - unsigned char lookup_mods; - unsigned char compat_lookup_mods; - unsigned short ptr_buttons; + + unsigned char mods; /* base + latched + locked */ + unsigned char base_mods; /* physically down */ + unsigned char latched_mods; + unsigned char locked_mods; + + unsigned char compat_state; /* mods + group for core state */ + + /* grab mods = all depressed and latched mods, _not_ locked mods */ + unsigned char grab_mods; /* grab mods minus internal mods */ + unsigned char compat_grab_mods; /* grab mods + group for core state, + but not locked groups if + IgnoreGroupLocks set */ + + /* effective mods = all mods (depressed, latched, locked) */ + unsigned char lookup_mods; /* effective mods minus internal mods */ + unsigned char compat_lookup_mods; /* effective mods + group */ + + unsigned short ptr_buttons; /* core pointer buttons */ } XkbStateRec,*XkbStatePtr; #define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group) #define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group) @@ -88,7 +99,8 @@ typedef struct _XkbKeyType { #define XkbOutOfRangeGroupInfo(g) ((g)&0xf0) #define XkbOutOfRangeGroupAction(g) ((g)&0xc0) #define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4) -#define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f)) +#define XkbSetGroupInfo(g, w, n) (((w) & 0xc0) | (((n) & 3) << 4) | \ + ((g) & 0x0f)) #define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f)) /* @@ -111,17 +123,19 @@ typedef struct _XkbModAction { unsigned char flags; unsigned char mask; unsigned char real_mods; + /* FIXME: Make this an int. */ unsigned char vmods1; unsigned char vmods2; } XkbModAction; -#define XkbModActionVMods(a) \ - ((short)(((a)->vmods1<<8)|((a)->vmods2))) +#define XkbModActionVMods(a) ((short) (((a)->vmods1 << 8) | (a)->vmods2)) #define XkbSetModActionVMods(a,v) \ - (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff)) + ((a)->vmods1 = (((v) >> 8) & 0xff), \ + (a)->vmods2 = (v) & 0xff) typedef struct _XkbGroupAction { unsigned char type; unsigned char flags; + /* FIXME: Make this an int. */ char group_XXX; } XkbGroupAction; #define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX)) @@ -132,6 +146,7 @@ typedef struct _XkbISOAction { unsigned char flags; unsigned char mask; unsigned char real_mods; + /* FIXME: Make this an int. */ char group_XXX; unsigned char affect; unsigned char vmods1; @@ -141,6 +156,7 @@ typedef struct _XkbISOAction { typedef struct _XkbPtrAction { unsigned char type; unsigned char flags; + /* FIXME: Make this an int. */ unsigned char high_XXX; unsigned char low_XXX; unsigned char high_YYY; @@ -165,7 +181,7 @@ typedef struct _XkbPtrDfltAction { char valueXXX; } XkbPtrDfltAction; #define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX)) -#define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff)) +#define XkbSASetPtrDfltValue(a, c) ((a)->valueXXX = (c) & 0xff) typedef struct _XkbSwitchScreenAction { unsigned char type; @@ -173,24 +189,25 @@ typedef struct _XkbSwitchScreenAction { char screenXXX; } XkbSwitchScreenAction; #define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX)) -#define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff)) +#define XkbSASetScreen(a, s) ((a)->screenXXX = (s) & 0xff) typedef struct _XkbCtrlsAction { unsigned char type; unsigned char flags; + /* FIXME: Make this an int. */ unsigned char ctrls3; unsigned char ctrls2; unsigned char ctrls1; unsigned char ctrls0; } XkbCtrlsAction; -#define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),\ - ((a)->ctrls2=(((c)>>16)&0xff)),\ - ((a)->ctrls1=(((c)>>8)&0xff)),\ - ((a)->ctrls0=((c)&0xff))) +#define XkbActionSetCtrls(a, c) ((a)->ctrls3 = ((c) >> 24) & 0xff, \ + (a)->ctrls2 = ((c) >> 16) & 0xff, \ + (a)->ctrls1 = ((c) >> 8) & 0xff, \ + (a)->ctrls0 = (c) & 0xff) #define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\ (((unsigned int)(a)->ctrls2)<<16)|\ (((unsigned int)(a)->ctrls1)<<8)|\ - ((unsigned int)((a)->ctrls0))) + ((unsigned int) (a)->ctrls0)) typedef struct _XkbMessageAction { unsigned char type; @@ -203,6 +220,7 @@ typedef struct _XkbRedirectKeyAction { unsigned char new_key; unsigned char mods_mask; unsigned char mods; + /* FIXME: Make this an int. */ unsigned char vmods_mask0; unsigned char vmods_mask1; unsigned char vmods0; @@ -211,6 +229,7 @@ typedef struct _XkbRedirectKeyAction { #define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|\ ((unsigned int)(a)->vmods0)) +/* FIXME: This is blatantly not setting vmods. Yeesh. */ #define XkbSARedirectSetVMods(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),\ ((a)->vmods_mask0=((m)&0xff))) #define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|\ @@ -281,7 +300,8 @@ typedef struct _XkbControls { #define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask) #define XkbAX_NeedOption(c,w) ((c)->ax_options&(w)) -#define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w)) +#define XkbAX_NeedFeedback(c, w) (XkbAX_AnyFeedback((c)) && \ + XkbAX_NeedOption((c), (w))) typedef struct _XkbServerMapRec { unsigned short num_acts; @@ -300,7 +320,7 @@ typedef struct _XkbServerMapRec { unsigned short *vmodmap; } XkbServerMapRec, *XkbServerMapPtr; -#define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]]) +#define XkbSMKeyActionsPtr(m, k) (&(m)->acts[(m)->key_acts[(k)]]) /* * Structures and access macros used primarily by clients @@ -326,15 +346,16 @@ typedef struct _XkbClientMapRec { unsigned char *modmap; } XkbClientMapRec, *XkbClientMapPtr; -#define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info) -#define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info)) -#define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels) -#define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width) -#define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3]) -#define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)]) -#define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k)) -#define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset) -#define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)]) +#define XkbCMKeyGroupInfo(m, k) ((m)->key_sym_map[(k)].group_info) +#define XkbCMKeyNumGroups(m, k) (XkbNumGroups((m)->key_sym_map[(k)].group_info)) +#define XkbCMKeyGroupWidth(m, k, g) (XkbCMKeyType((m), (k), (g))->num_levels) +#define XkbCMKeyGroupsWidth(m, k) ((m)->key_sym_map[(k)].width) +#define XkbCMKeyTypeIndex(m, k, g) ((m)->key_sym_map[(k)].kt_index[(g) & 0x3]) +#define XkbCMKeyType(m, k, g) (&(m)->types[XkbCMKeyTypeIndex((m), (k), (g))]) +#define XkbCMKeyNumSyms(m, k) (XkbCMKeyGroupsWidth((m), (k)) * \ + XkbCMKeyNumGroups((m), (k))) +#define XkbCMKeySymsOffset(m, k) ((m)->key_sym_map[(k)].offset) +#define XkbCMKeySymsPtr(m, k) (&(m)->syms[XkbCMKeySymsOffset((m), (k))]) /* * Compatibility structures and access macros @@ -358,6 +379,8 @@ typedef struct _XkbCompatMapRec { typedef struct _XkbIndicatorMapRec { unsigned char flags; + /* FIXME: For some reason, interepretation of groups is wildly + * different between which being base/latched/locked. */ unsigned char which_groups; unsigned char groups; unsigned char which_mods; @@ -365,12 +388,12 @@ typedef struct _XkbIndicatorMapRec { unsigned int ctrls; } XkbIndicatorMapRec, *XkbIndicatorMapPtr; -#define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&\ +#define XkbIM_IsAuto(i) (!((i)->flags & XkbIM_NoAutomatic) && \ (((i)->which_groups&&(i)->groups)||\ ((i)->which_mods&&(i)->mods.mask)||\ - ((i)->ctrls))) -#define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||\ - ((i)->which_mods)||((i)->ctrls)) + (i)->ctrls)) +#define XkbIM_InUse(i) ((i)->flags || (i)->which_groups || (i)->which_mods || \ + (i)->ctrls) typedef struct _XkbIndicatorRec { @@ -428,28 +451,30 @@ typedef struct _XkbDesc { XkbCompatMapPtr compat; XkbGeometryPtr geom; } XkbDescRec, *XkbDescPtr; -#define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g)) -#define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g)) -#define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g)) -#define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k)) +#define XkbKeyKeyTypeIndex(d, k, g) (XkbCMKeyTypeIndex((d)->map, (k), (g))) +#define XkbKeyKeyType(d, k, g) (XkbCMKeyType((d)->map, (k), (g))) +#define XkbKeyGroupWidth(d, k, g) (XkbCMKeyGroupWidth((d)->map, (k), (g))) +#define XkbKeyGroupsWidth(d, k) (XkbCMKeyGroupsWidth((d)->map, (k))) #define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k))) #define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k))) #define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k))) #define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k))) -#define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n]) +#define XkbKeySym(d, k, n) (XkbKeySymsPtr((d), (k))[(n)]) #define XkbKeySymEntry(d,k,sl,g) \ - (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl)))) + (XkbKeySym((d), (k), (XkbKeyGroupsWidth((d), (k)) * (g)) + (sl))) #define XkbKeyAction(d,k,n) \ - (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL) + (XkbKeyHasActions((d), (k)) ? & XkbKeyActionsPtr((d), (k))[(n)] : NULL) #define XkbKeyActionEntry(d,k,sl,g) \ - (XkbKeyHasActions(d,k)?\ - XkbKeyAction(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))):NULL) - -#define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0) -#define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1) -#define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k)) -#define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&&\ - ((k)<=(d)->max_key_code)) + (XkbKeyHasActions((d), (k)) ? \ + XkbKeyAction((d), (k), ((XkbKeyGroupsWidth((d), (k)) * (g)) + (sl))) : \ + NULL) + +#define XkbKeyHasActions(d, k) (!!(d)->server->key_acts[(k)]) +#define XkbKeyNumActions(d, k) (XkbKeyHasActions((d), (k)) ? \ + XkbKeyNumSyms((d), (k)) : 1) +#define XkbKeyActionsPtr(d, k) (XkbSMKeyActionsPtr((d)->server, (k))) +#define XkbKeycodeInRange(d, k) ((k) >= (d)->min_key_code && \ + (k) <= (d)->max_key_code) #define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1) @@ -527,7 +552,6 @@ typedef struct _XkbChanges { * database. */ typedef struct _XkbComponentNames { - char * keymap; char * keycodes; char * types; char * compat; @@ -588,9 +612,9 @@ typedef struct _XkbDeviceInfo { XkbDeviceLedInfoPtr leds; } XkbDeviceInfoRec,*XkbDeviceInfoPtr; -#define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL)) -#define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns)) -#define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL)) +#define XkbXI_DevHasBtnActs(d) ((d)->num_btns > 0 && (d)->btn_acts) +#define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d) && (b) < (d)->num_btns) +#define XkbXI_DevHasLeds(d) ((d)->num_leds > 0 && (d)->leds) typedef struct _XkbDeviceLedChanges { unsigned short led_class; diff --git a/xorg-server/include/xorg-config.h.in b/xorg-server/include/xorg-config.h.in index f9b77d03d..d1594202e 100644 --- a/xorg-server/include/xorg-config.h.in +++ b/xorg-server/include/xorg-config.h.in @@ -51,12 +51,15 @@ /* Build DRI2 extension */ #undef DRI2 -/* Solaris 8 or later? */ -#undef __SOL8__ +/* Define to 1 if you have the <stropts.h> header file. */ +#undef HAVE_STROPTS_H /* Define to 1 if you have the <sys/kd.h> header file. */ #undef HAVE_SYS_KD_H +/* Define to 1 if you have the <sys/vt.h> header file. */ +#undef HAVE_SYS_VT_H + /* Define to 1 if you have the `walkcontext' function (used on Solaris for xorg_backtrace in hw/xfree86/common/xf86Events.c */ #undef HAVE_WALKCONTEXT @@ -115,9 +118,15 @@ /* Have pci_system_init_dev_mem() */ #undef HAVE_PCI_SYSTEM_INIT_DEV_MEM +/* Define to 1 if you have the `pci_device_is_boot_vga' function. */ +#undef HAVE_PCI_DEVICE_IS_BOOT_VGA + /* Have pci_enable_device */ #undef HAVE_PCI_DEVICE_ENABLE +/* Define to 1 if you have the `pci_device_vgaarb_init' function. */ +#undef HAVE_PCI_DEVICE_VGAARB_INIT + /* Path to text files containing PCI IDs */ #undef PCI_TXT_IDS_PATH diff --git a/xorg-server/include/xorg-server.h.in b/xorg-server/include/xorg-server.h.in index 4cf1bbf0e..76cab16b6 100644 --- a/xorg-server/include/xorg-server.h.in +++ b/xorg-server/include/xorg-server.h.in @@ -100,14 +100,8 @@ /* Support X Input extension */ #undef XINPUT -/* Build XKB */ -#undef XKB - -/* Enable XKB per default */ -#undef XKB_DFLT_DISABLED - -/* Build XKB server */ -#undef XKB_IN_SERVER +/* XKB default rules */ +#undef XKB_DFLT_RULES /* Support loadable input and output drivers */ #undef XLOADABLE @@ -160,9 +154,6 @@ /* Location of configuration file */ #undef __XCONFIGFILE__ -/* XKB default rules */ -#undef __XKBDEFRULES__ - /* Name of X server */ #undef __XSERVERNAME__ @@ -175,9 +166,6 @@ /* System is BSD-like */ #undef CSRG_BASED -/* Solaris 8 or later? */ -#undef __SOL8__ - /* System has PC console */ #undef PCCONS_SUPPORT @@ -196,4 +184,7 @@ /* Use libpciaccess */ #undef XSERVER_LIBPCIACCESS +/* X Access Control Extension */ +#undef XACE + #endif /* _XORG_SERVER_H_ */ diff --git a/xorg-server/include/xserver-properties.h b/xorg-server/include/xserver-properties.h index f8aeab65d..626d0ad27 100644 --- a/xorg-server/include/xserver-properties.h +++ b/xorg-server/include/xserver-properties.h @@ -32,5 +32,142 @@ /* BOOL. 0 - device disabled, 1 - device enabled */ #define XI_PROP_ENABLED "Device Enabled" +/* BOOL. If present, device is a virtual XTEST device */ +#define XI_PROP_XTEST_DEVICE "XTEST Device" + +/* Pointer acceleration properties */ +/* INTEGER of any format */ +#define ACCEL_PROP_PROFILE_NUMBER "Device Accel Profile" +/* FLOAT, format 32 */ +#define ACCEL_PROP_CONSTANT_DECELERATION "Device Accel Constant Deceleration" +/* FLOAT, format 32 */ +#define ACCEL_PROP_ADAPTIVE_DECELERATION "Device Accel Adaptive Deceleration" +/* FLOAT, format 32 */ +#define ACCEL_PROP_VELOCITY_SCALING "Device Accel Velocity Scaling" + + +/* Axis labels */ +#define AXIS_LABEL_PROP "Axis Labels" + +#define AXIS_LABEL_PROP_REL_X "Rel X" +#define AXIS_LABEL_PROP_REL_Y "Rel Y" +#define AXIS_LABEL_PROP_REL_Z "Rel Z" +#define AXIS_LABEL_PROP_REL_RX "Rel Rotary X" +#define AXIS_LABEL_PROP_REL_RY "Rel Rotary Y" +#define AXIS_LABEL_PROP_REL_RZ "Rel Rotary Z" +#define AXIS_LABEL_PROP_REL_HWHEEL "Rel Horiz Wheel" +#define AXIS_LABEL_PROP_REL_DIAL "Rel Dial" +#define AXIS_LABEL_PROP_REL_WHEEL "Rel Vert Wheel" +#define AXIS_LABEL_PROP_REL_MISC "Rel Misc" + +/* + * Absolute axes + */ + +#define AXIS_LABEL_PROP_ABS_X "Abs X" +#define AXIS_LABEL_PROP_ABS_Y "Abs Y" +#define AXIS_LABEL_PROP_ABS_Z "Abs Z" +#define AXIS_LABEL_PROP_ABS_RX "Abs Rotary X" +#define AXIS_LABEL_PROP_ABS_RY "Abs Rotary Y" +#define AXIS_LABEL_PROP_ABS_RZ "Abs Rotary Z" +#define AXIS_LABEL_PROP_ABS_THROTTLE "Abs Throttle" +#define AXIS_LABEL_PROP_ABS_RUDDER "Abs Rudder" +#define AXIS_LABEL_PROP_ABS_WHEEL "Abs Wheel" +#define AXIS_LABEL_PROP_ABS_GAS "Abs Gas" +#define AXIS_LABEL_PROP_ABS_BRAKE "Abs Brake" +#define AXIS_LABEL_PROP_ABS_HAT0X "Abs Hat 0 X" +#define AXIS_LABEL_PROP_ABS_HAT0Y "Abs Hat 0 Y" +#define AXIS_LABEL_PROP_ABS_HAT1X "Abs Hat 1 X" +#define AXIS_LABEL_PROP_ABS_HAT1Y "Abs Hat 1 Y" +#define AXIS_LABEL_PROP_ABS_HAT2X "Abs Hat 2 X" +#define AXIS_LABEL_PROP_ABS_HAT2Y "Abs Hat 2 Y" +#define AXIS_LABEL_PROP_ABS_HAT3X "Abs Hat 3 X" +#define AXIS_LABEL_PROP_ABS_HAT3Y "Abs Hat 3 Y" +#define AXIS_LABEL_PROP_ABS_PRESSURE "Abs Pressure" +#define AXIS_LABEL_PROP_ABS_DISTANCE "Abs Distance" +#define AXIS_LABEL_PROP_ABS_TILT_X "Abs Tilt X" +#define AXIS_LABEL_PROP_ABS_TILT_Y "Abs Tilt Y" +#define AXIS_LABEL_PROP_ABS_TOOL_WIDTH "Abs Tool Width" +#define AXIS_LABEL_PROP_ABS_VOLUME "Abs Volume" +#define AXIS_LABEL_PROP_ABS_MISC "Abs Misc" + +/* Button names */ +#define BTN_LABEL_PROP "Button Labels" + +/* Default label */ +#define BTN_LABEL_PROP_BTN_UNKNOWN "Button Unknown" +/* Wheel buttons */ +#define BTN_LABEL_PROP_BTN_WHEEL_UP "Button Wheel Up" +#define BTN_LABEL_PROP_BTN_WHEEL_DOWN "Button Wheel Down" +#define BTN_LABEL_PROP_BTN_HWHEEL_LEFT "Button Horiz Wheel Left" +#define BTN_LABEL_PROP_BTN_HWHEEL_RIGHT "Button Horiz Wheel Right" + +/* The following are from linux/input.h */ +#define BTN_LABEL_PROP_BTN_0 "Button 0" +#define BTN_LABEL_PROP_BTN_1 "Button 1" +#define BTN_LABEL_PROP_BTN_2 "Button 2" +#define BTN_LABEL_PROP_BTN_3 "Button 3" +#define BTN_LABEL_PROP_BTN_4 "Button 4" +#define BTN_LABEL_PROP_BTN_5 "Button 5" +#define BTN_LABEL_PROP_BTN_6 "Button 6" +#define BTN_LABEL_PROP_BTN_7 "Button 7" +#define BTN_LABEL_PROP_BTN_8 "Button 8" +#define BTN_LABEL_PROP_BTN_9 "Button 9" + +#define BTN_LABEL_PROP_BTN_LEFT "Button Left" +#define BTN_LABEL_PROP_BTN_RIGHT "Button Right" +#define BTN_LABEL_PROP_BTN_MIDDLE "Button Middle" +#define BTN_LABEL_PROP_BTN_SIDE "Button Side" +#define BTN_LABEL_PROP_BTN_EXTRA "Button Extra" +#define BTN_LABEL_PROP_BTN_FORWARD "Button Forward" +#define BTN_LABEL_PROP_BTN_BACK "Button Back" +#define BTN_LABEL_PROP_BTN_TASK "Button Task" + +#define BTN_LABEL_PROP_BTN_TRIGGER "Button Trigger" +#define BTN_LABEL_PROP_BTN_THUMB "Button Thumb" +#define BTN_LABEL_PROP_BTN_THUMB2 "Button Thumb2" +#define BTN_LABEL_PROP_BTN_TOP "Button Top" +#define BTN_LABEL_PROP_BTN_TOP2 "Button Top2" +#define BTN_LABEL_PROP_BTN_PINKIE "Button Pinkie" +#define BTN_LABEL_PROP_BTN_BASE "Button Base" +#define BTN_LABEL_PROP_BTN_BASE2 "Button Base2" +#define BTN_LABEL_PROP_BTN_BASE3 "Button Base3" +#define BTN_LABEL_PROP_BTN_BASE4 "Button Base4" +#define BTN_LABEL_PROP_BTN_BASE5 "Button Base5" +#define BTN_LABEL_PROP_BTN_BASE6 "Button Base6" +#define BTN_LABEL_PROP_BTN_DEAD "Button Dead" + +#define BTN_LABEL_PROP_BTN_A "Button A" +#define BTN_LABEL_PROP_BTN_B "Button B" +#define BTN_LABEL_PROP_BTN_C "Button C" +#define BTN_LABEL_PROP_BTN_X "Button X" +#define BTN_LABEL_PROP_BTN_Y "Button Y" +#define BTN_LABEL_PROP_BTN_Z "Button Z" +#define BTN_LABEL_PROP_BTN_TL "Button T Left" +#define BTN_LABEL_PROP_BTN_TR "Button T Right" +#define BTN_LABEL_PROP_BTN_TL2 "Button T Left2" +#define BTN_LABEL_PROP_BTN_TR2 "Button T Right2" +#define BTN_LABEL_PROP_BTN_SELECT "Button Select" +#define BTN_LABEL_PROP_BTN_START "Button Start" +#define BTN_LABEL_PROP_BTN_MODE "Button Mode" +#define BTN_LABEL_PROP_BTN_THUMBL "Button Thumb Left" +#define BTN_LABEL_PROP_BTN_THUMBR "Button Thumb Right" + +#define BTN_LABEL_PROP_BTN_TOOL_PEN "Button Tool Pen" +#define BTN_LABEL_PROP_BTN_TOOL_RUBBER "Button Tool Rubber" +#define BTN_LABEL_PROP_BTN_TOOL_BRUSH "Button Tool Brush" +#define BTN_LABEL_PROP_BTN_TOOL_PENCIL "Button Tool Pencil" +#define BTN_LABEL_PROP_BTN_TOOL_AIRBRUSH "Button Tool Airbrush" +#define BTN_LABEL_PROP_BTN_TOOL_FINGER "Button Tool Finger" +#define BTN_LABEL_PROP_BTN_TOOL_MOUSE "Button Tool Mouse" +#define BTN_LABEL_PROP_BTN_TOOL_LENS "Button Tool Lens" +#define BTN_LABEL_PROP_BTN_TOUCH "Button Touch" +#define BTN_LABEL_PROP_BTN_STYLUS "Button Stylus" +#define BTN_LABEL_PROP_BTN_STYLUS2 "Button Stylus2" +#define BTN_LABEL_PROP_BTN_TOOL_DOUBLETAP "Button Tool Doubletap" +#define BTN_LABEL_PROP_BTN_TOOL_TRIPLETAP "Button Tool Tripletap" + +#define BTN_LABEL_PROP_BTN_GEAR_DOWN "Button Gear down" +#define BTN_LABEL_PROP_BTN_GEAR_UP "Button Gear up" #endif |