[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

x11proto-resource: Changes to 'debian-unstable'



 COPYING                              |    2 
 ChangeLog                            |   54 ++++
 Makefile.am                          |    1 
 XResproto.h                          |  100 +++++++
 configure.ac                         |    2 
 debian/changelog                     |   12 
 debian/control                       |    4 
 debian/rules                         |    4 
 debian/x11proto-resource-dev.install |    1 
 resproto.txt                         |  462 +++++++++++++++++++++++++++++++++++
 10 files changed, 636 insertions(+), 6 deletions(-)

New commits:
commit c56b9637ec9b7f1ad022919ba2bdf7ee83d44049
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:37:20 2011 +0200

    Upload to unstable.

diff --git a/debian/changelog b/debian/changelog
index 35a1437..9aeae89 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
+x11proto-resource (1.2.0-1) unstable; urgency=low
 
   * New upstream release.
   * Stop passing --disable-shared to configure, it's obsolete.
@@ -8,7 +8,7 @@ x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
   * Update Uploaders list. Thanks, David and Andres!
   * Bump Standards-Version (no changes needed).
 
- -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
+ -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:37:17 +0200
 
 x11proto-resource (1.1.1-1) unstable; urgency=low
 

commit 4970b7c6d81cce459fe6c0839e305730e6e43705
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:34:04 2011 +0200

    Bump Standards-Version (no changes needed).

diff --git a/debian/changelog b/debian/changelog
index 355a48a..35a1437 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
     safety.
   * Ship resproto.txt.
   * Update Uploaders list. Thanks, David and Andres!
+  * Bump Standards-Version (no changes needed).
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
 
diff --git a/debian/control b/debian/control
index fda7661..de5c069 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends:
  debhelper (>= 5.0.0),
  automake,
  xutils-dev (>= 1:7.5~1),
-Standards-Version: 3.8.3
+Standards-Version: 3.9.2
 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-resource
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-resource.git
 

commit 0eb3a49aec0e5d45c196df365a88a4a4bf9c55f9
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:33:10 2011 +0200

    Update Uploaders list. Thanks, David and Andres!

diff --git a/debian/changelog b/debian/changelog
index a4d1656..355a48a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
   * Switch dh_install from --list-missing to --fail-missing for additional
     safety.
   * Ship resproto.txt.
+  * Update Uploaders list. Thanks, David and Andres!
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
 
diff --git a/debian/control b/debian/control
index 0f92bea..fda7661 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: x11proto-resource
 Section: x11
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: David Nusinow <dnusinow@debian.org>, Andres Salomon <dilinger@debian.org>, Cyril Brulebois <kibi@debian.org>
+Uploaders: Cyril Brulebois <kibi@debian.org>
 Build-Depends:
  debhelper (>= 5.0.0),
  automake,

commit 6a4d935867d27f07db5e289156afbb3dca71045b
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:32:05 2011 +0200

    Ship resproto.txt.

diff --git a/debian/changelog b/debian/changelog
index df7c913..a4d1656 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
   * Stop passing --disable-shared to configure, it's obsolete.
   * Switch dh_install from --list-missing to --fail-missing for additional
     safety.
+  * Ship resproto.txt.
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
 
diff --git a/debian/x11proto-resource-dev.install b/debian/x11proto-resource-dev.install
index a74416e..57b420c 100644
--- a/debian/x11proto-resource-dev.install
+++ b/debian/x11proto-resource-dev.install
@@ -1,2 +1,3 @@
 usr/include/X11/extensions/*
 usr/lib/pkgconfig/resourceproto.pc
+usr/share/doc/resourceproto/resproto.txt usr/share/doc/x11proto-resource-dev

commit 27d51c8fe611299ae7f7af5f274d3915c17c6244
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:26:02 2011 +0200

    Switch dh_install from --list-missing to --fail-missing for additional safety.

diff --git a/debian/changelog b/debian/changelog
index debba36..df7c913 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Stop passing --disable-shared to configure, it's obsolete.
+  * Switch dh_install from --list-missing to --fail-missing for additional
+    safety.
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
 
diff --git a/debian/rules b/debian/rules
index 562402c..1aab46a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -75,7 +75,7 @@ binary-indep: build install
 
 	dh_installdocs
 	dh_installman
-	dh_install --sourcedir=debian/tmp --list-missing
+	dh_install --sourcedir=debian/tmp --fail-missing
 	dh_installchangelogs
 	dh_link
 	dh_strip

commit 0be63f9633f1e5cc1b8f4a18cc275af970b268e3
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:25:29 2011 +0200

    Stop passing --disable-shared to configure, it's obsolete.

diff --git a/debian/changelog b/debian/changelog
index 1c87bc1..debba36 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Stop passing --disable-shared to configure, it's obsolete.
 
  -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
 
diff --git a/debian/rules b/debian/rules
index 956c26c..562402c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -39,7 +39,7 @@ build-stamp:
 	mkdir -p build
 	cd build && \
 	../configure --prefix=/usr --mandir=\$${prefix}/share/man \
-	             --infodir=\$${prefix}/share/info --disable-shared \
+	             --infodir=\$${prefix}/share/info \
 	             $(confflags) CFLAGS="$(CFLAGS)" 
 	cd build && $(MAKE)
 	>$@

commit 2e60339cfc6e12af364b7a651db0d004e21dc597
Author: Cyril Brulebois <kibi@debian.org>
Date:   Mon May 30 10:20:13 2011 +0200

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index e8cba91..e9cbed0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,57 @@
+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
diff --git a/debian/changelog b/debian/changelog
index d062abd..1c87bc1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+x11proto-resource (1.2.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Cyril Brulebois <kibi@debian.org>  Mon, 30 May 2011 10:19:55 +0200
+
 x11proto-resource (1.1.1-1) unstable; urgency=low
 
   [ Julien Cristau ]

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>

diff --git a/configure.ac b/configure.ac
index faecc62..328a7cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to create configure.
 
 # Initialize Autoconf
 AC_PREREQ([2.60])
-AC_INIT([ResourceProto],[1.1.1],
+AC_INIT([ResourceProto],[1.2.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AC_CONFIG_SRCDIR([Makefile.am])
 

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>

diff --git a/Makefile.am b/Makefile.am
index 3ed1758..d5d496f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,6 +5,7 @@ resource_HEADERS = \
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = resourceproto.pc
 
+dist_doc_DATA = resproto.txt
 
 MAINTAINERCLEANFILES = ChangeLog INSTALL
 

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>

diff --git a/XResproto.h b/XResproto.h
index 9c2abd4..d7e20b1 100644
--- a/XResproto.h
+++ b/XResproto.h
@@ -6,15 +6,24 @@
 #define _XRESPROTO_H
 
 #define XRES_MAJOR_VERSION 1
-#define XRES_MINOR_VERSION 0
+#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;
@@ -125,5 +134,94 @@ typedef struct {
 } 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 */

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>

diff --git a/resproto.txt b/resproto.txt
new file mode 100644
index 0000000..8b322ff
--- /dev/null
+++ b/resproto.txt
@@ -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.
+
+                             ❧❧❧❧❧❧❧❧❧❧❧

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>

diff --git a/COPYING b/COPYING
index 9f1e999..d878fd6 100644
--- a/COPYING
+++ b/COPYING
@@ -1,3 +1,5 @@
+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


Reply to: