From bddf4df4a17df30624f27c5e85f859a1b09f8fc0 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Fri, 7 Aug 2015 17:09:35 +0100 Subject: [PATCH] amdgpu: hide the final internal functions from global namespace MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Thus the only symbols that we export are the ones officially provided by the API. Signed-off-by: Emil Velikov Reviewed-by: Alex Deucher Reviewed-by: Christian König Reviewed-by: Jammy Zhou --- amdgpu/amdgpu_bo.c | 2 +- amdgpu/amdgpu_cs.c | 2 +- amdgpu/amdgpu_device.c | 58 ++++++++++++++++++++++++++++++------------------ amdgpu/amdgpu_gpu_info.c | 2 +- amdgpu/amdgpu_internal.h | 24 +++----------------- 5 files changed, 42 insertions(+), 46 deletions(-) diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c index aacb42c..7607f2c 100644 --- a/amdgpu/amdgpu_bo.c +++ b/amdgpu/amdgpu_bo.c @@ -53,7 +53,7 @@ static void amdgpu_close_kms_handle(amdgpu_device_handle dev, drmIoctl(dev->fd, DRM_IOCTL_GEM_CLOSE, &args); } -void amdgpu_bo_free_internal(amdgpu_bo_handle bo) +drm_private void amdgpu_bo_free_internal(amdgpu_bo_handle bo) { /* Remove the buffer from the hash tables. */ pthread_mutex_lock(&bo->dev->bo_table_mutex); diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index fd28bd9..ea35326 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -290,7 +290,7 @@ int amdgpu_cs_submit(amdgpu_context_handle context, * * \return absolute timeout in nanoseconds */ -uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout) +drm_private uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout) { int r; diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c index bf941c1..c6bbae8 100644 --- a/amdgpu/amdgpu_device.c +++ b/amdgpu/amdgpu_device.c @@ -47,7 +47,7 @@ #define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x))) #define UINT_TO_PTR(x) ((void *)((intptr_t)(x))) -pthread_mutex_t fd_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t fd_mutex = PTHREAD_MUTEX_INITIALIZER; static struct util_hash_table *fd_tab; static unsigned handle_hash(void *key) @@ -127,6 +127,41 @@ static int amdgpu_get_auth(int fd, int *auth) return r; } +static void amdgpu_device_free_internal(amdgpu_device_handle dev) +{ + amdgpu_vamgr_reference(&dev->vamgr, NULL); + util_hash_table_destroy(dev->bo_flink_names); + util_hash_table_destroy(dev->bo_handles); + pthread_mutex_destroy(&dev->bo_table_mutex); + util_hash_table_remove(fd_tab, UINT_TO_PTR(dev->fd)); + close(dev->fd); + if ((dev->flink_fd >= 0) && (dev->fd != dev->flink_fd)) + close(dev->flink_fd); + free(dev); +} + +/** + * Assignment between two amdgpu_device pointers with reference counting. + * + * Usage: + * struct amdgpu_device *dst = ... , *src = ...; + * + * dst = src; + * // No reference counting. Only use this when you need to move + * // a reference from one pointer to another. + * + * amdgpu_device_reference(&dst, src); + * // Reference counters are updated. dst is decremented and src is + * // incremented. dst is freed if its reference counter is 0. + */ +static void amdgpu_device_reference(struct amdgpu_device **dst, + struct amdgpu_device *src) +{ + if (update_references(&(*dst)->refcount, &src->refcount)) + amdgpu_device_free_internal(*dst); + *dst = src; +} + int amdgpu_device_initialize(int fd, uint32_t *major_version, uint32_t *minor_version, @@ -232,29 +267,8 @@ cleanup: return r; } -void amdgpu_device_free_internal(amdgpu_device_handle dev) -{ - amdgpu_vamgr_reference(&dev->vamgr, NULL); - util_hash_table_destroy(dev->bo_flink_names); - util_hash_table_destroy(dev->bo_handles); - pthread_mutex_destroy(&dev->bo_table_mutex); - util_hash_table_remove(fd_tab, UINT_TO_PTR(dev->fd)); - close(dev->fd); - if ((dev->flink_fd >= 0) && (dev->fd != dev->flink_fd)) - close(dev->flink_fd); - free(dev); -} - int amdgpu_device_deinitialize(amdgpu_device_handle dev) { amdgpu_device_reference(&dev, NULL); return 0; } - -void amdgpu_device_reference(struct amdgpu_device **dst, - struct amdgpu_device *src) -{ - if (update_references(&(*dst)->refcount, &src->refcount)) - amdgpu_device_free_internal(*dst); - *dst = src; -} diff --git a/amdgpu/amdgpu_gpu_info.c b/amdgpu/amdgpu_gpu_info.c index 0970769..0cc17f1 100644 --- a/amdgpu/amdgpu_gpu_info.c +++ b/amdgpu/amdgpu_gpu_info.c @@ -140,7 +140,7 @@ int amdgpu_query_firmware_version(amdgpu_device_handle dev, unsigned fw_type, return 0; } -int amdgpu_query_gpu_info_init(amdgpu_device_handle dev) +drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev) { int r, i; diff --git a/amdgpu/amdgpu_internal.h b/amdgpu/amdgpu_internal.h index 7f86da9..4b07aff 100644 --- a/amdgpu/amdgpu_internal.h +++ b/amdgpu/amdgpu_internal.h @@ -119,9 +119,7 @@ struct amdgpu_context { * Functions. */ -void amdgpu_device_free_internal(amdgpu_device_handle dev); - -void amdgpu_bo_free_internal(amdgpu_bo_handle bo); +drm_private void amdgpu_bo_free_internal(amdgpu_bo_handle bo); drm_private struct amdgpu_bo_va_mgr* amdgpu_vamgr_get_global(struct amdgpu_device *dev); @@ -137,9 +135,9 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size, drm_private void amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size); -int amdgpu_query_gpu_info_init(amdgpu_device_handle dev); +drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev); -uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout); +drm_private uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout); /** * Inline functions. @@ -189,20 +187,4 @@ static inline void amdgpu_bo_reference(struct amdgpu_bo **dst, *dst = src; } -/** - * Assignment between two amdgpu_device pointers with reference counting. - * - * Usage: - * struct amdgpu_device *dst = ... , *src = ...; - * - * dst = src; - * // No reference counting. Only use this when you need to move - * // a reference from one pointer to another. - * - * amdgpu_device_reference(&dst, src); - * // Reference counters are updated. dst is decremented and src is - * // incremented. dst is freed if its reference counter is 0. - */ -void amdgpu_device_reference(struct amdgpu_device **dst, - struct amdgpu_device *src); #endif -- 2.7.4