[Mesa-dev] [PATCH 2/7] gallium/util: remove pipe_static_mutex()
Timothy Arceri
tarceri at itsqueeze.com
Sun Mar 5 01:32:02 UTC 2017
This was made unnecessary with fd33a6bcd7f12.
---
src/gallium/auxiliary/hud/hud_cpufreq.c | 2 +-
src/gallium/auxiliary/hud/hud_diskstat.c | 2 +-
src/gallium/auxiliary/hud/hud_nic.c | 2 +-
src/gallium/auxiliary/hud/hud_sensors_temp.c | 2 +-
src/gallium/auxiliary/os/os_thread.h | 3 ---
src/gallium/auxiliary/rtasm/rtasm_execmem.c | 2 +-
src/gallium/auxiliary/util/u_debug_flush.c | 2 +-
src/gallium/auxiliary/util/u_debug_memory.c | 2 +-
src/gallium/auxiliary/util/u_debug_refcnt.c | 2 +-
src/gallium/auxiliary/util/u_debug_symbol.c | 2 +-
src/gallium/auxiliary/util/u_queue.c | 2 +-
src/gallium/drivers/trace/tr_dump.c | 2 +-
src/gallium/state_trackers/glx/xlib/xm_api.c | 2 +-
src/gallium/state_trackers/nine/nine_lock.c | 2 +-
src/gallium/state_trackers/omx/entrypoint.c | 2 +-
src/gallium/state_trackers/vdpau/htab.c | 2 +-
src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 2 +-
src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c | 2 +-
src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c | 2 +-
src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c | 2 +-
src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 2 +-
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 2 +-
22 files changed, 21 insertions(+), 24 deletions(-)
diff --git a/src/gallium/auxiliary/hud/hud_cpufreq.c b/src/gallium/auxiliary/hud/hud_cpufreq.c
index 78754b2..41e5827 100644
--- a/src/gallium/auxiliary/hud/hud_cpufreq.c
+++ b/src/gallium/auxiliary/hud/hud_cpufreq.c
@@ -55,21 +55,21 @@ struct cpufreq_info
int cpu_index;
/* EG. /sys/devices/system/cpu/cpu?/cpufreq/scaling_cur_freq */
char sysfs_filename[128];
uint64_t KHz;
uint64_t last_time;
};
static int gcpufreq_count = 0;
static struct list_head gcpufreq_list;
-pipe_static_mutex(gcpufreq_mutex);
+static mtx_t gcpufreq_mutex = _MTX_INITIALIZER_NP;
static struct cpufreq_info *
find_cfi_by_index(int cpu_index, int mode)
{
list_for_each_entry(struct cpufreq_info, cfi, &gcpufreq_list, list) {
if (cfi->mode != mode)
continue;
if (cfi->cpu_index == cpu_index)
return cfi;
}
diff --git a/src/gallium/auxiliary/hud/hud_diskstat.c b/src/gallium/auxiliary/hud/hud_diskstat.c
index af6e62d..fb64e3d 100644
--- a/src/gallium/auxiliary/hud/hud_diskstat.c
+++ b/src/gallium/auxiliary/hud/hud_diskstat.c
@@ -75,21 +75,21 @@ struct diskstat_info
uint64_t last_time;
struct stat_s last_stat;
};
/* TODO: We don't handle dynamic block device / partition
* arrival or removal.
* Static globals specific to this HUD category.
*/
static int gdiskstat_count = 0;
static struct list_head gdiskstat_list;
-pipe_static_mutex(gdiskstat_mutex);
+static mtx_t gdiskstat_mutex = _MTX_INITIALIZER_NP;
static struct diskstat_info *
find_dsi_by_name(const char *n, int mode)
{
list_for_each_entry(struct diskstat_info, dsi, &gdiskstat_list, list) {
if (dsi->mode != mode)
continue;
if (strcasecmp(dsi->name, n) == 0)
return dsi;
}
diff --git a/src/gallium/auxiliary/hud/hud_nic.c b/src/gallium/auxiliary/hud/hud_nic.c
index 634add1..2fbeaa5 100644
--- a/src/gallium/auxiliary/hud/hud_nic.c
+++ b/src/gallium/auxiliary/hud/hud_nic.c
@@ -60,21 +60,21 @@ struct nic_info
char throughput_filename[128];
uint64_t last_time;
uint64_t last_nic_bytes;
};
/* TODO: We don't handle dynamic NIC arrival or removal.
* Static globals specific to this HUD category.
*/
static int gnic_count = 0;
static struct list_head gnic_list;
-pipe_static_mutex(gnic_mutex);
+static mtx_t gnic_mutex = _MTX_INITIALIZER_NP;
static struct nic_info *
find_nic_by_name(const char *n, int mode)
{
list_for_each_entry(struct nic_info, nic, &gnic_list, list) {
if (nic->mode != mode)
continue;
if (strcasecmp(nic->name, n) == 0)
return nic;
diff --git a/src/gallium/auxiliary/hud/hud_sensors_temp.c b/src/gallium/auxiliary/hud/hud_sensors_temp.c
index 11b8a4c..4d723cc 100644
--- a/src/gallium/auxiliary/hud/hud_sensors_temp.c
+++ b/src/gallium/auxiliary/hud/hud_sensors_temp.c
@@ -43,21 +43,21 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sensors/sensors.h>
/* TODO: We don't handle dynamic sensor discovery / arrival or removal.
* Static globals specific to this HUD category.
*/
static int gsensors_temp_count = 0;
static struct list_head gsensors_temp_list;
-pipe_static_mutex(gsensor_temp_mutex);
+static mtx_t gsensor_temp_mutex = _MTX_INITIALIZER_NP;
struct sensors_temp_info
{
struct list_head list;
/* Combined chip and feature name, human readable. */
char name[64];
/* The type of measurement, critical or current. */
unsigned int mode;
diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h
index af350b8..a6a9fea 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -101,23 +101,20 @@ static inline int pipe_thread_is_self( pipe_thread thread )
{
#if defined(HAVE_PTHREAD)
# if defined(__GNU_LIBRARY__) && defined(__GLIBC__) && defined(__GLIBC_MINOR__) && \
(__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12))
return pthread_equal(pthread_self(), thread);
# endif
#endif
return 0;
}
-#define pipe_static_mutex(mutex) \
- static mtx_t mutex = _MTX_INITIALIZER_NP
-
#define pipe_mutex_init(mutex) \
(void) mtx_init(&(mutex), mtx_plain)
#define pipe_mutex_destroy(mutex) \
mtx_destroy(&(mutex))
#define pipe_mutex_lock(mutex) \
(void) mtx_lock(&(mutex))
#define pipe_mutex_unlock(mutex) \
diff --git a/src/gallium/auxiliary/rtasm/rtasm_execmem.c b/src/gallium/auxiliary/rtasm/rtasm_execmem.c
index f7e605e..a60d521 100644
--- a/src/gallium/auxiliary/rtasm/rtasm_execmem.c
+++ b/src/gallium/auxiliary/rtasm/rtasm_execmem.c
@@ -56,21 +56,21 @@
* Allocate a large block of memory which can hold code then dole it out
* in pieces by means of the generic memory manager code.
*/
#include <unistd.h>
#include <sys/mman.h>
#include "util/u_mm.h"
#define EXEC_HEAP_SIZE (10*1024*1024)
-pipe_static_mutex(exec_mutex);
+static mtx_t exec_mutex = _MTX_INITIALIZER_NP;
static struct mem_block *exec_heap = NULL;
static unsigned char *exec_mem = NULL;
static int
init_heap(void)
{
if (!exec_heap)
exec_heap = u_mmInit( 0, EXEC_HEAP_SIZE );
diff --git a/src/gallium/auxiliary/util/u_debug_flush.c b/src/gallium/auxiliary/util/u_debug_flush.c
index 6a8a91d..d125205 100644
--- a/src/gallium/auxiliary/util/u_debug_flush.c
+++ b/src/gallium/auxiliary/util/u_debug_flush.c
@@ -70,21 +70,21 @@ struct debug_flush_item {
};
struct debug_flush_ctx {
/* Contexts are used by a single thread at a time */
unsigned bt_depth;
boolean catch_map_of_referenced;
struct util_hash_table *ref_hash;
struct list_head head;
};
-pipe_static_mutex(list_mutex);
+static mtx_t list_mutex = _MTX_INITIALIZER_NP;
static struct list_head ctx_list = {&ctx_list, &ctx_list};
static struct debug_stack_frame *
debug_flush_capture_frame(int start, int depth)
{
struct debug_stack_frame *frames;
frames = CALLOC(depth, sizeof(*frames));
if (!frames)
return NULL;
diff --git a/src/gallium/auxiliary/util/u_debug_memory.c b/src/gallium/auxiliary/util/u_debug_memory.c
index f1cc8eb..2f7031d 100644
--- a/src/gallium/auxiliary/util/u_debug_memory.c
+++ b/src/gallium/auxiliary/util/u_debug_memory.c
@@ -80,21 +80,21 @@ struct debug_memory_header
};
struct debug_memory_footer
{
unsigned magic;
};
static struct list_head list = { &list, &list };
-pipe_static_mutex(list_mutex);
+static mtx_t list_mutex = _MTX_INITIALIZER_NP;
static unsigned long last_no = 0;
static inline struct debug_memory_header *
header_from_data(void *data)
{
if(data)
return (struct debug_memory_header *)((char *)data - sizeof(struct debug_memory_header));
else
diff --git a/src/gallium/auxiliary/util/u_debug_refcnt.c b/src/gallium/auxiliary/util/u_debug_refcnt.c
index 0a47864..eda95bb 100644
--- a/src/gallium/auxiliary/util/u_debug_refcnt.c
+++ b/src/gallium/auxiliary/util/u_debug_refcnt.c
@@ -45,21 +45,21 @@
#include "util/u_hash_table.h"
#include "os/os_thread.h"
int debug_refcnt_state;
static FILE *stream;
/* TODO: maybe move this serial machinery to a stand-alone module and
* expose it?
*/
-pipe_static_mutex(serials_mutex);
+static mtx_t serials_mutex = _MTX_INITIALIZER_NP;
static struct util_hash_table *serials_hash;
static unsigned serials_last;
static unsigned
hash_ptr(void *p)
{
return (unsigned) (uintptr_t) p;
}
diff --git a/src/gallium/auxiliary/util/u_debug_symbol.c b/src/gallium/auxiliary/util/u_debug_symbol.c
index 10efdd5..cfd354a 100644
--- a/src/gallium/auxiliary/util/u_debug_symbol.c
+++ b/src/gallium/auxiliary/util/u_debug_symbol.c
@@ -264,21 +264,21 @@ debug_symbol_name(const void *addr, char* buf, unsigned size)
void
debug_symbol_print(const void *addr)
{
char buf[1024];
debug_symbol_name(addr, buf, sizeof(buf));
debug_printf("\t%s\n", buf);
}
struct util_hash_table* symbols_hash;
-pipe_static_mutex(symbols_mutex);
+static mtx_t symbols_mutex = _MTX_INITIALIZER_NP;
static unsigned hash_ptr(void* p)
{
return (unsigned)(uintptr_t)p;
}
static int compare_ptr(void* a, void* b)
{
if(a == b)
return 0;
diff --git a/src/gallium/auxiliary/util/u_queue.c b/src/gallium/auxiliary/util/u_queue.c
index c84e0ad..ca637ad 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -33,21 +33,21 @@ static void util_queue_killall_and_wait(struct util_queue *queue);
/****************************************************************************
* Wait for all queues to assert idle when exit() is called.
*
* Otherwise, C++ static variable destructors can be called while threads
* are using the static variables.
*/
static once_flag atexit_once_flag = ONCE_FLAG_INIT;
static struct list_head queue_list;
-pipe_static_mutex(exit_mutex);
+static mtx_t exit_mutex = _MTX_INITIALIZER_NP;
static void
atexit_handler(void)
{
struct util_queue *iter;
pipe_mutex_lock(exit_mutex);
/* Wait for all queues to assert idle. */
LIST_FOR_EACH_ENTRY(iter, &queue_list, head) {
util_queue_killall_and_wait(iter);
diff --git a/src/gallium/drivers/trace/tr_dump.c b/src/gallium/drivers/trace/tr_dump.c
index 112a69e..b052e2a 100644
--- a/src/gallium/drivers/trace/tr_dump.c
+++ b/src/gallium/drivers/trace/tr_dump.c
@@ -52,21 +52,21 @@
#include "util/u_math.h"
#include "util/u_format.h"
#include "tr_dump.h"
#include "tr_screen.h"
#include "tr_texture.h"
static boolean close_stream = FALSE;
static FILE *stream = NULL;
-pipe_static_mutex(call_mutex);
+static mtx_t call_mutex = _MTX_INITIALIZER_NP;
static long unsigned call_no = 0;
static boolean dumping = FALSE;
static inline void
trace_dump_write(const char *buf, size_t size)
{
if (stream) {
fwrite(buf, size, 1, stream);
}
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c
index 8d1b360..9297b68 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -182,21 +182,21 @@ xmesa_close_display(Display *display)
* }
*/
free(xmdpy->smapi);
XFree((char *) info);
}
static XMesaDisplay
xmesa_init_display( Display *display )
{
- pipe_static_mutex(init_mutex);
+ static mtx_t init_mutex = _MTX_INITIALIZER_NP;
XMesaDisplay xmdpy;
XMesaExtDisplayInfo *info;
if (display == NULL) {
return NULL;
}
pipe_mutex_lock(init_mutex);
/* Look for XMesaDisplay which corresponds to this display */
diff --git a/src/gallium/state_trackers/nine/nine_lock.c b/src/gallium/state_trackers/nine/nine_lock.c
index 1136dad..5b53559 100644
--- a/src/gallium/state_trackers/nine/nine_lock.c
+++ b/src/gallium/state_trackers/nine/nine_lock.c
@@ -41,21 +41,21 @@
#include "vertexshader9.h"
#include "volume9.h"
#include "volumetexture9.h"
#include "d3d9.h"
#include "nine_lock.h"
#include "os/os_thread.h"
/* Global mutex as described by MSDN */
-pipe_static_mutex(d3dlock_global);
+static mtx_t d3dlock_global = _MTX_INITIALIZER_NP;
void
NineLockGlobalMutex()
{
pipe_mutex_lock(d3dlock_global);
}
void
NineUnlockGlobalMutex()
{
diff --git a/src/gallium/state_trackers/omx/entrypoint.c b/src/gallium/state_trackers/omx/entrypoint.c
index afcbd97..c12eb20 100644
--- a/src/gallium/state_trackers/omx/entrypoint.c
+++ b/src/gallium/state_trackers/omx/entrypoint.c
@@ -38,21 +38,21 @@
#include <X11/Xlib.h>
#include "os/os_thread.h"
#include "util/u_memory.h"
#include "loader/loader.h"
#include "entrypoint.h"
#include "vid_dec.h"
#include "vid_enc.h"
-pipe_static_mutex(omx_lock);
+static mtx_t omx_lock = _MTX_INITIALIZER_NP;
static Display *omx_display = NULL;
static struct vl_screen *omx_screen = NULL;
static unsigned omx_usecount = 0;
static const char *omx_render_node = NULL;
static int drm_fd;
int omx_component_library_Setup(stLoaderComponentType **stComponents)
{
OMX_ERRORTYPE r;
diff --git a/src/gallium/state_trackers/vdpau/htab.c b/src/gallium/state_trackers/vdpau/htab.c
index 1d7b3ff..277ea0c 100644
--- a/src/gallium/state_trackers/vdpau/htab.c
+++ b/src/gallium/state_trackers/vdpau/htab.c
@@ -23,21 +23,21 @@
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
**************************************************************************/
#include "util/u_handle_table.h"
#include "os/os_thread.h"
#include "vdpau_private.h"
static struct handle_table *htab = NULL;
-pipe_static_mutex(htab_lock);
+static mtx_t htab_lock = _MTX_INITIALIZER_NP;
boolean vlCreateHTAB(void)
{
boolean ret;
/* Make sure handle table handles match VDPAU handles. */
assert(sizeof(unsigned) <= sizeof(vlHandle));
pipe_mutex_lock(htab_lock);
if (!htab)
htab = handle_table_create();
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index da9371d..546e3e6 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -57,21 +57,21 @@
#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x32_16x32 13
#define CIK__PIPE_CONFIG__ADDR_SURF_P8_32x64_32x32 14
#define CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_8X16 16
#define CIK__PIPE_CONFIG__ADDR_SURF_P16_32X32_16X16 17
#ifndef AMDGPU_INFO_NUM_EVICTIONS
#define AMDGPU_INFO_NUM_EVICTIONS 0x18
#endif
static struct util_hash_table *dev_tab = NULL;
-pipe_static_mutex(dev_tab_mutex);
+static mtx_t dev_tab_mutex = _MTX_INITIALIZER_NP;
static unsigned cik_get_num_tile_pipes(struct amdgpu_gpu_info *info)
{
unsigned mode2d = info->gb_tile_mode[CIK_TILE_MODE_COLOR_2D];
switch (CIK__GB_TILE_MODE__PIPE_CONFIG(mode2d)) {
case CIK__PIPE_CONFIG__ADDR_SURF_P2:
return 2;
case CIK__PIPE_CONFIG__ADDR_SURF_P4_8x16:
case CIK__PIPE_CONFIG__ADDR_SURF_P4_16x16:
diff --git a/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c b/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c
index 3b34c30..141191f 100644
--- a/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c
+++ b/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c
@@ -62,21 +62,21 @@ screen_create(struct renderonly *ro)
break;
etna_gpu_del(gpu);
}
return etna_screen_create(dev, gpu, ro);
}
static struct util_hash_table *etna_tab = NULL;
-pipe_static_mutex(etna_screen_mutex);
+static mtx_t etna_screen_mutex = _MTX_INITIALIZER_NP;
static void
etna_drm_screen_destroy(struct pipe_screen *pscreen)
{
struct etna_screen *screen = etna_screen(pscreen);
boolean destroy;
pipe_mutex_lock(etna_screen_mutex);
destroy = --screen->refcnt == 0;
if (destroy) {
diff --git a/src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c b/src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c
index e4785f8..9ccbce1 100644
--- a/src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c
+++ b/src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c
@@ -35,21 +35,21 @@
#include "util/u_inlines.h"
#include "util/u_hash_table.h"
#include "os/os_thread.h"
#include "freedreno_drm_public.h"
#include "freedreno/freedreno_screen.h"
static struct util_hash_table *fd_tab = NULL;
-pipe_static_mutex(fd_screen_mutex);
+static mtx_t fd_screen_mutex = _MTX_INITIALIZER_NP;
static void
fd_drm_screen_destroy(struct pipe_screen *pscreen)
{
struct fd_screen *screen = fd_screen(pscreen);
boolean destroy;
pipe_mutex_lock(fd_screen_mutex);
destroy = --screen->refcnt == 0;
if (destroy) {
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
index cc9dfa7..f7b1e5e 100644
--- a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
@@ -12,21 +12,21 @@
#include "nouveau_drm_public.h"
#include "nouveau/nouveau_winsys.h"
#include "nouveau/nouveau_screen.h"
#include <nvif/class.h>
#include <nvif/cl0080.h>
static struct util_hash_table *fd_tab = NULL;
-pipe_static_mutex(nouveau_screen_mutex);
+static mtx_t nouveau_screen_mutex = _MTX_INITIALIZER_NP;
bool nouveau_drm_screen_unref(struct nouveau_screen *screen)
{
int ret;
if (screen->refcount == -1)
return true;
pipe_mutex_lock(nouveau_screen_mutex);
ret = --screen->refcount;
assert(ret >= 0);
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 6c6d920..2726237 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -40,21 +40,21 @@
#include <xf86drm.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <radeon_surface.h>
static struct util_hash_table *fd_tab = NULL;
-pipe_static_mutex(fd_tab_mutex);
+static mtx_t fd_tab_mutex = _MTX_INITIALIZER_NP;
/* Enable/disable feature access for one command stream.
* If enable == true, return true on success.
* Otherwise, return false.
*
* We basically do the same thing kernel does, because we have to deal
* with multiple contexts (here command streams) backed by one winsys. */
static bool radeon_set_fd_access(struct radeon_drm_cs *applier,
struct radeon_drm_cs **owner,
mtx_t *mutex,
diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
index 86e0470..7353873 100644
--- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
+++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
@@ -799,21 +799,21 @@ virgl_drm_winsys_create(int drmFD)
qdws->base.cs_create_fence = virgl_cs_create_fence;
qdws->base.fence_wait = virgl_fence_wait;
qdws->base.fence_reference = virgl_fence_reference;
qdws->base.get_caps = virgl_drm_get_caps;
return &qdws->base;
}
static struct util_hash_table *fd_tab = NULL;
-pipe_static_mutex(virgl_screen_mutex);
+static mtx_t virgl_screen_mutex = _MTX_INITIALIZER_NP;
static void
virgl_drm_screen_destroy(struct pipe_screen *pscreen)
{
struct virgl_screen *screen = virgl_screen(pscreen);
boolean destroy;
pipe_mutex_lock(virgl_screen_mutex);
destroy = --screen->refcnt == 0;
if (destroy) {
--
2.9.3
More information about the mesa-dev
mailing list