[PATCH 1/2] doc: Update the ID alocation section

Jason Ekstrand jason at jlekstrand.net
Sat Aug 17 15:31:26 PDT 2013

The method described of alocation IDs has been wrong at least since version
1.0.  This commit updates it to correspond to the way IDs are chosen in
versions >= 1.0.

Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
 doc/publican/sources/Protocol.xml | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/doc/publican/sources/Protocol.xml b/doc/publican/sources/Protocol.xml
index 1a7a7da..759aba5 100644
--- a/doc/publican/sources/Protocol.xml
+++ b/doc/publican/sources/Protocol.xml
@@ -196,10 +196,16 @@
   <section id="sect-Protocol-Creating-Objects">
     <title>Creating Objects</title>
-      Each object has a unique ID. The IDs are allocated by the
-      client, from a range of IDs. The server tracks how many
-      IDs are left in the current range and sends a new range
-      when the client is about to run out.
+      Each object has a unique ID.  The IDs are allocated by the entity
+      creating the object (either client or server).  IDs allocated by the
+      client are in the range [1, 0xff000000) while IDs allocated by the
+      server are in the range [0xff000000, 0xffffffff].  The 0 ID is
+      reserved to represent a null or non-existant object.
+      For efficiency purposes, the IDs are densely packed in the sense that
+      the ID N will not be used until N-1 has been used.  Any ID allocation
+      algorithm that does not maintain this property is incompatable with
+      the implementation in libwayland.
   <section id="sect-Protocol-Compositor">

More information about the wayland-devel mailing list