25 #define SYNX_DLL_EXPORT __declspec(dllexport) 26 #define SYNX_DLL_IMPORT __declspec(dllimport) 27 #elif defined(__GNUC__) 28 #define SYNX_DLL_EXPORT __attribute((visibility("default"))) 29 #define SYNX_DLL_IMPORT 32 #if defined(SYNX_LIB_EXPORT) 33 #define SYNX_API SYNX_DLL_EXPORT 34 #define SYNX_INLINE inline 37 #define SYNX_API SYNX_DLL_IMPORT 41 #define SYNX_DEVICE_NAME "synx_device" 51 #define SYNX_SUCCESS 0 52 #define SYNX_NOMEM ENOMEM 53 #define SYNX_NOSUPPORT EPERM 54 #define SYNX_NOPERM EPERM 55 #define SYNX_TIMEOUT ETIMEDOUT 56 #define SYNX_ALREADY EALREADY 57 #define SYNX_NOENT ENOENT 58 #define SYNX_INVALID EINVAL 59 #define SYNX_ERROR_FAILED EPERM 61 #define SYNX_NO_TIMEOUT ((uint64_t)-1) 67 #define SYNX_INVALID_HANDLE 0 89 SYNX_CLIENT_NATIVE = 0,
100 SYNX_INIT_DEFAULT = 0x00,
101 SYNX_INIT_MAX = 0x01,
133 SYNX_CREATE_LOCAL_FENCE = 0x01,
134 SYNX_CREATE_GLOBAL_FENCE = 0x02,
135 SYNX_CREATE_DMA_FENCE = 0x04,
136 SYNX_CREATE_CSL_FENCE = 0x08,
196 SYNX_STATE_SIGNALED_SUCCESS = 2,
197 SYNX_STATE_SIGNALED_CANCEL = 4,
198 SYNX_STATE_SIGNALED_MAX = 64,
230 SYNX_IMPORT_LOCAL_FENCE = 0x01,
231 SYNX_IMPORT_GLOBAL_FENCE = 0x02,
232 SYNX_IMPORT_SYNX_FENCE = 0x04,
233 SYNX_IMPORT_DMA_FENCE = 0x08,
234 SYNX_IMPORT_EX_RELEASE = 0x10,
242 SYNX_IMPORT_INDV_PARAMS = 0x01,
243 SYNX_IMPORT_ARR_PARAMS = 0x02,
255 uint32_t *new_h_synx;
302 SYNX_MERGE_LOCAL_FENCE = 0x01,
303 SYNX_MERGE_GLOBAL_FENCE = 0x02,
304 SYNX_MERGE_NOTIFY_ON_ALL = 0x04,
305 SYNX_MERGE_NOTIFY_ON_ANY = 0x08,
320 uint32_t *h_merged_obj;
337 SYNX_STATUS_INVALID = 0,
338 SYNX_STATUS_UNSIGNALED,
339 SYNX_STATUS_SIGNALED_SUCCESS,
340 SYNX_STATUS_SIGNALED_ERROR,
341 SYNX_STATUS_SIGNALED_CANCEL,
342 SYNX_STATUS_SIGNALED_EXTERNAL,
343 SYNX_STATUS_SIGNALED_SSR,
512 #endif // __cplusplus synx_merge_flags
Definition: synx.h:301
void(* synx_user_callback)(uint32_t h_synx, int status, void *data)
Definition: synx.h:164
SYNX_API struct synx_session * synx_initialize(struct synx_initialization_params *pParam)
: Initializes a new client session.
SYNX_API int32_t synx_import(struct synx_session *pSession, struct synx_import_params *pParams)
: Imports (looks up) synx object from given handle or fence.
synx_init_flags
Definition: synx.h:99
SYNX_API int32_t synx_get_status(struct synx_session *pSession, uint32_t hSynx)
: Returns the status of the synx object. This API should not be used in polling mode to check if the ...
synx_status
Definition: synx.h:336
SYNX_API int32_t synx_release(struct synx_session *pSession, uint32_t hSynx)
: Releases the synx object. Every created, imported or merged synx object should be released...
synx_import_flags
Definition: synx.h:229
synx_client_id
Definition: synx.h:88
synx_import_type
Definition: synx.h:241
SYNX_API int32_t synx_signal(struct synx_session *pSession, uint32_t hSynx, enum synx_signal_status state)
: Signals a synx object with the status argument.
SYNX_API int32_t synx_cancel_async_wait(struct synx_session *pSession, struct synx_callback_params *pParams)
: De-registers a callback with a synx object
SYNX_API int32_t synx_merge(struct synx_session *pSession, struct synx_merge_params *pParams)
: Merges multiple synx objects.
SYNX_API int32_t synx_wait(struct synx_session *pSession, uint32_t hSynx, uint64_t timeout_ms)
: Waits for a synx object synchronously
SYNX_API int32_t synx_get_fd(struct synx_session *pSession, uint32_t hSynx)
: Obtain an fd for the synx object(Not supported for DSP)
SYNX_API int32_t synx_create(struct synx_session *pSession, struct synx_create_params *pParam)
: Creates a synx object.
synx_signal_status
Definition: synx.h:195
SYNX_API int32_t synx_async_wait(struct synx_session *pSession, struct synx_callback_params *pParams)
: Registers a callback with a synx object.
SYNX_API int32_t synx_uninitialize(struct synx_session *pSession)
: Destroys the client session. Every initialized session should be uninitialized. ...
synx_create_flags
Definition: synx.h:132