[PATCH] Adds MIT-SHM AttachFd and CreateSegment requests
Keith Packard
keithp at keithp.com
Thu Oct 31 21:12:27 CET 2013
Passes shared memory segments by file descriptor, AttachFd passes from
client to server, CreateSegment passes from server to client.
Signed-off-by: Keith Packard <keithp at keithp.com>
---
shm.h | 2 +-
shmproto.h | 42 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/shm.h b/shm.h
index e076402..be49f5e 100644
--- a/shm.h
+++ b/shm.h
@@ -32,7 +32,7 @@ in this Software without prior written authorization from The Open Group.
#define SHMNAME "MIT-SHM"
#define SHM_MAJOR_VERSION 1 /* current version numbers */
-#define SHM_MINOR_VERSION 1
+#define SHM_MINOR_VERSION 2
#define ShmCompletion 0
#define ShmNumberEvents (ShmCompletion + 1)
diff --git a/shmproto.h b/shmproto.h
index e5de377..8136aa9 100644
--- a/shmproto.h
+++ b/shmproto.h
@@ -43,6 +43,8 @@ in this Software without prior written authorization from The Open Group.
#define X_ShmPutImage 3
#define X_ShmGetImage 4
#define X_ShmCreatePixmap 5
+#define X_ShmAttachFd 6
+#define X_ShmCreateSegment 7
typedef struct _ShmQueryVersion {
CARD8 reqType; /* always ShmReqCode */
@@ -178,6 +180,46 @@ typedef struct _ShmCompletion {
} xShmCompletionEvent;
#define sz_xShmCompletionEvent 32
+/* Version 1.2 additions */
+typedef struct _ShmAttachFd {
+ CARD8 reqType; /* always ShmReqCode */
+ CARD8 shmReqType; /* always X_ShmAttachFd */
+ CARD16 length B16;
+ ShmSeg shmseg B32;
+ BOOL readOnly;
+ BYTE pad0;
+ CARD16 pad1 B16;
+} xShmAttachFdReq;
+/* File descriptor is passed with this request */
+#define sz_xShmAttachFdReq 12
+
+typedef struct _ShmCreateSegment {
+ CARD8 reqType; /* always ShmReqCode */
+ CARD8 shmReqType; /* always X_ShmAttachFd */
+ CARD16 length B16;
+ ShmSeg shmseg B32;
+ CARD32 size B32;
+ BOOL readOnly;
+ BYTE pad0;
+ CARD16 pad1 B16;
+} xShmCreateSegmentReq;
+#define sz_xShmCreateSegmentReq 16
+
+typedef struct {
+ CARD8 type; /* must be X_Reply */
+ CARD8 nfd; /* must be 1 */
+ CARD16 sequenceNumber B16; /* last sequence number */
+ CARD32 length B32; /* 0 */
+ CARD32 pad2 B32; /* unused */
+ CARD32 pad3 B32; /* unused */
+ CARD32 pad4 B32; /* unused */
+ CARD32 pad5 B32; /* unused */
+ CARD32 pad6 B32; /* unused */
+ CARD32 pad7 B32; /* unused */
+} xShmCreateSegmentReply;
+/* File descriptor is passed with this reply */
+#define sz_xShmCreateSegmentReply 32
+
#undef ShmSeg
#undef Drawable
#undef VisualID
--
1.8.4.rc3
More information about the xorg-devel
mailing list