diff options
author | Marek Olšák <marek.olsak@amd.com> | 2017-09-11 21:12:12 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2017-10-12 20:35:57 +0200 |
commit | b6e24501a1f8c58501fdfa39b435e440ee667feb (patch) | |
tree | 64168fc12002df6f27107a514cc0e5f47d5b3ab4 | |
parent | ad4df736a9f8098cd47008c72948ceff9e9f9dac (diff) |
amdgpu: add sync_file import and export functions
v2: update amdgpu-symbol-check
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
-rwxr-xr-x | amdgpu/amdgpu-symbol-check | 2 | ||||
-rw-r--r-- | amdgpu/amdgpu.h | 30 | ||||
-rw-r--r-- | amdgpu/amdgpu_cs.c | 20 |
3 files changed, 52 insertions, 0 deletions
diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check index c5b85b52..bc9ed3f9 100755 --- a/amdgpu/amdgpu-symbol-check +++ b/amdgpu/amdgpu-symbol-check @@ -40,6 +40,8 @@ amdgpu_cs_query_reset_state amdgpu_cs_signal_semaphore amdgpu_cs_submit amdgpu_cs_submit_raw +amdgpu_cs_syncobj_export_sync_file +amdgpu_cs_syncobj_import_sync_file amdgpu_cs_wait_fences amdgpu_cs_wait_semaphore amdgpu_device_deinitialize diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index 238b1aaa..b44b9b64 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -1383,6 +1383,36 @@ int amdgpu_cs_import_syncobj(amdgpu_device_handle dev, uint32_t *syncobj); /** + * Export kernel sync object to a sync_file. + * + * \param dev - \c [in] device handle + * \param syncobj - \c [in] sync object handle + * \param sync_file_fd - \c [out] sync_file file descriptor. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_export_sync_file(amdgpu_device_handle dev, + uint32_t syncobj, + int *sync_file_fd); + +/** + * Import kernel sync object from a sync_file. + * + * \param dev - \c [in] device handle + * \param syncobj - \c [in] sync object handle + * \param sync_file_fd - \c [in] sync_file file descriptor. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_import_sync_file(amdgpu_device_handle dev, + uint32_t syncobj, + int sync_file_fd); + +/** * Submit raw command submission to kernel * * \param dev - \c [in] device handle diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index dfba8754..4a055366 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -635,6 +635,26 @@ int amdgpu_cs_import_syncobj(amdgpu_device_handle dev, return drmSyncobjFDToHandle(dev->fd, shared_fd, handle); } +int amdgpu_cs_syncobj_export_sync_file(amdgpu_device_handle dev, + uint32_t syncobj, + int *sync_file_fd) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjExportSyncFile(dev->fd, syncobj, sync_file_fd); +} + +int amdgpu_cs_syncobj_import_sync_file(amdgpu_device_handle dev, + uint32_t syncobj, + int sync_file_fd) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjImportSyncFile(dev->fd, syncobj, sync_file_fd); +} + int amdgpu_cs_submit_raw(amdgpu_device_handle dev, amdgpu_context_handle context, amdgpu_bo_list_handle bo_list_handle, |