Update to xextproto 7.2.0

This commit is contained in:
matthieu 2011-04-17 15:18:17 +00:00
parent 38a45bf16e
commit 60ad3b3855
23 changed files with 8312 additions and 420 deletions

View File

@ -1,3 +1,197 @@
commit c593fd1000ceb83f0933361c5e7496d799233f7e
Author: Keith Packard <keithp@keithp.com>
Date: Sat Feb 26 23:57:48 2011 -0800
Version 7.2.0
Signed-off-by: Keith Packard <keithp@keithp.com>
commit a6a542841e85344115bbb6a1ba35c4f3487995e4
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Feb 25 08:53:55 2011 -0500
Docbook: change the book id to match the xml file basename
This is required for the up-coming external references support.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit d16788e87438015d3e121ffb046bc6a4ce01da89
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Feb 25 08:51:47 2011 -0500
Docbook: change the book id to match the xml file basename
This is required for the up-coming external references support.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 8c6cc9ddb5776a2b32d42a41d27b3df56e62c44f
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Feb 24 20:44:00 2011 -0500
Docbook: change the book id to match the xml file basename
Rename appgroup.xml as it conflicts with xorg-docs/specs/Xserver/appgroup.xml
This is required for the up-coming external references support.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 9df8b77604b7ea7132d32f65f2280720b91249c1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Dec 16 23:54:45 2010 -0800
specs: Fix section titles/nesting
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 6aa72ae8e629e065f09a6b6c05504363806d76a3
Author: Paulo Zanoni <pzanoni@mandriva.com>
Date: Tue Dec 14 16:23:56 2010 -0200
Use the same docbookx.dtd version (4.3) for all docs
This way we don't need to require 4.1.2 and 4.5
The geproto xml was inconsistent, by the way.
Signed-off-by: Paulo Zanoni <pzanoni@mandriva.com>
Reviewed-by: Matt Dew <matt@osource.org>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 77c2b72d8df53e918b0fbff5425af82ac7f5693a
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Thu Dec 9 17:43:29 2010 -0800
specs/sync.xml: Fix minor typos in document title section
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit b4e8a6fb63715442b4927d18d9cdd7ee78e50d00
Author: James Jones <jajones@nvidia.com>
Date: Mon Nov 29 09:35:50 2010 -0800
Bump version to 7.1.99.0
Use version 7.1.99.0 to mark the inclusion of
Fence Sync protocol support.
Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 6e696a0a4c9a115c7f080c2bdee3d8afc16b134f
Author: James Jones <jajones@nvidia.com>
Date: Wed Feb 24 15:57:29 2010 -0800
Add protocol for XSyncAwaitFence()
Add the fence sync object equivalent of
XSyncAwait()
Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 220b824f20dc3dd0fd6eae6e2896fb63aefbf11a
Author: James Jones <jajones@nvidia.com>
Date: Mon Feb 22 17:01:16 2010 -0800
Add XSyncQueryFence()
Allows callers to query whether a given fence sync
object is currently triggered or not.
Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit d079ee210726d2407fa9c8cf99555daf2d96023a
Author: James Jones <jajones@nvidia.com>
Date: Fri Feb 12 16:38:08 2010 -0800
Initial Fence Sync support
Defines the protocol for creation and basic
management of binary state sync objects.
The following operations are defined:
-Creation
-Destruction
-Trigger
-Reset
Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 9ba2065b63ea0e61a17b8221ad454c02a1755373
Author: James Jones <jajones@nvidia.com>
Date: Wed Aug 11 15:03:59 2010 -0700
Document changes in XSync version 3.1
Signed-off-by: James Jones <jajones@nvidia.com>
Reviewed-by: Pierre-Loup Griffais <pgriffais@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit fd8a26edefc53b370c554a60c75ff32fc60b99c8
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 30 09:05:07 2010 -0500
specs: add low bandwith spec from xorg-docs
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 3102665110846af5c87792b221e1ef6a9dc1a0e2
Author: Matt Dew <matt@osource.org>
Date: Mon Nov 29 16:29:44 2010 -0500
specs: add appgroup specs in DocBook/XML format
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit f6ee80371c4bf9ebd99418a4328a351186ac0847
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Nov 9 15:19:09 2010 -0500
config: HTML file generation: use the installed copy of xorg.css
Currenlty the xorg.css file is copied in each location
where a DocBook/XML file resides. This produces about
70 copies in the $(docdir) install tree.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 6fbb74bfe75adc7cfd6d4bc642d7d4179a3db17d
Author: Jesse Adkins <jesserayadkins@gmail.com>
Date: Tue Sep 28 13:30:04 2010 -0700
Purge cvs tags.
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 5508eec058c0ffbb180f3d98f8a02083d6de428b
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Sep 9 16:41:21 2010 -0400
Remove the appgroup specs which is the one for the server side.
The spec for the protocol side is still in Framemaker format.
See doc/xorg-docs/specs/Xext/AppGroup.mif
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 5daf9cff36df7423f6247fc8174b8e6c9443ed07
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Aug 10 10:24:51 2010 -0400
xextproto 7.1.2
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit 35741d9dc745532dc4af37cc07e256392e3880da
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Aug 3 11:03:49 2010 -0400

291
proto/xextproto/INSTALL Normal file
View File

@ -0,0 +1,291 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -1,5 +1,5 @@
AC_PREREQ([2.60])
AC_INIT([XExtProto], [7.1.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AC_INIT([XExtProto], [7.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE

View File

@ -1,4 +1,3 @@
/* $XFree86: xc/include/extensions/shmstr.h,v 3.3 2001/12/14 19:53:29 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@ -30,8 +29,6 @@ in this Software without prior written authorization from The Open Group.
#ifndef _SHMSTR_H_
#define _SHMSTR_H_
/* $Xorg: shmstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
#include <X11/extensions/shmproto.h>
#ifdef _XSHM_SERVER_

View File

@ -23,11 +23,12 @@
if ENABLE_SPECS
doc_sources = \
appgroup.xml \
appgrp.xml \
dbe.xml \
dpms.xml \
evi.xml \
geproto.xml \
lbx.xml \
multibuf.xml \
security.xml \
shape.xml \
@ -36,7 +37,7 @@ doc_sources = \
tog-cup.xml \
xtest.xml
dist_doc_DATA = $(doc_sources)
dist_doc_DATA = $(doc_sources) appendix.xml
if HAVE_XMLTO
doc_DATA = $(doc_sources:.xml=.html)
@ -50,27 +51,24 @@ doc_DATA += $(doc_sources:.xml=.txt)
endif
if HAVE_STYLESHEETS
XMLTO_FLAGS = -m $(XSL_STYLESHEET)
doc_DATA += xorg.css
xorg.css: $(STYLESHEET_SRCDIR)/xorg.css
$(AM_V_GEN)cp -pf $(STYLESHEET_SRCDIR)/xorg.css $@
XMLTO_FLAGS = -m $(XSL_STYLESHEET) \
--stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css
endif
CLEANFILES = $(doc_DATA)
SUFFIXES = .xml .ps .pdf .txt .html
.xml.txt:
%.txt: %.xml $(dist_doc_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $<
.xml.html:
%.html: %.xml $(dist_doc_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $<
.xml.pdf:
%.pdf: %.xml $(dist_doc_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $<
.xml.ps:
%.ps: %.xml $(dist_doc_DATA)
$(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $<
endif HAVE_XMLTO

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE appendix
PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<appendix id='system_window_encodings'>
<title>System Window Encodings</title>
<para>
The AppGroupCreateAssoc request has the following possible variations:
</para>
<literallayout>
<emphasis role='bold'>AppGroupCreateAssoc (X11)</emphasis>
1 CARD8 opcode
1 6 XC-APPGROUP opcode
2 n length
4 WINDOW window
2 0 window_type
2 4 system_window_len
4 WINDOW Window
</literallayout>
<literallayout>
<emphasis role='bold'>AppGroupCreateAssoc (Macintosh)</emphasis>
1 CARD8 opcode
1 6 XC-APPGROUP opcode
2 n length
4 WINDOW window
2 1 window_type
2 12 system_window_len
4 CARD32 WindowPtr
2 INT16 Rect.top
2 INT16 Rect.left
2 INT16 Rect.bottom
2 INT16 Rect.right
</literallayout>
<literallayout>
<emphasis role='bold'>AppGroupCreateAssoc (Win32)</emphasis>
1 CARD8 opcode
1 6 XC-APPGROUP opcode
2 n length
4 WINDOW window
2 2 window_type
2 4 system_window_len
4 CARD32 HWND
</literallayout>
<literallayout>
<emphasis role='bold'>AppGroupCreateAssoc (Win16)</emphasis>
1 CARD8 opcode
1 6 XC-APPGROUP opcode
2 n length
4 WINDOW window
2 3 window_type
2 4 system_window_len
2 CARD16 HWND offset
2 CARD16 HWND segment
</literallayout>
</appendix>

View File

@ -1,248 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book id="appgroup">
<bookinfo>
<title>Description of the Application Group Extension</title>
<subtitle>Implementation for the X11 Sample Server</subtitle>
<releaseinfo>Version 1.0</releaseinfo>
<authorgroup>
<author>
<firstname>Kaleb </firstname><surname>KEITHLEY</surname>
<affiliation><orgname>FUJITSU Limited.</orgname></affiliation>
<email>blah@blah.com</email>
</author>
</authorgroup>
<corpname>X Consortium Standard</corpname>
<copyright><year>1996</year><holder>X Consortium</holder></copyright>
<affiliation><orgname>X Consortium</orgname></affiliation>
<productnumber>X Version 11, Release 7</productnumber>
<abstract>
<para>
The following document explains the server side of the Application
Group Extension.
</para>
</abstract>
<legalnotice>
<para>
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:
</para>
<para>
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
</para>
<para>
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
X CONSORTIUM 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.
</para>
<para>
The following document explains the server side of the Application
Group Extension.
</para>
<para>
WindowsNT is a trademark of Microsoft, Inc. Macintosh and Apple
are trademarks of Apple Computer, Inc. X Window System is a
trademark of X Consortium, Inc.
</para>
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<para>
To understand this document and the accompanying source code, you
should know the C language, should be familiar with X server
internals, and should also have a general knowledge of the X
Window System.
</para>
<sect1 id="AppGroup_Server_Public_Functions">
<title>AppGroup Server Public Functions</title>
<para>
The AppGroup extension adds seven new functions that are called
from elsewhere in the server. They are: XagExtensionInit,
XagDefaultColormap, XagRootVisual, XagLeader, XagIsControlledRoot,
XagConnectionInfo, XagCallClientStateChange.
</para>
<para>
XagExtensionInit is the extension initialization function called
from InitExtension in mi/miinitext.c. Note that an new resource
type, RT_APPGROUP, is created, specifying the destructor function
XagAppGroupFree.
</para>
<para>
XagDefaultColormap returns the colormap ID that was specified in
the creation of the AppGroup. Any time CopyFromParent is specified
for a top-level window's colormap, i.e. in a CreateWindow or
ChangeWindowAttributes request, this function is called to see
if there is an AppGroup specific colormap to use. If there is
one, its ID is returned, otherwise None is returned.
</para>
<para>
XagRootVisual returns the visual ID that was specified in the
creation of the Appgroup. Like XagDefaultColormap, when CopyFromParent
is specified for a top-level window's visual in a CreateWindow
request, this function is called to see if there is an AppGroup
specific visual to use. If there is one, its ID is returned,
otherwise 0 (zero) is returned.
</para>
<para>
XagLeader returns the ClientPtr of the client that is the AppGroup
Leader. Normally when an application maps or configures a top-level
window a MapRequest or ConfigureRequest event is delivered to the
client, e.g. a window manager, that has selected SubstructureRedirect
on the root window. However, when the application is part of an
AppGroup, the MapRequest and ConfigureRequest events are delivered
to the AppGroup Leader instead.
</para>
<para>
XagIsControlledRoot returns a boolean: True if the window is a
top-level window of a client in an AppGroup, False otherwise.
In a combined server, i.e. one that provides both UI and printing,
the application may create and map windows on the "printing"
screens; thus it becomes necessary to discriminate between the
AppGroup's root window and other root windows. If an AppGroup
member creates and maps a [top-level] window then the window's
parent [the root window] is tested to determine whether to send
MapRequest or ConfigureRequest events to the AppGroup Leader to
to some other client.
</para>
<para>
In the trivial case XagIsControlledRoot returns True if the parent
window has no parent itself, i.e. it is a root window. In the case
where the application is embedded, indicated by the singleScreen
attribute being True, the parent's drawable ID is compared to the
AppGroup's root window ID, and if it is the same, True is returned.
If neither case is true, then False is returned.
</para>
<para>
XagConnectionInfo returns an abreviated version of the connection
setup information. When an embedded AppGroup is created the server
returns only the information about the [UI] screen that the
application is embedded within in the connection setup in order to
prevent the application from creating windows on other screens;
thus attempting to guarantee that any window that should be embedded
can be reparented into the AppGroup Leader's window hierarchy.
</para>
<para>
XagCallClientStateChange is called to invoke the extension's client
state change callback additional times as necessary -- currently
only once, after the auth data becomes available between
ClientStateInitial and ClientStateConnected. Client state change
callbacks were introduced in the Record extension, which specifies
when the callbacks are invoked. Unfortunately the points at which
they are called are not necessarily the best as far as the AppGroup
Extension is concerned. Adding an additional state and calling all
the callbacks works too, however this seemed unnecessary overkill.
</para>
</sect1>
<sect1 id="AppGroup_Server_Private_APIs">
<title>AppGroup Server Private APIs</title>
<para>
The AppGroup extension adds the following functions which are
private to the extension: ProcXagDispatch and SProcXagDispatch,
ProcXagQueryVersion and SProcXagQueryVersion, ProcXagCreate and
SProcXagCreate, ProcXagDestroy and SProcXagDestroy,
ProcGetAttr and SProcGetAttr, ProcXagQuery and SProcXagQuery,
ProcXagCreateAssoc and SProcXagCreateAssoc, ProcXagDestroyAssoc
and SProcXagDestroyAssoc, XagResetProc, and XagAppGroupFree.
</para>
<para>
The ProcXagDispatch, SProcXagDispatch, and XagResetProc functions
should be familiar to anyone familiar with X server internals and
I won't elaborate on them here. Similarly the wrapper functions:
SProcXagQueryVersion, SProcXagCreate, SProcXagDestroy, SProcXagGetAttr,
SProcXagQuery, SProcXagCreateAssoc, and SProcXagDestroyAssoc, as
wrappers which handle swapping integer data into the host's byte
order will not be explained in any detail.
</para>
<para>
ProcXagQueryVersion returns the major and minor versions of the
AppGroup extension supported by the server.
</para>
<para>
ProcXagCreate creates an AppGroup. A new record in a linked list
of AppGroups is allocated and initialized. The attributes from the
request are validated and copied to the AppGroup record. If necessary
an abbreviated version of the connection setup information is compiled
and also stored in the AppGroup record. The first time an AppGroup
is created a client-state-change callback is registered and a
reference count is incremented.
</para>
<para>
ProcXagDestroy destroys an AppGroup an AppGroup by calling
FreeResource specifying the AppGroup ID. This will result in
the destructor function XagAppGroupFree being called. The
reference count is decremented and when it reaches zero the
client-state-change callback is deleted.
</para>
<para>
ProcXagGetAttr returns the AppGroup Attributes to the requesting
client.
</para>
<para>
ProcXagQuery returns the AppGroup ID of an arbitrary resource to
the requesting client.
</para>
<para>
ProcXagCreateAssoc creates an association between an X window ID
and system-specific data. In native X this functionality is
unnecessary but for various personal computers, e.g. Macintosh,
OS/2, and MS-Windows it is necessary to associate an X window ID
with the system's native window identifier so that when the
AppGroup Leader issues a ReparentWindow request the personal
computer X server can lookup the system-specific window ID and
make the necessary function call(s) with it.
</para>
<para>
ProcXagDestroyAssoc destroys the association created with
ProcXagCreateAssoc.
</para>
<para>
XagResetProc removes the client-state-change callback, sets the
reference count to zero, and frees all the AppGroup records in
the linked list by calling XagAppGroupFree.
</para>
<para>
XagAppGroupFree calls CloseDownClient for each client in an
AppGroup if the AppGroup has a leader, unlinks the AppGroup
record from the linked list, frees allocated memory referenced
by the record, and finally frees the record itself.
</para>
</sect1>
<sect1 id="Known_Problems_in_this_release_">
<title>Known Problems in this release.</title>
<para>
In a combined UI/Print server the connection setup returned to an
embedded application will not have information about the print
screens.
</para>
<para>
The LBX proxy caches connection setup information and will return
incorrect connection setup information to an embedded client.
</para>
</sect1>
</chapter>
</book>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<!--

View File

@ -34,9 +34,7 @@ provided "as is" without express or implied warranty.
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<sect1 id="Overview">
<chapter id="Overview">
<title>Overview</title>
<para>
This extension provides X Protocol control over the VESA Display
@ -119,9 +117,9 @@ importance of power savings should supersede the screen saver. If the
laptop user plugs the unit in and power is no longer a scarce commodity,
it may be decided to make DPMS less aggressive, or disable it completely.
</para>
</sect1>
</chapter>
<sect1 id="Requests">
<chapter id="Requests">
<title>Requests</title>
<para>
<function>DPMSGetVersion</function>
@ -430,16 +428,16 @@ of DPMSModeOn, DPMSModeStandby, DPMSModeSuspend or DPMSModeOff, otherwise
it is undefined.
</para>
</sect1>
</chapter>
<sect1 id="Events_and_Errors">
<chapter id="Events_and_Errors">
<title>Events and Errors</title>
<para>
No new events or errors are defined by this extension.
</para>
</sect1>
</chapter>
<sect1 id="Encoding">
<chapter id="Encoding">
<title>Encoding</title>
<para>
Please refer to the X11 Protocol Encoding document as this document uses
@ -558,6 +556,5 @@ The name of this extension is "DPMS".
21 unused
</literallayout>
</sect1>
</chapter>
</book>

View File

@ -62,17 +62,15 @@ X Window System is a trademark of The Open Group.
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<sect1 id="Introduction">
<chapter id="Introduction">
<title>Introduction</title>
<para>
EVI (Extended Visual Information extension) allows a client to determine
information about core X visuals beyond what the core protocol provides.
</para>
</sect1>
</chapter>
<sect1 id="Goals">
<chapter id="Goals">
<title>Goals</title>
<para>
As the X Window System has evolved, it has become clear that the information
@ -90,9 +88,9 @@ their own mechanisms for delivering that information. For example, the Double
Buffering Extension (DBE) provides its own mechanism for determining which
visuals support double-buffering.
</para>
</sect1>
</chapter>
<sect1 id="Requests">
<chapter id="Requests">
<title>Requests</title>
<para>
<function>GetVersion</function>
@ -285,22 +283,22 @@ example, if a 12-bit colormap is overloaded to support 8-bit visuals, the
</listitem>
</itemizedlist>
</sect1>
<sect1 id="Events_and_Errors">
</chapter>
<chapter id="Events_and_Errors">
<title>Events and Errors</title>
<para>
No new events or errors are defined by this extension.
</para>
</sect1>
</chapter>
<sect1 id="Changes_to_existing_protocol_">
<chapter id="Changes_to_existing_protocol_">
<title>Changes to existing protocol.</title>
<para>
None.
</para>
</sect1>
</chapter>
<sect1 id="Encoding">
<chapter id="Encoding">
<title>Encoding</title>
<para>
The name of this extension is "Extended-Visual-Information".
@ -358,9 +356,9 @@ VISUALINFO
1 CARD8 max_hw_colormaps
2 CARD16 num_colormap_conflicts
</literallayout>
</sect1>
</chapter>
<sect1 id="C_Language_Binding">
<chapter id="C_Language_Binding">
<title>C Language Binding</title>
<para>
<!-- .LP -->
@ -513,6 +511,5 @@ of hardware support for multiple colormaps. XeviGetVisualInfo returns Success
if successful, or an X error otherwise.
</para>
</sect1>
</chapter>
</book>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book>
<bookinfo>
<title>X Generic Event Extension</title>

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
<!-- lifted from troff+ms+XMan by doclifter -->
<book id="buffer">
<book id="multibuf">
<bookinfo>
<title>Extending X for Double-Buffering, Multi-Buffering, and Stereo</title>
@ -70,16 +70,16 @@ in this Software without prior written authorization from the X Consortium.
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<preface><title>Warning</title>
<warning><para>
The <emphasis remap='I'>Multi-Buffering</emphasis> extension described here
was a draft standard of the X Consortium prior to Release 6.1. It has been
superseded by the Double Buffer
Extension (DBE). DBE is an X Consortium Standard as of Release 6.1.
</para></warning>
</preface>
<sect1 id="introduction">
<chapter id="introduction">
<title>Introduction</title>
<para>
@ -120,9 +120,9 @@ The authors of this proposal have tried to unify the above documents
to yield a proposal that incorporates support for double-buffering,
multi-buffering, and stereo in a way that is acceptable to all concerned.
</para>
</sect1>
</chapter>
<sect1 id="goals">
<chapter id="goals">
<title>Goals</title>
<para>
@ -176,9 +176,9 @@ existing hardware features.
</listitem>
</itemizedlist>
</sect1>
</chapter>
<sect1 id="image_buffers">
<chapter id="image_buffers">
<title>Image Buffers</title>
<para>
@ -316,9 +316,9 @@ the screen contents are not altered and the contents of any
undisplayed image buffers are undefined. If backing store was
maintained for an image buffer, then no exposure events are generated.
</para>
</sect1>
</chapter>
<sect1 id="new_requests">
<chapter id="new_requests">
<title>New Requests</title>
<para>
@ -671,9 +671,9 @@ display are de-allocated. If the window is not multi-buffered,
the request is ignored.
</para>
</sect1>
</chapter>
<sect1 id="attributes">
<chapter id="attributes">
<title>Attributes</title>
<para>
@ -860,9 +860,9 @@ increment for incompatible changes, and the minor version would
increment for small upward compatible changes. Barring changes, the
major version will be 1, and the minor version will be 1.
</para>
</sect1>
</chapter>
<sect1 id="events">
<chapter id="events">
<title>Events</title>
<para>
@ -958,9 +958,9 @@ becomes <emphasis remap='I'>updated</emphasis>
<function>DisplayImageBuffers</function>
request), an <function>UpdateNotify</function> event is generated.
</para>
</sect1>
</chapter>
<sect1 id="errors">
<chapter id="errors">
<title>Errors</title>
<para>
@ -968,14 +968,14 @@ The following error type has been added to support
this extension:
</para>
<sect2 id="buffer_2">
<sect1 id="buffer_2">
<title>Buffer</title>
<para>
A value for a BUFFER argument does not name a defined BUFFER.
</para>
</sect2>
</sect1>
<sect2 id="double_buffering_normal_windows">
<sect1 id="double_buffering_normal_windows">
<title>Double-Buffering Normal Windows</title>
<para>
@ -1023,9 +1023,9 @@ while animating
DestroyImageBuffers( W )
</literallayout>
</sect2>
</sect1>
<sect2 id="multi_buffering_normal_windows">
<sect1 id="multi_buffering_normal_windows">
<title>Multi-Buffering Normal Windows</title>
<para>
@ -1070,9 +1070,9 @@ while animating
}
</literallayout>
</sect2>
</sect1>
<sect2 id="stereo_windows">
<sect1 id="stereo_windows">
<title>Stereo Windows</title>
<para>
<emphasis remap='I'>How</emphasis> stereo windows are supported on a server
@ -1175,9 +1175,9 @@ right eyes for normal windows should be the same
(ie: have no stereo offset).
</para>
</sect2>
</sect1>
<sect2 id="single_buffered_stereo_windows">
<sect1 id="single_buffered_stereo_windows">
<title>Single-Buffered Stereo Windows</title>
<para>
@ -1195,9 +1195,9 @@ MapWindow( W )
&lt;draw picture using L,R&gt;
</literallayout>
</sect2>
</sect1>
<sect2 id="double_buffering_stereo_windows">
<sect1 id="double_buffering_stereo_windows">
<title>Double-Buffering Stereo Windows</title>
<para>
@ -1267,9 +1267,9 @@ while animating
}
</literallayout>
</sect2>
</sect1>
<sect2 id="multi_buffering_stereo_windows">
<sect1 id="multi_buffering_stereo_windows">
<title>Multi-Buffering Stereo Windows</title>
<para>
@ -1310,9 +1310,9 @@ while animating
DisplayImageBuffers( [L(i)], 100, 0 )
}
</literallayout>
</sect2>
</sect1>
<sect2 id="protocol_encoding">
<sect1 id="protocol_encoding">
<title>Protocol Encoding</title>
<para>
@ -1356,10 +1356,10 @@ Specifies the code that will be returned when
The following sections describe the protocol
encoding for this extension.
</para>
</sect2>
</sect1>
</chapter>
<sect1 id="type">
<chapter id="type">
<title>TYPES</title>
<literallayout class="monospaced">
@ -1379,9 +1379,9 @@ SETofBUFFER_EVENT
#x04000000 UpdateNotify
</literallayout>
</sect1>
</chapter>
<sect1 id="events_2">
<chapter id="events_2">
<title>EVENTS</title>
<literallayout class="monospaced">
@ -1406,8 +1406,8 @@ SETofBUFFER_EVENT
24 unused
</literallayout>
</sect1>
<sect1 id="errors_2">
</chapter>
<chapter id="errors_2">
<title>ERRORS</title>
<literallayout class="monospaced">
@ -1421,9 +1421,9 @@ SETofBUFFER_EVENT
21 unused
</literallayout>
</sect1>
</chapter>
<sect1 id="requests">
<chapter id="requests">
<title>REQUESTS</title>
<literallayout class="monospaced">
@ -1623,6 +1623,5 @@ VALUEs
</literallayout>
</sect1>
</chapter>
</book>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<!--translated from security.tex, on 2010-06-27 15:29:00,
by TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)
xhtml,docbook,html,refcaption -->

View File

@ -60,8 +60,7 @@ copyright holders.
</legalnotice>
</bookinfo>
<chapter><title>TITLE</title>
<sect1 id="Overview">
<chapter id="Overview">
<title>Overview</title>
<para>
<!-- .LP -->
@ -94,9 +93,9 @@ the window's geometry in the core protocol. An expected convention would be
that client programs expand their shape to fill the area offered by the
window manager.
</para>
</sect1>
</chapter>
<sect1 id="Description">
<chapter id="Description">
<title>Description</title>
<para>
Each window (even with no shapes specified) is defined by three regions: the
@ -264,9 +263,9 @@ the server is permitted to ignore requested changes to the bounding region
of a root window. If the server accepts bounding region changes, the contents
of the screen outside the bounding region are implementation dependent.
</para>
</sect1>
</chapter>
<sect1 id="Types">
<chapter id="Types">
<title>Types</title>
<para>
<!-- .LP -->
@ -307,9 +306,9 @@ produce the new destination region.
indicates that the destination region is subtracted from the source region to
produce the new destination region.
</para>
</sect1>
</chapter>
<sect1 id="Requests">
<chapter id="Requests">
<title>Requests</title>
<para>
<function>ShapeQueryVersion</function>
@ -802,9 +801,9 @@ values is the same as in the
<function>ShapeRectangles</function>
request.
</para>
</sect1>
</chapter>
<sect1 id="Events">
<chapter id="Events">
<title>Events</title>
<para>
<function>ShapeNotify</function>
@ -870,9 +869,9 @@ current shape. When shaped is
these will indicate the extents of the default region. The timestamp
indicates the server time when the shape was changed.
</para>
</sect1>
</chapter>
<sect1 id="Encoding">
<chapter id="Encoding">
<title>Encoding</title>
<para>
Please refer to the X11 Protocol Encoding document as this document uses
@ -883,7 +882,7 @@ conventions established there.
The name of this extension is "SHAPE".
</para>
<sect2 id="New_Types">
<sect1 id="New_Types">
<title>New Types</title>
<literallayout class="monospaced">
@ -901,9 +900,9 @@ SHAPE_OP
3 Subtract
4 Invert
</literallayout>
</sect2>
</sect1>
<sect2 id="Requests_2">
<sect1 id="Requests_2">
<title>Requests</title>
<literallayout class="monospaced">
<function>ShapeQueryVersion</function>
@ -1055,9 +1054,9 @@ SHAPE_OP
20 unused
8n LISTofRECTANGLE rectangles
</literallayout>
</sect2>
</sect1>
<sect2 id="Events_2">
<sect1 id="Events_2">
<title>Events</title>
<literallayout class="monospaced">
<function>ShapeNotify</function>
@ -1073,7 +1072,6 @@ SHAPE_OP
1 BOOL shaped
11 unused
</literallayout>
</sect2>
</sect1>
</chapter>

View File

@ -4,7 +4,7 @@
<!-- lifted from troff+ms+XMan by doclifter -->
<book id="mit-shm">
<book id="shm">
<bookinfo>
<title>MIT-SHM(The MIT Shared Memory Extension)</title>
@ -67,9 +67,7 @@ in this Software without prior written authorization from the X Consortium.
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<sect1 id="REQUIREMENTS">
<chapter id="REQUIREMENTS">
<title>REQUIREMENTS</title>
<para>
The shared memory extension is provided only by some X servers. To find out
@ -82,9 +80,9 @@ Additionally, the shared memeory maximum size will need to be increased on
both Sun and Digital systems; the defaults are far too small for any useful
work.
</para>
</sect1>
</chapter>
<sect1 id="WHAT_IS_PROVIDED">
<chapter id="WHAT_IS_PROVIDED">
<title>WHAT IS PROVIDED</title>
<para>
@ -106,9 +104,9 @@ pixmap data; if the pixmaps are stored in some magic graphics hardware, your
application will not be able to share them with the server. Xdpyinfo(1)
doesn't print this particular nugget of information.
</para>
</sect1>
</chapter>
<sect1 id="HOW_TO_USE_THE_SHARED_MEMORY_EXTENSION">
<chapter id="HOW_TO_USE_THE_SHARED_MEMORY_EXTENSION">
<title>HOW TO USE THE SHARED MEMORY EXTENSION</title>
<para>
Code which uses the shared memory extension must include a number of header
@ -165,9 +163,9 @@ conventional Xlib calls. When the extension is available,
version numbers of the extension implementation, and "pixmaps" which is
True iff shared memory pixmaps are supported.
</para>
</sect1>
</chapter>
<sect1 id="USE_OF_SHARED_MEMORY_XIMAGES">
<chapter id="USE_OF_SHARED_MEMORY_XIMAGES">
<title>USE OF SHARED MEMORY XIMAGES</title>
<para>
The basic sequence of operations for shared memory XImages is as follows:
@ -408,9 +406,9 @@ shmdt (shminfo.shmaddr);
shmctl (shminfo.shmid, IPC_RMID, 0);
</literallayout>
</sect1>
</chapter>
<sect1 id="USE_OF_SHARED_MEMORY_PIXMAPS">
<chapter id="USE_OF_SHARED_MEMORY_PIXMAPS">
<title>USE OF SHARED MEMORY PIXMAPS</title>
<para>
Unlike X images, for which any image format is usable, the shared memory
@ -469,6 +467,5 @@ contents directly through the shared memory segment. Shared memory pixmaps
are destroyed in the usual manner with XFreePixmap, though you should detach
and destroy the shared memory segment itself as shown above.
</para>
</sect1>
</chapter>
</book>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<!--translated from sync.tex, on 2010-06-29 10:52:00,
by TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/) xhtml,docbook,html,refcaption -->
@ -9,7 +9,7 @@ by TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/) xhtml,docbook,html,ref
<book id="sync">
<bookinfo>
<title>X Synchronization Extention Protocol</title>
<title>X Synchronization Extension Protocol</title>
<subtitle>X Consortium Standard</subtitle>
<releaseinfo>X Version 11, Release 6.6.84</releaseinfo>
<authorgroup>
@ -20,18 +20,23 @@ by TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/) xhtml,docbook,html,ref
<othercredit>
<firstname>Dave</firstname>
<surname>Carver</surname>
<affiliation><orgname>Digital EquipmentCorporation, MIT/Project Athena</orgname></affiliation>
<affiliation><orgname>Digital Equipment Corporation, MIT/Project Athena</orgname></affiliation>
</othercredit>
<othercredit>
<firstname>Jim</firstname>
<surname>Gettys</surname>
<affiliation><orgname>Digital EquipmentCorporation, Cambridge Research Laboratory</orgname></affiliation>
<affiliation><orgname>Digital Equipment Corporation, Cambridge Research Laboratory</orgname></affiliation>
</othercredit>
<othercredit>
<firstname>David</firstname>
<surname>Wiggins</surname>
<affiliation><orgname>X Consortium, Inc.</orgname></affiliation>
</othercredit>
<othercredit>
<firstname>James</firstname>
<surname>Jones</surname>
<affiliation><orgname>NVIDIA Corporation</orgname></affiliation>
</othercredit>
</authorgroup>
<corpname>X Consortium Standard</corpname>
@ -43,8 +48,9 @@ Digital Equipment Corporation, Maynard, Massachusetts
</holder>
</copyright>
<copyright><year>1991</year><holder>X Consortium</holder></copyright>
<copyright><year>2010</year><holder>NVIDIA Corporation</holder></copyright>
<releaseinfo>Version 3.0</releaseinfo>
<releaseinfo>Version 3.1</releaseinfo>
<affiliation><orgname>X Consortium</orgname></affiliation>
<productnumber>X Version 11, Release 6.8</productnumber>
@ -52,10 +58,10 @@ Digital Equipment Corporation, Maynard, Massachusetts
<para>
Permission to use, copy, modify, and distribute this documentation for any
purpose and without fee is hereby granted, provided that the above
copyright notice appear in all copies. Olivetti, Digital, MIT, and the
X Consortium make no representations about the suitability for any purpose
of the information in this document. This documentation is provided as
is without express or implied warranty.
copyright notice appear in all copies. Olivetti, Digital, MIT, the
X Consortium, and NVIDIA make no representations about the suitability for
any purpose of the information in this document. This documentation is
provided as is without express or implied warranty.
</para>
<para>
@ -133,12 +139,17 @@ frame marker.
</para>
<para>
The extension adds <function>Counter</function> and
<function>Alarm</function> to the set of resources managed by the
The extension adds <function>Counter</function>, <function>Alarm</function>,
and <function>Fence</function> to the set of resources managed by the
server. A counter has a 64-bit integer value that may be increased or
decreased by client requests or by the server internally. A client can block
by sending an Await request that waits until one of a set of synchronization
conditions, called TRIGGERs, becomes TRUE.
conditions, called TRIGGERs, becomes TRUE. Alarms generate events when
counter values go through a specified transition. A fence has two possible
states: triggered and not triggered. Client requests can put the fence in
either of these states. A client can block until one of a set of fences
becomes triggered by sending an AwaitFence request. Fences are bound to a
particular screen at creation time.
</para>
<para>
@ -168,6 +179,21 @@ clients to receive an event on a regular basis when a particular counter
is changed.
</para>
<para>
The <function>CreateFence</function> request allows a client to create a
<function>Fence</function> that can be triggered and reset using
<function>TriggerFence</function> and <function>ResetFence</function>
requests, respectively. <function>CreateFence</function> takes a drawable
argument that implies which screen the fence should be created on. The
<function>TriggerFence</function> request changes the fence's state only
after all previous rendering commands affecting objects owned by the given
fence's screen have completed. Note that while fence objects are bound
to a screen and the simple trigger operation provided by this extension
operates at screen granularity, other extensions may add more fine-grained
trigger operations based on any number of events. The screen binding
merely establishes an upper bound for the scope of fence operations.
</para>
</sect1>
<sect1 id="types">
<title>Types</title>
@ -201,6 +227,7 @@ SYSTEMCOUNTER: [
]
ALARM: XID
ALARMSTATE: {Active,Inactive,Destroyed}
FENCE: XID
</literallayout>
<para>
@ -283,6 +310,14 @@ registry of system counter names to avoid collisions in the name space.
<para>
An ALARM is the client-side handle on an <function>Alarm</function> resource.
</para>
<para>
The FENCE type defines the client-side handle on a server
<function>Fence</function>. A fence can only be in one of two states,
represented by a BOOL. If the value is TRUE, the fence is in the triggered
state. Otherwise, the fence is in the not triggered state.
</para>
</sect1>
<sect1 id="errors">
@ -307,6 +342,15 @@ does not name a defined ALARM.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Fence</term>
<listitem>
<para>
This error is generated if the value for a FENCE argument in a request
does not name a defined FENCE.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
@ -341,7 +385,7 @@ and v1.version_minor &lt;= v2.version_minor. Compatible means that the
functionality is fully supported in an identical fashion in the two versions.
</para>
<para>
This document describes major version 3, minor version 0 of the SYNC protocol.
This document describes major version 3, minor version 1 of the SYNC protocol.
</para>
</listitem>
</varlistentry>
@ -740,6 +784,118 @@ server.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CreateFence</term>
<listitem>
<literallayout class="monospaced">
drawable: DRAWABLE
id: FENCE
initially-triggered: BOOL
Errors: <function>IDChoice</function>,<function>Alloc</function>
</literallayout>
<para>
This request creates a fence on the screen associated with drawable and
assigns the specified id to it. The fence is in the triggered state iff
initially-triggered is TRUE. There are no clients waiting on the fence.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TriggerFence</term>
<listitem>
<literallayout class="monospaced">
fence: FENCE
Errors: <function>Fence</function>
</literallayout>
<para>
This request puts the given fence in the triggered state after all rendering
from previous requests that affects resources owned by the fence's screen has
completed. This includes requests from other clients if those requests have
been dispatched. This request has no visible effects if the fence was already
in the triggered state. A <function>Fence</function> error is generated if
fence does not name a valid fence.
</para>
<para>
Note that the given fence's state is not necessarily directly modified by this
request. The state change need only be queued to occur after the required
rendering has completed. Clients should take care to not assume the fence will
be in the triggered state in subsequent requests, such as those that operate
on the given fence immediately. <function>AwaitFence</function> should first
be issued if subsequent requests require the fence to be in the triggered
state.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ResetFence</term>
<listitem>
<literallayout class="monospaced">
fence: FENCE
Errors: <function>Fence</function>,<function>Match</function>
</literallayout>
<para>
This request immediately puts the given fence in the not triggered state.
A <function>Match</function> error is generated if the fence is not in the
triggered state. A <function>Fence</function> error is generated if fence
does not name a valid fence.
</para>
<para>
See the warnings above regarding <function>TriggerFence</function>'s delayed
effect. In particular, a <function>TriggerFence</function> request
immediately followed by a <function>ResetFence</function> request is likely
to result in a <function>Match</function> error. An
<function>AwaitFence</function> request should be issued between the two.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DestroyFence</term>
<listitem>
<literallayout class="monospaced">
fence: FENCE
Errors: <function>Fence</function>
</literallayout>
<para>
This request destroys the given fence. All clients waiting on this fence are
released. A fence is destroyed automatically when the connection to the client
that created the fence is closed if the close-down mode is
<function>DestroyAll</function>. A <function>Fence</function> error is
generated if fence does not name a valid fence.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>QueryFence</term>
<listitem>
<literallayout class="monospaced">
fence: FENCE
=>
triggered: BOOL
Errors: <function>Fence</function>
</literallayout>
<para>
This request returns TRUE if the given fence is triggered, or FALSE if it
is not triggered. A <function>Fence</function> error is generated if
fence does not name a valid fence.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>AwaitFence</term>
<listitem>
<literallayout class="monospaced">
fence-list: LISTofFENCE
Errors: <function>Fence</function>,<function>Alloc</function>
</literallayout>
<para>
When this request is executed, the processing of further requests for the
client is blocked until one or more of the fences in fence-list reaches the
triggered state. If any of the fences are already in the triggered state,
request processing resumes immediately. A <function>Fence</function> error
is generated if any member of fence-list does not name a valid fence.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
@ -844,6 +1000,7 @@ TRIGGER:
WAITCONDITION:
20 TRIGGER trigger
8 INT64 event threshold
FENCE: CARD32
</literallayout>
<para>
@ -872,6 +1029,14 @@ groups, the byte ordering determined during connection setup is used.
2 CARD16 minor opcode
1 CARD8 major opcode
21 unused
<function>Fence</function>
1 0 Error
1 Base + 2 code
2 CARD16 sequence number
4 CARD32 bad fence
2 CARD16 minor opcode
1 CARD8 major opcode
21 unused
</literallayout>
</sect1>
@ -1026,6 +1191,52 @@ GetPriority
4 INT32 priority
20 unused
CreateFence
1 CARD8 major opcode
1 14 minor opcode
2 4 request length
4 DRAWABLE drawable
4 FENCE id
1 BOOL initially triggered
3 unused
TriggerFence
1 CARD8 major opcode
1 15 minor opcode
2 2 request length
4 FENCE id
ResetFence
1 CARD8 major opcode
1 16 minor opcode
2 2 request length
4 FENCE id
DestroyFence
1 CARD8 major opcode
1 17 minor opcode
2 2 request length
4 FENCE id
QueryFence
1 CARD8 major opcode
1 18 minor opcode
2 2 request length
4 FENCE id
=>
1 1 Reply
1 unused
2 CARD16 sequence number
4 0 reply length
1 BOOL triggered
23 unused
AwaitFence
1 CARD8 major opcode
1 19 minor opcode
2 1 + n request length
4*n LISTofFENCE wait conditions
</literallayout>
</sect1>

View File

@ -64,9 +64,7 @@ X Window System is a trademark of The Open Group.
</legalnotice>
</bookinfo>
<chapter>
<title>TITLE</title>
<sect1 id="Overview">
<chapter id="Overview">
<title>Overview</title>
<para>
This extension has three purposes: a) to provide mechanism for a special
@ -101,9 +99,9 @@ already been allocated, the color will be allocated in the private colormap
at the same locaton as in the default colormap (instead of in the first
available location.)
</para>
</sect1>
</chapter>
<sect1 id="Requests">
<chapter id="Requests">
<title>Requests</title>
<para>
<function>QueryVersion</function>
@ -246,23 +244,23 @@ BadMatch error is generated if if cmap does not belong to a GrayScale,
PseudoColor, or DirectColor visual.
</para>
</sect1>
</chapter>
<sect1 id="Events_and_Errors">
<chapter id="Events_and_Errors">
<title>Events and Errors</title>
<para>
No new events or errors are defined by this extension.
</para>
</sect1>
<sect1 id="Changes_to_existing_protocol_">
</chapter>
<chapter id="Changes_to_existing_protocol_">
<title>Changes to existing protocol.</title>
<para>
None.
</para>
</sect1>
</chapter>
<sect1 id="Encoding">
<chapter id="Encoding">
<title>Encoding</title>
<para>
The name of this extension is "TOG-CUP".
@ -338,9 +336,9 @@ additional alloc-ok member in the CUPStoreColors reply.)
#xF0 unused
1 unused
</literallayout>
</sect1>
</chapter>
<sect1 id="C_Language_Binding">
<chapter id="C_Language_Binding">
<title>C Language Binding</title>
<para>
@ -531,9 +529,9 @@ colors are read-only (shareable). XCupStoreColors returns the number of
colors that were successfully allocated in the colormap.
</para>
</sect1>
</chapter>
<sect1 id="Using_the_TOG_CUP_extension_and_Colormap_Utilization_Policy">
<chapter id="Using_the_TOG_CUP_extension_and_Colormap_Utilization_Policy">
<title>Using the TOG-CUP extension and Colormap Utilization Policy</title>
<para>
The X server preallocates any hardware or desktop special colors in the
@ -557,6 +555,6 @@ using XCupStoreColors the colors will be allocated sharable (read-only) and
any other application which allocates the same color will share that color
cell.
</para>
</sect1>
</chapter>
</book>

View File

@ -59,10 +59,7 @@ in this Software without prior written authorization from the X Consortium.
</bookinfo>
<chapter>
<title>TITLE</title>
<sect1 id="Overview">
<chapter id="Overview">
<title>Overview</title>
<para>
This extension is a minimal set of client and server extensions
@ -110,9 +107,9 @@ Minimize performance penalties on normal server operation.
</para>
</listitem>
</itemizedlist>
</sect1>
</chapter>
<sect1 id="Description">
<chapter id="Description">
<title>Description</title>
<para>
The functions provided by this extension fall into two groups:
@ -167,9 +164,9 @@ or pressed a key or button.
</varlistentry>
</variablelist>
</sect1>
</chapter>
<sect1 id="Types">
<chapter id="Types">
<title>Types</title>
<para>
The following types are used in the request and event definitions in
@ -223,9 +220,9 @@ CURSOR { <function>CurrentCursor</function>, <function> None</function> }
or a cursor as defined by the X11 Protocol.
</para>
</sect1>
</chapter>
<sect1 id="Client_Operations">
<chapter id="Client_Operations">
<title>Client Operations</title>
<para>
@ -330,9 +327,9 @@ in the buffer and
<function>False</function>
otherwise.
</para>
</sect1>
</chapter>
<sect1 id="Server_Requests">
<chapter id="Server_Requests">
<title>Server Requests</title>
<para>
<function>XTestGetVersion</function>
@ -607,9 +604,9 @@ If impervious is
then the executing client returns to the normal state of being
susceptible to server grabs.
</para>
</sect1>
</chapter>
<sect1 id="Encoding">
<chapter id="Encoding">
<title>Encoding</title>
<para>
Please refer to the X11 Protocol Encoding document as this document uses
@ -620,7 +617,7 @@ conventions established there.
The name of this extension is "XTEST".
</para>
<sect2 id="New_Types">
<sect1 id="New_Types">
<title>New Types</title>
<literallayout class="monospaced">
FAKE_EVENT_TYPE
@ -635,9 +632,9 @@ FAKE_EVENT_TYPE
NOTE that the above values are defined to be the same as those for
the corresponding core protocol event types.
</para>
</sect2>
</sect1>
<sect2 id="Requests">
<sect1 id="Requests">
<title>Requests</title>
<literallayout class="monospaced">
@ -700,10 +697,10 @@ the corresponding core protocol event types.
1 BOOL impervious
3 unused
</literallayout>
</sect2>
</sect1>
</chapter>
<sect1 id="References">
<chapter id="References">
<title>References</title>
<para>
Annicchiarico, D., et al.,
@ -717,6 +714,6 @@ Drake, K. J.,
Minimum X11 Testing Extension</emphasis>.
UniSoft Ltd., June 1991.
</para>
</sect1>
</chapter>
</book>

View File

@ -54,7 +54,7 @@ PERFORMANCE OF THIS SOFTWARE.
#define SYNC_NAME "SYNC"
#define SYNC_MAJOR_VERSION 3
#define SYNC_MINOR_VERSION 0
#define SYNC_MINOR_VERSION 1
#define XSyncCounterNotify 0
@ -65,7 +65,8 @@ PERFORMANCE OF THIS SOFTWARE.
#define XSyncBadCounter 0L
#define XSyncBadAlarm 1L
#define XSyncNumberErrors (XSyncBadAlarm + 1)
#define XSyncBadFence 2L
#define XSyncNumberErrors (XSyncBadFence + 1)
/*
* Flags for Alarm Attributes
@ -172,6 +173,7 @@ typedef enum {
typedef XID XSyncCounter;
typedef XID XSyncAlarm;
typedef XID XSyncFence;
typedef struct _XSyncValue {
int hi;
unsigned int lo;

View File

@ -67,6 +67,12 @@ PERFORMANCE OF THIS SOFTWARE.
#define X_SyncDestroyAlarm 11
#define X_SyncSetPriority 12
#define X_SyncGetPriority 13
#define X_SyncCreateFence 14
#define X_SyncTriggerFence 15
#define X_SyncResetFence 16
#define X_SyncDestroyFence 17
#define X_SyncQueryFence 18
#define X_SyncAwaitFence 19
/* cover up types from sync.h to make sure they're the right size for
* protocol packaging. These will be undef'ed after all the protocol
@ -74,6 +80,8 @@ PERFORMANCE OF THIS SOFTWARE.
*/
#define XSyncCounter CARD32
#define XSyncAlarm CARD32
#define XSyncFence CARD32
#define Drawable CARD32
/*
* Initialize
@ -336,6 +344,92 @@ typedef struct {
} xSyncGetPriorityReply;
#define sz_xSyncGetPriorityReply 32
/*
* Create Fence
*/
typedef struct _xSyncCreateFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
Drawable d B32;
XSyncFence fid B32;
BOOL initially_triggered;
CARD8 pad0;
CARD16 pad1;
} xSyncCreateFenceReq;
#define sz_xSyncCreateFenceReq 16
/*
* Put a fence object in the "triggered" state.
*/
typedef struct _xSyncTriggerFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncTriggerFenceReq;
#define sz_xSyncTriggerFenceReq 8
/*
* Put a fence in the "untriggered" state.
*/
typedef struct _xSyncResetFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncResetFenceReq;
#define sz_xSyncResetFenceReq 8
/*
* Destroy a fence object
*/
typedef struct _xSyncDestroyFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncDestroyFenceReq;
#define sz_xSyncDestroyFenceReq 8
/*
* Query a fence object
*/
typedef struct _xSyncQueryFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
XSyncFence fid B32;
} xSyncQueryFenceReq;
#define sz_xSyncQueryFenceReq 8
/*
* Wait for any of a list of fence sync objects
* to reach the "triggered" state.
*/
typedef struct _xSyncAwaitFenceReq {
CARD8 reqType;
CARD8 syncReqType;
CARD16 length B16;
} xSyncAwaitFenceReq;
#define sz_xSyncAwaitFenceReq 4
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
BOOL triggered;
BYTE pad0;
CARD16 pad1 B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xSyncQueryFenceReply;
#define sz_xSyncQueryFenceReply 32
/*
* Events
*/
@ -373,6 +467,8 @@ typedef struct _xSyncAlarmNotifyEvent {
#undef XSyncCounter
#undef XSyncAlarm
#undef XSyncFence
#undef Drawable
#endif /* _SYNCPROTO_H_ */

View File

@ -1,4 +1,3 @@
/* $Xorg: syncstr.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
@ -48,7 +47,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
/* $XFree86: xc/include/extensions/syncstr.h,v 1.3 2003/07/16 01:38:24 dawes Exp $ */
#ifndef _SYNCSTR_H_
#define _SYNCSTR_H_