wayland/protocol
Demi Marie Obenour d5cf2f5fc7 Add extended shared memory attach support
This provides an extended version of ‘create_pool’, called
‘create_pool2’, which allows the client to specify a 64-bit offset in
the file to map at.  As Wayland does not support 64-bit integers, the
offset is passed as two 32-bit numbers.

The intended use-case for this extension is when one needs to map a
surface from a character special device, but it can also be used with
regular files if one needs to map with a nonzero offset.  Qubes OS needs
the Wayland compositor to map the ‘/dev/xen/gntdev’ character device,
which represents memory shared by a different Xen virtual machine.
Currently, this can be accomplished by opening a separate instance of
‘/dev/xen/gntdev’ every time, but that is slightly wasteful.  Until
recently, it also on undocumented behavior in the kernel driver.

This also requires libwayland-server to be built with 64-bit off_t,
which should be supported on any reasonably modern system.  A
‘_Static_assert’ will trip if off_t is not large enough.

This also forbids resizing a pool of version 3 or later that is
currently in use.  On non-Linux systems, supporting pool resize requires
holding the file descriptor open, which can lead to file descriptor
exhaustion in the compositor.  This change allows libwayland-server to
close the file descriptor once the pool is first mapped.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
2024-07-23 13:48:38 -04:00
..
.gitignore Update .gitignore for protocol/ 2013-11-19 13:26:04 -08:00
generate-shm-formats.py Add extended shared memory attach support 2024-07-23 13:48:38 -04:00
tests.xml Replace initial 8 spaces with a tab for all xml files 2020-04-29 12:21:33 +00:00
wayland.dtd protocol: Add type attribute to events 2021-01-27 17:49:10 +00:00
wayland.xml Add extended shared memory attach support 2024-07-23 13:48:38 -04:00