diff options
author | James Jones <jajones@nvidia.com> | 2010-02-12 16:38:08 -0800 |
---|---|---|
committer | James Jones <jajones@nvidia.com> | 2010-12-03 16:50:32 -0800 |
commit | d079ee210726d2407fa9c8cf99555daf2d96023a (patch) | |
tree | 311a603e3fb4b6ce40319b7ddf3dc9bebbffe2d3 | |
parent | 9ba2065b63ea0e61a17b8221ad454c02a1755373 (diff) |
Initial Fence Sync support
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 <jajones@nvidia.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | syncconst.h | 6 | ||||
-rw-r--r-- | 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_ */ |