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 65 #define SYNX_NO_TIMEOUT ((uint64_t)-1) 71 #define SYNX_INVALID_HANDLE 0 94 SYNX_CLIENT_NATIVE = 0,
105 SYNX_INIT_DEFAULT = 0x00,
106 SYNX_INIT_MAX = 0x01,
138 SYNX_CREATE_LOCAL_FENCE = 0x01,
139 SYNX_CREATE_GLOBAL_FENCE = 0x02,
140 SYNX_CREATE_DMA_FENCE = 0x04,
141 SYNX_CREATE_CSL_FENCE = 0x08,
209 SYNX_STATE_SIGNALED_SUCCESS = 2,
210 SYNX_STATE_SIGNALED_CANCEL = 4,
211 SYNX_STATE_SIGNALED_MAX = 64,
243 SYNX_IMPORT_LOCAL_FENCE = 0x01,
244 SYNX_IMPORT_GLOBAL_FENCE = 0x02,
245 SYNX_IMPORT_SYNX_FENCE = 0x04,
246 SYNX_IMPORT_DMA_FENCE = 0x08,
247 SYNX_IMPORT_EX_RELEASE = 0x10,
255 SYNX_IMPORT_INDV_PARAMS = 0x01,
256 SYNX_IMPORT_ARR_PARAMS = 0x02,
268 uint32_t *new_h_synx;
315 SYNX_MERGE_LOCAL_FENCE = 0x01,
316 SYNX_MERGE_GLOBAL_FENCE = 0x02,
317 SYNX_MERGE_NOTIFY_ON_ALL = 0x04,
318 SYNX_MERGE_NOTIFY_ON_ANY = 0x08,
334 uint32_t *h_merged_obj;
351 SYNX_STATUS_INVALID = 0,
352 SYNX_STATUS_UNSIGNALED,
353 SYNX_STATUS_SIGNALED_SUCCESS,
354 SYNX_STATUS_SIGNALED_ERROR,
355 SYNX_STATUS_SIGNALED_CANCEL,
356 SYNX_STATUS_SIGNALED_EXTERNAL,
357 SYNX_STATUS_SIGNALED_SSR,
526 #endif // __cplusplus synx_merge_flags
Definition: synx.h:314
void(* synx_user_callback)(uint32_t h_synx, int status, void *data)
Definition: synx.h:176
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:104
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:350
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:242
synx_client_id
Definition: synx.h:93
synx_import_type
Definition: synx.h:254
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:208
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:137