XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_xe_wait_user_fence Struct Reference

#include <xe_drm.h>

Public Attributes

__u64 extensions
 
__u64 addr
 
__u16 op
 
__u16 flags
 
__u32 pad
 
__u64 value
 
__u64 mask
 
__s64 timeout
 
__u32 exec_queue_id
 
__u32 pad2
 
__u64 reserved [2]
 

Detailed Description

struct drm_xe_wait_user_fence - Input of &DRM_IOCTL_XE_WAIT_USER_FENCE

Wait on user fence, XE will wake-up on every HW engine interrupt in the instances list and check if user fence is complete::

(*addr & MASK) OP (VALUE & MASK)

Returns to user on user fence completion or timeout.

The @op can be:

and the @flags can be:

The @mask values can be for example:

Member Data Documentation

◆ addr

__u64 drm_xe_wait_user_fence::addr

@addr: user pointer address to wait on, must be qword aligned

◆ exec_queue_id

__u32 drm_xe_wait_user_fence::exec_queue_id

@exec_queue_id: exec_queue_id returned from xe_exec_queue_create_ioctl

◆ extensions

__u64 drm_xe_wait_user_fence::extensions

@extensions: Pointer to the first extension struct, if any

◆ flags

__u16 drm_xe_wait_user_fence::flags

@flags: wait flags

◆ mask

__u64 drm_xe_wait_user_fence::mask

@mask: comparison mask

◆ op

__u16 drm_xe_wait_user_fence::op

@op: wait operation (type of comparison)

◆ pad

__u32 drm_xe_wait_user_fence::pad

@pad: MBZ

◆ pad2

__u32 drm_xe_wait_user_fence::pad2

@pad2: MBZ

◆ reserved

__u64 drm_xe_wait_user_fence::reserved[2]

@reserved: Reserved

◆ timeout

__s64 drm_xe_wait_user_fence::timeout

@timeout: how long to wait before bailing, value in nanoseconds. Without DRM_XE_UFENCE_WAIT_FLAG_ABSTIME flag set (relative timeout) it contains timeout expressed in nanoseconds to wait (fence will expire at now() + timeout). When DRM_XE_UFENCE_WAIT_FLAG_ABSTIME flag is set (absolute timeout) wait will end at timeout (uses system CLOCK_MONOTONIC). Passing negative timeout leads to never ending wait.

On relative timeout this value is updated with timeout left (for restarting the call in case of signal delivery). On absolute timeout this value stays intact (restarted call still expire at the same point of time).

◆ value

__u64 drm_xe_wait_user_fence::value

@value: compare value


The documentation for this struct was generated from the following file: