summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2013-08-18 16:52:36 -0500
committerKristian Høgsberg <krh@bitplanet.net>2013-08-19 16:23:02 -0700
commit52de02348287fbc3ed24c00f154b3d9cb45830e7 (patch)
tree33586038a34261647e20f2f3b9c4f292bc51e264
parent2cc551b1ece7db700591ea8e0990bf68e6aa2574 (diff)
doc: Update the ID alocation section
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@jlekstrand.net>
-rw-r--r--doc/publican/sources/Protocol.xml14
1 files changed, 10 insertions, 4 deletions
diff --git a/doc/publican/sources/Protocol.xml b/doc/publican/sources/Protocol.xml
index 33df6a9..74f2aea 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>
<para>
- 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, 0xfeffffff] 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 incompatible with
+ the implementation in libwayland.
</para>
</section>
<section id="sect-Protocol-Compositor">