syncobj

syncobj — Library with syncobj helpers

Functions

Types and Values

Includes

#include <igt_syncobj.h>

Description

This library contains helpers for sync object tests.

Functions

syncobj_create ()

uint32_t
syncobj_create (int fd,
                uint32_t flags);

Create a syncobj with the flags.

Parameters

fd

The DRM file descriptor

 

flags

Flags to pass syncobj create

 

Returns

A newly created syncobj


syncobj_destroy ()

void
syncobj_destroy (int fd,
                 uint32_t handle);

Parameters

fd

The DRM file descriptor

 

handle

The handle to the syncobj to destroy Destroy a syncobj.

 

syncobj_handle_to_fd ()

int
syncobj_handle_to_fd (int fd,
                      uint32_t handle,
                      uint32_t flags);

Convert a syncobj handle to an fd using the flags.

Parameters

fd

The DRM file descriptor

 

handle

Handle to syncobj

 

flags

Flags to handle to fd ioctl.

 

Returns

a file descriptor (either syncobj or sync_file.


syncobj_fd_to_handle ()

uint32_t
syncobj_fd_to_handle (int fd,
                      int syncobj_fd,
                      uint32_t flags);

Convert a syncobj fd a syncobj handle using the flags.

Parameters

fd

The DRM file descriptor

 

syncobj_fd

syncobj fd to convert

 

flags

Flags to the syncobj fd to handle ioctl.

 

Returns

a syncobj handle.


syncobj_import_sync_file ()

void
syncobj_import_sync_file (int fd,
                          uint32_t handle,
                          int sync_file);

Import a sync_file fd into a syncobj handle.

Parameters

fd

The DRM file descriptor

 

handle

Handle to the syncobt to import file into

 

sync_file

The sync_file fd to import state from.

 

syncobj_wait_err ()

int
syncobj_wait_err (int fd,
                  uint32_t *handles,
                  uint32_t count,
                  uint64_t abs_timeout_nsec,
                  uint32_t flags);

syncobj_wait ()

bool
syncobj_wait (int fd,
              uint32_t *handles,
              uint32_t count,
              uint64_t abs_timeout_nsec,
              uint32_t flags,
              uint32_t *first_signaled);

Waits in the kernel for any/all the requested syncobjs using the timeout and flags.

Parameters

fd

The DRM file descriptor

 

handles

List of syncobj handles to wait for.

 

count

Count of handles

 

abs_timeout_nsec

Absolute wait timeout in nanoseconds.

 

flags

Wait ioctl flags.

 

first_signaled

Returned handle for first signaled syncobj.

 

Returns

bool value - false = timedout, true = signaled


syncobj_reset ()

void
syncobj_reset (int fd,
               uint32_t *handles,
               uint32_t count);

Reset state of a set of syncobjs.

Parameters

fd

The DRM file descriptor.

 

handles

Array of syncobj handles to reset

 

count

Count of syncobj handles.

 

syncobj_signal ()

void
syncobj_signal (int fd,
                uint32_t *handles,
                uint32_t count);

Signal a set of syncobjs.

Parameters

fd

The DRM file descriptor.

 

handles

Array of syncobj handles to signal

 

count

Count of syncobj handles.

 

Types and Values

LOCAL_SYNCOBJ_CREATE_SIGNALED

#define LOCAL_SYNCOBJ_CREATE_SIGNALED (1 << 0)

LOCAL_SYNCOBJ_WAIT_FLAGS_WAIT_ALL

#define LOCAL_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)

LOCAL_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT

#define LOCAL_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)

struct local_syncobj_wait

struct local_syncobj_wait {
       __u64 handles;
       /* absolute timeout */
       __s64 timeout_nsec;
       __u32 count_handles;
       __u32 flags;
       __u32 first_signaled; /* only valid when not waiting all */
       __u32 pad;
};

struct local_syncobj_array

struct local_syncobj_array {
       __u64 handles;
       __u32 count_handles;
       __u32 pad;
};

LOCAL_IOCTL_SYNCOBJ_WAIT

#define LOCAL_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct local_syncobj_wait)

LOCAL_IOCTL_SYNCOBJ_RESET

#define LOCAL_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct local_syncobj_array)

LOCAL_IOCTL_SYNCOBJ_SIGNAL

#define LOCAL_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct local_syncobj_array)