Tizen 2.1 base tizen_2.1 tizen_2.2 2.1b_release 2.2.1_release 2.2_release accepted/tizen_2.1/20130425.024050 submit/tizen_2.1/20130424.234940 submit/tizen_2.2/20130714.155325
authorJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:54:47 +0000 (01:54 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:54:47 +0000 (01:54 +0900)
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
README [new file with mode: 0755]
XResproto.h [new file with mode: 0644]
autogen.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
packaging/xorg-x11-proto-resource.spec [new file with mode: 0644]
resourceproto.pc.in [new file with mode: 0644]
resproto.txt [new file with mode: 0644]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..d878fd6
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,22 @@
+Copyright (c) 2002  XFree86 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 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
+XFREE86 PROJECT 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.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..e9cbed0
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,320 @@
+commit 4be619918d604cbf63994ebe8357b811b5bd2452
+Author: Erkki Seppälä <erkki.seppala@vincit.fi>
+Date:   Fri May 27 21:25:39 2011 -0700
+
+    Bumped version number: 1.1.1 => 1.2.0
+    
+    Signed-off-by: Erkki Seppälä <erkki.seppala@vincit.fi>
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit c4228d3189b1d12fa65e826ab356b2eee4f0548b
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Tue May 24 15:01:42 2011 -0700
+
+    Distribute & install resproto.txt with the release
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit b2629d78ae8acfbfc449f6b0e973716975d4e8d7
+Author: Erkki Seppälä <erkki.seppala@vincit.fi>
+Date:   Tue Nov 30 14:12:58 2010 +0200
+
+    Protocol records for XRes v1.2
+    
+    Incorporates comments from the list.
+    
+    Signed-off-by: Erkki Seppälä <erkki.seppala@vincit.fi>
+    Reviewed-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 1eb1d726921493db463b9b790bf25532fdc43287
+Author: Rami Ylimäki <rami.ylimaki@vincit.fi>
+Date:   Fri Dec 31 14:21:08 2010 +0200
+
+    Added protocol description for XRes v1.2
+    
+    Version 1.2 of XResource protocol adds two requests:
+    XResQueryClientIds and XResQueryResourceBytes. They can be used for
+    more exactly determining which resources are used by which clients.
+    
+    This patch incorporates comments from the mailing list.
+    
+    Acked-by: Gaetan Nadon <memsize@videotron.ca>
+    Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi>
+    Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 386946098f97b9137af3265b5608fdcf22c7d49a
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Thu Jan 6 22:16:55 2011 -0800
+
+    Add missing XFree86 copyright notice to COPYING
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 2cbf7d2ba3da72c2454d707e0109732c46a0c9d9
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Wed Dec 8 22:19:47 2010 -0800
+
+    resourceproto 1.1.1
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 3389416e4c58b7e7ccad8d2bccb65f3e291ef43b
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Wed Dec 8 22:17:49 2010 -0800
+
+    config: replace deprecated AC_OUTPUT file list with AC_CONFIG_FILES
+    
+    Regroup AC statements under the Autoconf initialization section.
+    Regroup AM statements under the Automake initialization section.
+    Add missing AC_CONFIG_SRCDIR
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 0545a1f26d56ab329b69be76a27e2d4d9b0f88df
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Mar 28 19:25:52 2010 -0400
+
+    config: update AC_PREREQ statement to 2.60
+    
+    Unrelated to the previous patches, the new value simply reflects
+    the reality that the minimum level for autoconf to configure
+    all x.org modules is 2.60 dated June 2006.
+    
+    ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit b5bb2e1707490805ea022f5110f229e5fbdc09e0
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Mar 28 19:00:31 2010 -0400
+
+    config: remove the pkgconfig pc.in file from EXTRA_DIST
+    
+    Automake always includes it in the tarball.
+    
+    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 06fc8dd07770bb8b10323581419c2e53e9a3f3ef
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 22 19:24:48 2009 -0500
+
+    Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
+    
+    Now that the INSTALL file is generated.
+    Allows running make maintainer-clean.
+
+commit 8c0d56bd432819c6ee23af52d93c3cd0d3331f00
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Mon Nov 16 11:13:30 2009 -0500
+
+    README: file created or updated #24206
+    
+    Contains a set of URLs to freedesktop.org.
+
+commit f98b754b0f5fea6162f4f5a0679dd35829440ce4
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 19:45:27 2009 -0500
+
+    Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432
+    
+    ChangeLog filename is known to Automake and requires no further
+    coding in the makefile.
+
+commit 8184f9a6280de23d1cc140dd2ac9bc78625e434a
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:31:29 2009 -0500
+
+    Makefile.am: INSTALL file is missing or incorrect #24206
+    
+    The standard GNU file on building/installing  tarball is copied
+    using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS
+    Add INSTALL target
+
+commit 406346c1a261127fae382a96010e7fb654115188
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 18:11:36 2009 -0500
+
+    configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242
+    
+    This macro aggregate a number of existing macros that sets commmon
+    X.Org components configuration options. It shields the configuration file from
+    future changes.
+
+commit 2b0811c46f7aa76cdc14eb3516f3120e31cdaf73
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sun Nov 15 13:55:25 2009 -0500
+
+    configure.ac: AM_MAINTAINER_MODE missing #24238
+    
+    This turns off maintainer mode build rules in tarballs.
+    Works in conjunction with autogen.sh --enable-maintainer-mode
+
+commit adb6c60a2f6705310d586fc4dfec97e41624915a
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date:   Sat Nov 14 18:26:47 2009 -0500
+
+    .gitignore: use common defaults with custom section # 24239
+    
+    Using common defaults will reduce errors and maintenance.
+    Only the very small or inexistent custom section need periodic maintenance
+    when the structure of the component changes. Do not edit defaults.
+
+commit 11843ce15572214833063a26ac87a2fa6ab74bca
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 25 16:13:15 2009 +1000
+
+    resourceproto 1.1.0
+
+commit 2388aa12158fca3d8c38ee59ecc5cf35eafa7d57
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 25 16:29:38 2009 +1000
+
+    Remove RCS tags.
+
+commit 0a4fd7fc0cf0f56fbe112bd14725560adfa67b73
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date:   Tue Jan 27 20:06:28 2009 -0200
+
+    Janitor: Correct make distcheck and dont distribute autogen.sh
+
+commit 40fded7637faa3548052cbf419d48ea081b1b5cb
+Author: James Cloos <cloos@jhcloos.com>
+Date:   Thu Dec 6 16:39:06 2007 -0500
+
+    Replace static ChangeLog with dist-hook to generate from git log
+
+commit 2740cf052e07fef8808991863409829bab22f016
+Author: James Cloos <cloos@jhcloos.com>
+Date:   Mon Sep 3 05:54:15 2007 -0400
+
+    Add *~ to .gitignore to skip patch/emacs droppings
+
+commit c24f19b61eb4a59b7a71f8aa238f3093d71b2fb2
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Fri Jul 14 18:56:31 2006 -0700
+
+    renamed: .cvsignore -> .gitignore
+
+commit 9268501218b3f4eb1b0ce13bfab9e9543adc01a1
+Author: Kevin E Martin <kem@kem.org>
+Date:   Thu Dec 15 00:24:38 2005 +0000
+
+    Update package version number for final X11R7 release candidate.
+
+commit 0002f2f7e13aeabd494b55be2280b060410a6e8a
+Author: Kevin E Martin <kem@kem.org>
+Date:   Wed Oct 19 02:48:15 2005 +0000
+
+    Update package version number for RC1 release.
+
+commit e09681a1043fbc48447033b78de2c87252507d1b
+Author: Eric Anholt <anholt@freebsd.org>
+Date:   Tue Aug 2 19:19:39 2005 +0000
+
+    Add basic .cvsignore files for proto modules.
+
+commit f6008b2e1f5051ab421abbe08614aac67847742e
+Author: Kevin E Martin <kem@kem.org>
+Date:   Fri Jul 29 21:22:56 2005 +0000
+
+    Various changes preparing packages for RC0:
+    - Verify and update package version numbers as needed
+    - Implement versioning scheme
+    - Change bug address to point to bugzilla bug entry form
+    - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to
+        reenable it)
+    - Fix makedepend to use pkgconfig and pass distcheck
+    - Update build script to build macros first
+    - Update modular Xorg version
+
+commit 79eb18feab7f1a9e07d97adb3be754b3c863d696
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date:   Tue Jun 7 18:51:23 2005 +0000
+
+    - symlink.sh: Move XRes.h from proto/Resource to
+        lib/XRes/include/X11/extensions
+    - symlink.sh: Add XRes linking
+    - xc/lib/XRes/*.c: conditionally include config.h
+    - lib/XRes: add directories and build system.
+
+commit 53500326172c6277a698926f78e042f80f03bb2d
+Author: Daniel Stone <daniel@fooishbar.org>
+Date:   Sat May 21 04:18:30 2005 +0000
+
+    Set version to 1.0.
+
+commit f5f3a42ee3de80dfbb798727c77ad0454b70723e
+Author: Adam Jackson <ajax@nwnk.net>
+Date:   Thu May 19 00:22:40 2005 +0000
+
+    revert last change, didn't do right thing at all, sorry for the noise
+
+commit 5d91974af1155de1086434a36a6c1531a8d80d7b
+Author: Adam Jackson <ajax@nwnk.net>
+Date:   Thu May 19 00:10:19 2005 +0000
+
+    Require automake 1.7 in AM_INIT_AUTOMAKE
+
+commit d66e491cd3a75b7e88177b9857dd7079d11361fe
+Author: Josh Triplett <josh@speakeasy.net>
+Date:   Tue May 17 19:43:16 2005 +0000
+
+    Add COPYING file for Resource. Per the advice of Daniel Stone, Resource
+        falls under the generic XFree86 catch-all license (from before the
+        problematic license change).
+
+commit 7e6e21adc53035ddffba7bb29676b7f483956df8
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date:   Mon May 9 18:20:06 2005 +0000
+
+    Change all the protonames from <extension>Ext to <extension>Proto.
+
+commit f7ef242967454e96ecc41751ed04b8ec434d17c8
+Author: Kevin E Martin <kem@kem.org>
+Date:   Fri May 6 01:46:31 2005 +0000
+
+    Initial build system files for proto module.
+
+commit e33c0b156299bb0d582b573ffe185699d6415b88
+Author: Egbert Eich <eich@suse.de>
+Date:   Fri Apr 23 18:43:06 2004 +0000
+
+    Merging XORG-CURRENT into trunk
+
+commit eeb54769c6aec119ae900ed41a1cd12d62c88aa9
+Author: Egbert Eich <eich@suse.de>
+Date:   Sun Mar 14 08:31:36 2004 +0000
+
+    Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
+
+commit 600d724bb28e8604eefa891daf2adefc38f6c03a
+Author: Egbert Eich <eich@suse.de>
+Date:   Wed Mar 3 12:10:54 2004 +0000
+
+    Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
+
+commit 17c656129e003eba2f71b644c335eabb96e3361a
+Author: Egbert Eich <eich@suse.de>
+Date:   Thu Feb 26 13:35:11 2004 +0000
+
+    readding XFree86's cvs IDs
+
+commit d2ba0bfffba0903acdfd37973c0c11be3bbfec48
+Author: Egbert Eich <eich@suse.de>
+Date:   Thu Feb 26 09:22:27 2004 +0000
+
+    Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
+
+commit 7d9398ff4706c144a8562f2272c89b67947c7e0d
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Fri Nov 14 16:48:42 2003 +0000
+
+    XFree86 4.3.0.1
+
+commit 258c66ae0da974c415026fcf4961b1ced793eaaf
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Fri Nov 14 16:48:42 2003 +0000
+
+    Initial revision
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..8b82ade
--- /dev/null
+++ b/INSTALL
@@ -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.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..d5d496f
--- /dev/null
@@ -0,0 +1,20 @@
+resourcedir = $(includedir)/X11/extensions
+resource_HEADERS = \
+       XResproto.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = resourceproto.pc
+
+dist_doc_DATA = resproto.txt
+
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+       $(INSTALL_CMD)
+
+ChangeLog:
+       $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog INSTALL
diff --git a/README b/README
new file mode 100755 (executable)
index 0000000..e4c5d5d
--- /dev/null
+++ b/README
@@ -0,0 +1,30 @@
+                               X Resource Extension
+
+This extension defines a protocol that allows a client to query the  X  server
+about its usage of various resources.
+
+Extension : X-Resource
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+        http://lists.freedesktop.org/mailman/listinfo/xorg
+
+Please submit bug reports to the Xorg bugzilla:
+
+        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+        git://anongit.freedesktop.org/git/xorg/proto/resourceproto
+
+        http://cgit.freedesktop.org/xorg/proto/resourceproto
+
+For patch submission instructions, see:
+
+       http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+        http://wiki.x.org/wiki/GitPage
+
diff --git a/XResproto.h b/XResproto.h
new file mode 100644 (file)
index 0000000..d7e20b1
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+   Copyright (c) 2002  XFree86 Inc
+*/
+
+#ifndef _XRESPROTO_H
+#define _XRESPROTO_H
+
+#define XRES_MAJOR_VERSION 1
+#define XRES_MINOR_VERSION 2
+
+#define XRES_NAME "X-Resource"
+
+/* v1.0 */
+#define X_XResQueryVersion            0
+#define X_XResQueryClients            1
+#define X_XResQueryClientResources    2
+#define X_XResQueryClientPixmapBytes  3
+
+/* Version 1.1 has been accidentally released from the version           */
+/* control and while it doesn't have differences to version 1.0, the     */
+/* next version is labeled 1.2 in order to remove the risk of confusion. */
+
+/* v1.2 */
+#define X_XResQueryClientIds          4
+#define X_XResQueryResourceBytes      5
+
+typedef struct {
+   CARD32 resource_base;
+   CARD32 resource_mask;
+} xXResClient;
+#define sz_xXResClient 8
+
+typedef struct {
+   CARD32 resource_type;
+   CARD32 count;
+} xXResType;
+#define sz_xXResType 8
+
+/* XResQueryVersion */
+
+typedef struct _XResQueryVersion {
+   CARD8   reqType;
+   CARD8   XResReqType; 
+   CARD16  length B16;
+   CARD8   client_major;
+   CARD8   client_minor;
+   CARD16  unused B16;           
+} xXResQueryVersionReq;
+#define sz_xXResQueryVersionReq 8
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;
+   CARD16  sequenceNumber B16; 
+   CARD32  length B32;
+   CARD16  server_major B16;      
+   CARD16  server_minor B16;      
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+   CARD32  pad6 B32; 
+} xXResQueryVersionReply;
+#define sz_xXResQueryVersionReply  32
+
+/* XResQueryClients */
+
+typedef struct _XResQueryClients {
+   CARD8   reqType;
+   CARD8   XResReqType;       
+   CARD16  length B16;
+} xXResQueryClientsReq;
+#define sz_xXResQueryClientsReq 4
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;     
+   CARD16  sequenceNumber B16;  
+   CARD32  length B32;
+   CARD32  num_clients B32;
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+   CARD32  pad6 B32;        
+} xXResQueryClientsReply;
+#define sz_xXResQueryClientsReply  32
+
+/* XResQueryClientResources */
+
+typedef struct _XResQueryClientResources {
+   CARD8   reqType;
+   CARD8   XResReqType;
+   CARD16  length B16;
+   CARD32  xid B32;
+} xXResQueryClientResourcesReq;
+#define sz_xXResQueryClientResourcesReq 8
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;     
+   CARD16  sequenceNumber B16;  
+   CARD32  length B32;
+   CARD32  num_types B32;
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+   CARD32  pad6 B32;
+} xXResQueryClientResourcesReply;
+#define sz_xXResQueryClientResourcesReply  32
+
+/* XResQueryClientPixmapBytes */
+
+typedef struct _XResQueryClientPixmapBytes {
+   CARD8   reqType;
+   CARD8   XResReqType;
+   CARD16  length B16;
+   CARD32  xid B32;
+} xXResQueryClientPixmapBytesReq;
+#define sz_xXResQueryClientPixmapBytesReq 8
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;
+   CARD16  sequenceNumber B16;
+   CARD32  length B32;
+   CARD32  bytes B32;
+   CARD32  bytes_overflow B32;
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+} xXResQueryClientPixmapBytesReply;
+#define sz_xXResQueryClientPixmapBytesReply  32
+
+/* v1.2 XResQueryClientIds */
+
+#define X_XResClientXIDMask      0x01
+#define X_XResLocalClientPIDMask 0x02
+
+typedef struct _XResClientIdSpec {
+   CARD32  client B32;
+   CARD32  mask B32;
+} xXResClientIdSpec;
+#define sz_xXResClientIdSpec 8
+
+typedef struct _XResClientIdValue {
+   xXResClientIdSpec spec;
+   CARD32  length B32;
+   // followed by length CARD32s
+} xXResClientIdValue;
+#define sz_xResClientIdValue (sz_xXResClientIdSpec + 4)
+
+typedef struct _XResQueryClientIds {
+   CARD8   reqType;
+   CARD8   XResReqType;
+   CARD16  length B16;
+   CARD32  numSpecs B32;
+   // followed by numSpecs times XResClientIdSpec
+} xXResQueryClientIdsReq;
+#define sz_xXResQueryClientIdsReq 8
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;
+   CARD16  sequenceNumber B16;
+   CARD32  length B32;
+   CARD32  numIds B32;
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+   CARD32  pad6 B32;
+   // followed by numIds times XResClientIdValue
+} xXResQueryClientIdsReply;
+#define sz_xXResQueryClientIdsReply  32
+
+/* v1.2 XResQueryResourceBytes */
+
+typedef struct _XResResourceIdSpec {
+   CARD32  resource;
+   CARD32  type;
+} xXResResourceIdSpec;
+#define sz_xXResResourceIdSpec 8
+
+typedef struct _XResQueryResourceBytes {
+   CARD8   reqType;
+   CARD8   XResReqType;
+   CARD16  length B16;
+   CARD32  client B32;
+   CARD32  numSpecs B32;
+   // followed by numSpecs times XResResourceIdSpec
+} xXResQueryResourceBytesReq;
+#define sz_xXResQueryResourceBytesReq 12
+
+typedef struct _XResResourceSizeSpec {
+   xXResResourceIdSpec spec;
+   CARD32  bytes B32;
+   CARD32  refCount B32;
+   CARD32  useCount B32;
+} xXResResourceSizeSpec;
+#define sz_xXResResourceSizeSpec (sz_xXResResourceIdSpec + 12)
+
+typedef struct _XResResourceSizeValue {
+   xXResResourceSizeSpec size;
+   CARD32  numCrossReferences B32;
+   // followed by numCrossReferences times XResResourceSizeSpec
+} xXResResourceSizeValue;
+#define sz_xXResResourceSizeValue (sz_xXResResourceSizeSpec + 4)
+
+typedef struct {
+   CARD8   type;
+   CARD8   pad1;
+   CARD16  sequenceNumber B16;
+   CARD32  length B32;
+   CARD32  numSizes B32;
+   CARD32  pad2 B32;
+   CARD32  pad3 B32;
+   CARD32  pad4 B32;
+   CARD32  pad5 B32;
+   CARD32  pad6 B32;
+   // followed by numSizes times XResResourceSizeValue
+} xXResQueryResourceBytesReply;
+#define sz_xXResQueryResourceBytesReply  32
+
+#endif /* _XRESPROTO_H */
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..904cd67
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..328a7cf
--- /dev/null
@@ -0,0 +1,22 @@
+dnl
+dnl Process this file with autoconf to create configure.
+
+# Initialize Autoconf
+AC_PREREQ([2.60])
+AC_INIT([ResourceProto],[1.2.0],
+        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_CONFIG_SRCDIR([Makefile.am])
+
+# Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
+
+# Require xorg-macros: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+          [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+XORG_DEFAULT_OPTIONS
+
+AC_CONFIG_FILES([Makefile
+                 resourceproto.pc])
+AC_OUTPUT
diff --git a/packaging/xorg-x11-proto-resource.spec b/packaging/xorg-x11-proto-resource.spec
new file mode 100644 (file)
index 0000000..ec39d12
--- /dev/null
@@ -0,0 +1,45 @@
+Name:     xorg-x11-proto-resource
+Summary:  X.Org X11 Protocol resourceproto
+Version:  1.2.0
+Release:  2
+Group:    Development/System
+License:  MIT
+URL:      http://www.x.org
+Source0:  %{name}-%{version}.tar.gz
+Provides: resourceproto
+
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(xorg-macros)
+
+# some file to be intalled can be ignored when rpm generates packages
+%define _unpackaged_files_terminate_build 0
+
+%description
+Description: %{summary}
+
+%prep
+%setup -q
+
+%build
+
+./autogen.sh
+%reconfigure --disable-static \
+             --libdir=%{_datadir} \
+             --without-xmlto
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%remove_docs
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_includedir}/X11/extensions/*.h
+%{_datadir}/pkgconfig/*.pc
diff --git a/resourceproto.pc.in b/resourceproto.pc.in
new file mode 100644 (file)
index 0000000..2851df1
--- /dev/null
@@ -0,0 +1,9 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+Name: ResourceProto
+Description: Resource extension headers
+Version: @PACKAGE_VERSION@
+Cflags: -I${includedir}
diff --git a/resproto.txt b/resproto.txt
new file mode 100644 (file)
index 0000000..8b322ff
--- /dev/null
@@ -0,0 +1,462 @@
+                           DRAFT FOR REVIEW
+                       The X Resource Extension
+                             Version 1.2
+                             Rami Ylimäki
+                        rami.ylimaki@vincit.fi
+
+                             ❧❧❧❧❧❧❧❧❧❧❧
+
+1. Introduction
+
+The protocol description of X Resource Extension version 1.1 has been
+either lost or has never been written. This specification documents
+version 1.0 based on reverse engineered library and server
+code. Version 1.1 has been accidentally released from the version
+control and while it doesn't have differences to version 1.0, this
+version is labeled 1.2 in order to remove the risk of confusion. In
+addition to the 1.0 description, this document introduces a new 1.2
+version of the extension.
+
+Version 1.2 is a minor release and therefore the changes are
+compatible with the previous version. Main enhancements over version
+1.0 are:
+
+- Client identification is now possible. For example, servers
+  supporting version 1.2 may report PID of local clients.
+
+- Size of any resource can be queried from the server. Servers may not
+  necessarily support size calculation for every resource. However,
+  clients have now at least the chance to let the server do resource
+  size estimation for them.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧
+
+2. Notations used in this document
+
+Notation for data types and requests follows the guidelines set in
+sections 2-4 of X Window System Protocol standard.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧
+
+3. Interoperability between version 1.1 and 1.2
+
+Version 1.2 only introduces two new requests. However, these requests
+could be seen as generalized versions of existing requests. Even
+though we aren't deprecating any old requests, libraries could
+implement some old requests using the new ones.
+
+The new XResQueryClientIds request could be used instead of
+XResQueryClients.
+
+The new XResQueryResourceBytes request could be used instead of
+XResQueryClientPixmapBytes.
+
+Using the old requests is still acceptable because we don't want to
+change the semantics of existing requests between version 1.1 and 1.2.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧
+
+4. Data types
+
+4.1 Types in version 1.0
+
+CLIENTXIDRANGE [ resource_base: CARD32
+                 resource_mask: CARD32 ]
+
+This type is used for reply of XResQueryClients in version 1.1. It
+represents the range of resource allocated for a client and can be
+also used for client identification.
+
+resource_base
+    First resource ID reserved for a client. Used also to identify the
+    clients themselves.
+resource_mask
+    Mask that can be used to identify a client from some resource
+    ID. Just zero the bits indicated by this mask from any resource ID
+    to identify the client that owns the resource.
+
+CLIENTXID [ client: XID ]
+
+This type identifies a single client by a resource owned by that
+client or by the first resource ID allocated for the client
+(resource_base of CLIENTXIDRANGE). Whenever a resource ID is used, it
+is masked by resource_mask of CLIENTXIDRANGE to find out the client
+that owns the resource.
+
+CLIENTRESOURCETYPECOUNT [ resource_type: ATOM
+                          count:         CARD32 ]
+
+This type is used for reply of XResQueryClientResources in version
+1.1. It represents the number of certain type of resources that are
+owned by some client.
+
+resource_type
+    Atom specifying the type of a resource.
+count
+    Number of resources of the given type owned by a client.
+
+4.2 Types in version 1.2
+
+4.2.1 Types used by XResQueryClientIds
+
+CLIENTIDMASK { ClientXid = 0x1, LocalClientPid = 0x2 }
+
+A bitmask specifying a client identification method. Currently only
+the PID of local clients is supported in the form of
+LocalClientPid. ClientXid is provided for backward compatibility with
+version 1.0 so that the new 1.2 requests (XResQueryClientIds) can be
+used in place of the older ones (XResQueryClients).
+
+CLIENTIDSPEC [ client: CLIENTXID or None
+               mask:   SETofCLIENTIDMASK or None ]
+
+A data structure for selecting client IDs.
+
+client
+    ID of a resource allocated for some client. Only the part
+    identifying a client is actually used. The resource_base of
+    CLIENTXIDRANGE can be used if the client doesn't own any
+    resources. However, any resource ID is accepted because that makes
+    identifying the owners of existing resources easy. The null
+    resource None can be used to select all clients.
+mask
+    Collection of identification methods that should be applied on the
+    client. The special value None can be used to apply all supported
+    identification methods.
+
+CLIENTIDVALUE [ spec:   CLIENTIDSPEC
+                length: CARD32
+                value:  LISTofCARD32 ]
+
+A data structure specifying a single client ID.
+
+spec
+    A unique identifier for a specific ID of some client. Wildcards
+    such as None and bitmask unions aren't allowed. The data structure
+    must always identify a single client and single ID type. However,
+    the client doesn't have to be specified as the resource_base of
+    CLIENTXIDRANGE and can be any resource owned by the client.
+length
+    Specifies the length of an ID in units of CARD32. The length
+    depends on the ID type. In version 1.2 the lengths are 0 for
+    ClientXid and 4 for LocalClientPid. The length of ClientXid is 0
+    because that is already stored in the spec field.
+value
+    Actual ID data. In version 1.2 this is missing for ClientXid and
+    consists of a single CARD32 for LocalClientPid.
+
+4.2.2 Types used by XResQueryResourceBytes
+
+To better understand how resources are related to each other, it's
+useful to introduce the concepts of main resource and cross
+reference. By main resource we just mean a normal resource that has a
+valid XID. By cross reference we mean a resource that is used by some
+other resource.
+
+The same resource may have both of these roles depending on the
+context. For example, there could be an ordinary pixmap resource. When
+we talk about this resource in isolation the term main resource is
+used. We call the exact same resource a cross reference when we are
+concentrating on some higher level resource, such as window or
+graphics context, that is using the lower level resource. Cross
+references may also be internal server resources that don't have a
+valid XID.
+
+RESOURCEIDSPEC [ resource: XID or None
+                 type:     ATOM or None/AnyPropertyType ]
+
+A data structure for selecting or identifying resources. The
+interpretation of fields changes depending on the context. The
+differences in interpretation are described below.
+
+resource
+    An XID of a resource. The null resource None can be used to select
+    all resources matching some type if the data structure is used in
+    XResQueryResourceBytes request. The null resource None can be used
+    to mark private server resources if the data structure is used in
+    a cross reference of XResQueryResourceBytes reply.
+type
+    An atom identifying the resource type. The null atom
+    None/AnyPropertyType can be used to select all resource types
+    matching some resource ID if the data structure is used in
+    XResQueryResourceBytes request.
+
+RESOURCESIZESPEC [ spec:      RESOURCEIDSPEC
+                   bytes:     CARD32
+                   ref_count: CARD32
+                   use_count: CARD32 ]
+
+A data structure specifying the size of a single resource.
+
+spec
+    Uniquely identifies a single resource. Wildcards such as None and
+    AnyPropertyType aren't allowed for main resources. In cross
+    references, None is used to mark internal server resources.
+bytes
+    Number of bytes allocated for the resource. The size of a resource
+    is never divided by a reference count. This is the number of bytes
+    released in server when there are no more references left to the
+    resource.
+ref_count
+    Number of total users of the resource. Typically the reference
+    count is 1 but for pixmaps and other resources used from different
+    contexts the count may be larger.
+use_count
+    Number of times the resource is used by some other resource. For
+    main resources this is typically 1, because a resource doesn't
+    usually use itself recursively. For cross references this is the
+    number of times the resource is used and is also 1 usually.
+
+RESOURCESIZEVALUE [ size:                 RESOURCESIZESPEC
+                    num_cross_references: CARD32
+                    cross_references:     LISTofRESOURCESIZESPEC ]
+
+A data structure specifying sizes of cross references to other
+resources in addition to the main resource size.
+
+size
+    Size of a main resource.
+num_cross_references
+    Number of cross references to other resources from the main
+    resource. Currently resources can only have pixmaps as cross
+    references but this can be extended to other types in the
+    future. For simple resources this field is therefore 0 and the
+    cross_references list is missing.
+cross_references:
+    Size specifications for cross references. Note that cross
+    references may contain resources that don't have a valid XID. For
+    example, a DRI2 drawable might have a cross reference to a private
+    pixmap that is used internally in the server only. These private
+    cross references are contained in this list also. This makes it
+    possible to emulate XResGetClientPixmapBytes with
+    XResGetResourceBytes.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧
+
+5. Requests
+
+5.1 Requests in version 1.0
+
+┌───
+    XResQueryVersion
+    client_major: CARD8
+    client_minor: CARD8
+    ▶
+    server_major: CARD16
+    server_minor: CARD16
+└───
+
+The client sends the highest supported version to the server and the
+server sends the highest version it supports, but no higher than the
+requested version. Major version changes can introduce
+incompatibilities in existing functionality, minor version changes
+introduce only backward compatible changes. It is the client's
+responsibility to ensure that the server supports a version which is
+compatible with its expectations.
+
+client_major
+    Major X Resource Extension version supported by client.
+client_minor
+    Minor X Resource Extension version supported by client.
+server_major
+    Highest version supported by server that is compatible with
+    client.
+server_minor
+    Highest version supported by server that is compatible with
+    client.
+
+┌───
+    XResQueryClients
+    ▶
+    num_clients: CARD32
+    clients:     LISTofCLIENTXIDRANGE
+└───
+
+The request asks X server to return the list of all currently
+connected clients.
+
+num_clients
+    Number of currently connected clients.
+clients
+    List of XID ranges allocated for the connected clients.
+
+┌───
+    XResQueryClientResources
+    client:    CLIENTXID
+    ▶
+    num_types: CARD32
+    types:     LISTofCLIENTRESOURCETYPECOUNT
+
+    Errors:    Value
+└───
+
+This request can be used to ask the number of resources owned by a
+client. The server will return the counts of each type of resource.
+
+client
+    An XID in the resource range of a client. This identifies the
+    client and not some specific resource.
+num_types
+    Number of different resource types owned by the client.
+types
+    A list of counts for each resource type.
+
+A value error is generated if invalid resource or client XID is given
+in the request.
+
+┌───
+    XResQueryClientPixmapBytes
+    client:         CLIENTXID
+    ▶
+    bytes:          CARD32
+    bytes_overflow: CARD32
+
+    Errors:         Value
+└───
+
+This request is used to get the pixmap usage of some client. The
+returned number is a sum of memory usage of each pixmap that can be
+attributed to the given client. Ideally the server goes through all
+pixmaps and divides each pixmap size by the pixmap reference count to
+get a pixmap reference size. The reference size is then added to the
+returned sum if the client happens to be referencing that pixmap. In
+practice some pixmap references may be missed, because it would be too
+difficult to keep track of all pixmap references. However, the server
+will check the most important client resources that are using pixmaps
+and tries to estimate the pixmap usage as well as is possible. In
+other words, the server need only make a best-effort attempt to
+calculate resource source, so actual resource size may differ from
+that reported in practice.
+
+client
+    Identifies a client by an ID in its resource ID range.
+bytes:
+    Number of bytes attributed to pixmap references from the client
+    resources.
+bytes_overflow:
+    Higher order word for the bytes field in case the sum of pixmap
+    reference sizes doesn't fit in CARD32.
+
+A value error is generated if invalid resource or client XID is given
+in the request.
+
+5.2 Requests in version 1.2
+
+┌───
+    XResQueryClientIds
+    num_specs:    CARD32
+    client_specs: LISTofCLIENTIDSPEC
+    ▶
+    num_ids:      CARD32
+    client_ids:   LISTofCLIENTIDVALUE
+
+    Errors:       Value
+└───
+
+XResQueryClientIds can be used to identify a given set of clients with
+some identification method. The request sends a list of specifiers
+that select clients and identification methods to server. The server
+then tries to identify the chosen clients using the identification
+methods specified for each client. The server returns IDs for those
+clients that were successfully identified. It's not an error condition
+if some identification method couldn't be applied to a client. If the
+server is unable to identify some clients, they simply aren't included
+in the returned list.
+
+The request supports wildcards in the client specifications so that in
+the most general case all IDs of all clients can be queried with a
+single CLIENTIDSPEC.
+
+The CLIENTIDSPEC of request and CLIENTIDSPEC of CLIENTIDVALUE in reply
+usually match each other. For example, if a request selected a client
+by a resource ID owned by the client, then the client is identified by
+the same resource ID in the reply. This has been done so that it would
+be easy to identify an owner of some resource.
+
+However, the CLIENTIDSPEC of returned CLIENTIDVALUE never contains any
+wildcards. If the request used a wildcard to specify all clients in a
+single CLIENTIDSPEC, then the reply has expanded the wildcard and
+returns separate CLIENTIDVALUE records for each client. In this case
+wildcarded clients are identified by resource_base of CLIENTXIDRANGE.
+
+The LocalClientPid type of IDs are included in the reply list only if
+the client executing the request asked for it and was also a local
+client itself. It doesn't make sense for remote clients to ask PIDs of
+local clients.
+
+num_specs
+    Number of client ID specifications.
+client_specs
+    A list specifying identification methods for clients. Supports
+    multiple identification methods and clients in a single
+    specification. See CLIENTIDSPEC for details.
+num_ids
+    Number of IDs that were successfully determined. Can be different
+    from num_specs or even zero if the server didn't support any
+    identification methods for the given clients.
+client_ids
+    A list specifying ID information for successfully identified
+    clients. If wildcards were used in a single CLIENTIDSPEC of
+    client_specs, then multiple CLIENTIDVALUE records may be returned
+    for that CLIENTIDSPEC. See CLIENTIDVALUE for details.
+
+A Value error is returned if the request specifies an invalid client
+XID or invalid identification method type.
+
+┌───
+    XResQueryResourceBytes
+    client:         CLIENTXID or None
+    num_specs:      CARD32
+    resource_specs: LISTofRESOURCEIDSPEC
+    ▶
+    num_sizes:      CARD32
+    sizes:          LISTofRESOURCESIZEVALUE
+
+    Errors:         Atom, Value
+└───
+
+XResQueryResourceBytes can be used to ask the sizes of resources from
+X server. The request sends a list of specifiers that selects
+resources for size calculation. The server tries to calculate the
+sizes of chosen resources and returns an estimate for a resource only
+if the size could be determined. It's not an error condition if a size
+couldn't be calculated. In that case the resources simply aren't
+included in the returned list.
+
+The request supports wildcards so that in the most general case sizes
+of all resources of all clients can be queried with a single
+RESOURCEIDSPEC. However, the reply has all wildcards expanded and
+reports a size of a single resource in each RESOURCESIZEVALUE.
+
+client
+    An ID of a client can be given to limit the query to resources of
+    that client. Just like in CLIENTIDSPEC, any resource ID can be
+    given to identify a client and None can be used if the query
+    shouldn't be limited to a specific client. Note that in some cases
+    this field is redundant because resource_specs already fully
+    determines which resources are selected. If the client ID doesn't
+    match the owner of any resource in resource_specs, no sizes are
+    returned and no error is generated.
+num_specs
+    Number of resource specifications.
+resource_specs
+    A list of resource specifications. Each specification can either
+    uniquely identify a single resource or multiple resources if
+    wildcarding is used. See RESOURCEIDSPEC for details.
+num_sizes
+    Number of resources whose size could be determined. Can be
+    different from num_specs or even zero if the server didn't support
+    size calculation for the given resources.
+sizes
+    A list of resource sizes. Each resource size is linked to a unique
+    resource. Wildcards are never used in the returned size
+    records. For example, it's not possible to receive a single
+    RESOURCESIZEVALUE that would specify the size of all pixmaps if
+    the sizes of pixmap type resources were asked. Instead, a single
+    RESOURCESIZEVALUE would be returned for each pixmap in that case.
+
+An Atom error is returned if the request specifies an invalid resource
+type. A Value error is returned if the request specifies an invalid
+XID for a client or a resource.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧