Defines the protocol for creation and basic
management of binary state sync objects.
The following operations are defined:

 -Creation
 -Destruction
 -Trigger
 -Reset

Signed-off-by: James Jones <jajo...@nvidia.com>
Reviewed-by: Aaron Plattner <aplatt...@nvidia.com>
---
 syncconst.h |    6 ++++--
 syncproto.h |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/syncconst.h b/syncconst.h
index 926b60c..3acc387 100644
--- a/syncconst.h
+++ b/syncconst.h
@@ -54,7 +54,7 @@ PERFORMANCE OF THIS SOFTWARE.
 #define SYNC_NAME "SYNC"
 
 #define SYNC_MAJOR_VERSION     3
-#define SYNC_MINOR_VERSION     0
+#define SYNC_MINOR_VERSION     1
 
 
 #define XSyncCounterNotify              0
@@ -65,7 +65,8 @@ PERFORMANCE OF THIS SOFTWARE.
 
 #define XSyncBadCounter                        0L
 #define XSyncBadAlarm                  1L
-#define XSyncNumberErrors              (XSyncBadAlarm + 1)
+#define XSyncBadFence           2L
+#define XSyncNumberErrors              (XSyncBadFence + 1)
 
 /*
  * Flags for Alarm Attributes
@@ -172,6 +173,7 @@ typedef enum {
 
 typedef XID XSyncCounter;
 typedef XID XSyncAlarm;
+typedef XID XSyncFence;
 typedef struct _XSyncValue {
     int hi;
     unsigned int lo;
diff --git a/syncproto.h b/syncproto.h
index 13b53d5..c38ea84 100644
--- a/syncproto.h
+++ b/syncproto.h
@@ -67,6 +67,10 @@ PERFORMANCE OF THIS SOFTWARE.
 #define X_SyncDestroyAlarm            11
 #define X_SyncSetPriority             12
 #define X_SyncGetPriority             13
+#define X_SyncCreateFence             14
+#define X_SyncTriggerFence            15
+#define X_SyncResetFence              16
+#define X_SyncDestroyFence            17
 
 /* cover up types from sync.h to make sure they're the right size for
  * protocol packaging.  These will be undef'ed after all the protocol
@@ -74,6 +78,8 @@ PERFORMANCE OF THIS SOFTWARE.
  */
 #define XSyncCounter CARD32
 #define XSyncAlarm   CARD32
+#define XSyncFence   CARD32
+#define Drawable     CARD32
 
 /*
  * Initialize
@@ -337,6 +343,54 @@ typedef struct {
 #define sz_xSyncGetPriorityReply       32
 
 /*
+ * Create Fence
+ */
+typedef struct _xSyncCreateFenceReq {
+    CARD8      reqType;
+    CARD8      syncReqType;
+    CARD16     length B16;
+    Drawable   d B32;
+    XSyncFence fid B32;
+    BOOL       initially_triggered;
+    CARD8      pad0;
+    CARD16     pad1;
+} xSyncCreateFenceReq;
+#define sz_xSyncCreateFenceReq         16
+
+/*
+ * Put a fence object in the "triggered" state.
+ */
+typedef struct _xSyncTriggerFenceReq {
+    CARD8      reqType;
+    CARD8      syncReqType;
+    CARD16     length B16;
+    XSyncFence fid B32;
+} xSyncTriggerFenceReq;
+#define sz_xSyncTriggerFenceReq                8
+
+/*
+ * Put a fence in the "untriggered" state.
+ */
+typedef struct _xSyncResetFenceReq {
+    CARD8      reqType;
+    CARD8      syncReqType;
+    CARD16     length B16;
+    XSyncFence fid B32;
+} xSyncResetFenceReq;
+#define sz_xSyncResetFenceReq          8
+
+/*
+ * Destroy a fence object
+ */
+typedef struct _xSyncDestroyFenceReq {
+    CARD8      reqType;
+    CARD8      syncReqType;
+    CARD16     length B16;
+    XSyncFence fid B32;
+} xSyncDestroyFenceReq;
+#define sz_xSyncDestroyFenceReq                8
+
+/*
  * Events
  */
 
@@ -373,6 +427,8 @@ typedef struct _xSyncAlarmNotifyEvent {
 
 #undef XSyncCounter
 #undef XSyncAlarm
+#undef XSyncFence
+#undef Drawable
 
 
 #endif /* _SYNCPROTO_H_ */
-- 
1.7.1

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to