Mesa (main): gallium/rbug: replace simple_list.h with list.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 22 17:20:44 UTC 2022


Module: Mesa
Branch: main
Commit: dac8dc9ece2744cf062aae907085de354a10e2ca
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dac8dc9ece2744cf062aae907085de354a10e2ca

Author: Dylan Baker <dylan.c.baker at intel.com>
Date:   Wed Feb 16 14:45:43 2022 -0800

gallium/rbug: replace simple_list.h with list.h

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15418>

---

 src/gallium/auxiliary/driver_rbug/rbug_context.c |  3 +-
 src/gallium/auxiliary/driver_rbug/rbug_context.h |  4 +--
 src/gallium/auxiliary/driver_rbug/rbug_core.c    | 43 ++++++++----------------
 src/gallium/auxiliary/driver_rbug/rbug_objects.c |  1 -
 src/gallium/auxiliary/driver_rbug/rbug_objects.h |  4 +--
 src/gallium/auxiliary/driver_rbug/rbug_screen.c  |  9 +++--
 src/gallium/auxiliary/driver_rbug/rbug_screen.h  | 18 ++++------
 7 files changed, 30 insertions(+), 52 deletions(-)

diff --git a/src/gallium/auxiliary/driver_rbug/rbug_context.c b/src/gallium/auxiliary/driver_rbug/rbug_context.c
index b0c283d9b91..46d78ad729e 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_context.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_context.c
@@ -29,7 +29,6 @@
 #include "pipe/p_context.h"
 #include "util/u_memory.h"
 #include "util/u_inlines.h"
-#include "util/simple_list.h"
 
 #include "rbug/rbug_context.h"
 
@@ -1287,7 +1286,7 @@ rbug_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
    cnd_init(&rb_pipe->draw_cond);
    (void) mtx_init(&rb_pipe->call_mutex, mtx_plain);
    (void) mtx_init(&rb_pipe->list_mutex, mtx_plain);
-   make_empty_list(&rb_pipe->shaders);
+   list_inithead(&rb_pipe->shaders);
 
    rb_pipe->base.screen = _screen;
    rb_pipe->base.priv = pipe->priv; /* expose wrapped data */
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_context.h b/src/gallium/auxiliary/driver_rbug/rbug_context.h
index e89c6eaac01..0ec556bd050 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_context.h
+++ b/src/gallium/auxiliary/driver_rbug/rbug_context.h
@@ -39,7 +39,7 @@ struct rbug_context {
 
    struct pipe_context *pipe;
 
-   struct rbug_list list;
+   struct list_head list;
 
    /* call locking */
    mtx_t call_mutex;
@@ -76,7 +76,7 @@ struct rbug_context {
    /* list of state objects */
    mtx_t list_mutex;
    unsigned num_shaders;
-   struct rbug_list shaders;
+   struct list_head shaders;
 };
 
 static inline struct rbug_context *
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_core.c b/src/gallium/auxiliary/driver_rbug/rbug_core.c
index aad4487f4a9..ac5262ced84 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_core.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_core.c
@@ -31,7 +31,6 @@
 #include "util/u_string.h"
 #include "util/u_inlines.h"
 #include "util/u_memory.h"
-#include "util/simple_list.h"
 #include "util/u_network.h"
 #include "util/os_time.h"
 
@@ -67,11 +66,9 @@ rbug_thread(void *void_rbug);
 static struct rbug_context *
 rbug_get_context_locked(struct rbug_screen *rb_screen, rbug_context_t ctx)
 {
-   struct rbug_context *rb_context = NULL;
-   struct rbug_list *ptr;
+   struct rbug_context *rb_context;
 
-   foreach(ptr, &rb_screen->contexts) {
-      rb_context = container_of(ptr, struct rbug_context, list);
+   LIST_FOR_EACH_ENTRY(rb_context, &rb_screen->contexts, list) {
       if (ctx == VOID2U64(rb_context))
          break;
       rb_context = NULL;
@@ -83,11 +80,9 @@ rbug_get_context_locked(struct rbug_screen *rb_screen, rbug_context_t ctx)
 static struct rbug_shader *
 rbug_get_shader_locked(struct rbug_context *rb_context, rbug_shader_t shdr)
 {
-   struct rbug_shader *tr_shdr = NULL;
-   struct rbug_list *ptr;
+   struct rbug_shader *tr_shdr;
 
-   foreach(ptr, &rb_context->shaders) {
-      tr_shdr = container_of(ptr, struct rbug_shader, list);
+   LIST_FOR_EACH_ENTRY(tr_shdr, &rb_context->shaders, list) {
       if (shdr == VOID2U64(tr_shdr))
          break;
       tr_shdr = NULL;
@@ -175,15 +170,13 @@ static int
 rbug_texture_list(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_t serial)
 {
    struct rbug_screen *rb_screen = tr_rbug->rb_screen;
-   struct rbug_resource *tr_tex = NULL;
-   struct rbug_list *ptr;
+   struct rbug_resource *tr_tex;
    rbug_texture_t *texs;
    int i = 0;
 
    mtx_lock(&rb_screen->list_mutex);
    texs = MALLOC(rb_screen->num_resources * sizeof(rbug_texture_t));
-   foreach(ptr, &rb_screen->resources) {
-      tr_tex = container_of(ptr, struct rbug_resource, list);
+   LIST_FOR_EACH_ENTRY(tr_tex, &rb_screen->resources, list) {
       texs[i++] = VOID2U64(tr_tex);
    }
    mtx_unlock(&rb_screen->list_mutex);
@@ -198,15 +191,13 @@ static int
 rbug_texture_info(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_t serial)
 {
    struct rbug_screen *rb_screen = tr_rbug->rb_screen;
-   struct rbug_resource *tr_tex = NULL;
+   struct rbug_resource *tr_tex;
    struct rbug_proto_texture_info *gpti = (struct rbug_proto_texture_info *)header;
-   struct rbug_list *ptr;
    struct pipe_resource *t;
    uint16_t num_layers;
 
    mtx_lock(&rb_screen->list_mutex);
-   foreach(ptr, &rb_screen->resources) {
-      tr_tex = container_of(ptr, struct rbug_resource, list);
+   LIST_FOR_EACH_ENTRY(tr_tex, &rb_screen->resources, list) {
       if (gpti->texture == VOID2U64(tr_tex))
          break;
       tr_tex = NULL;
@@ -244,8 +235,7 @@ rbug_texture_read(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_
    struct rbug_proto_texture_read *gptr = (struct rbug_proto_texture_read *)header;
 
    struct rbug_screen *rb_screen = tr_rbug->rb_screen;
-   struct rbug_resource *tr_tex = NULL;
-   struct rbug_list *ptr;
+   struct rbug_resource *tr_tex;
 
    struct pipe_context *context = rb_screen->private_context;
    struct pipe_resource *tex;
@@ -254,8 +244,7 @@ rbug_texture_read(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_
    void *map;
 
    mtx_lock(&rb_screen->list_mutex);
-   foreach(ptr, &rb_screen->resources) {
-      tr_tex = container_of(ptr, struct rbug_resource, list);
+   LIST_FOR_EACH_ENTRY(tr_tex, &rb_screen->resources, list) {
       if (gptr->texture == VOID2U64(tr_tex))
          break;
       tr_tex = NULL;
@@ -294,15 +283,13 @@ static int
 rbug_context_list(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_t serial)
 {
    struct rbug_screen *rb_screen = tr_rbug->rb_screen;
-   struct rbug_list *ptr;
-   struct rbug_context *rb_context = NULL;
+   struct rbug_context *rb_context, *next;
    rbug_context_t *ctxs;
    int i = 0;
 
    mtx_lock(&rb_screen->list_mutex);
    ctxs = MALLOC(rb_screen->num_contexts * sizeof(rbug_context_t));
-   foreach(ptr, &rb_screen->contexts) {
-      rb_context = container_of(ptr, struct rbug_context, list);
+   LIST_FOR_EACH_ENTRY_SAFE(rb_context, next, &rb_screen->contexts, list) {
       ctxs[i++] = VOID2U64(rb_context);
    }
    mtx_unlock(&rb_screen->list_mutex);
@@ -513,8 +500,7 @@ rbug_shader_list(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_t
 
    struct rbug_screen *rb_screen = tr_rbug->rb_screen;
    struct rbug_context *rb_context = NULL;
-   struct rbug_shader *tr_shdr = NULL;
-   struct rbug_list *ptr;
+   struct rbug_shader *tr_shdr, *next;
    rbug_shader_t *shdrs;
    int i = 0;
 
@@ -528,8 +514,7 @@ rbug_shader_list(struct rbug_rbug *tr_rbug, struct rbug_header *header, uint32_t
 
    mtx_lock(&rb_context->list_mutex);
    shdrs = MALLOC(rb_context->num_shaders * sizeof(rbug_shader_t));
-   foreach(ptr, &rb_context->shaders) {
-      tr_shdr = container_of(ptr, struct rbug_shader, list);
+   LIST_FOR_EACH_ENTRY_SAFE(tr_shdr, next, &rb_context->shaders, list) {
       shdrs[i++] = VOID2U64(tr_shdr);
    }
 
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_objects.c b/src/gallium/auxiliary/driver_rbug/rbug_objects.c
index 09455cf6f2f..8d1bf86a8f9 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_objects.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_objects.c
@@ -27,7 +27,6 @@
 
 #include "util/u_inlines.h"
 #include "util/u_memory.h"
-#include "util/simple_list.h"
 
 #include "tgsi/tgsi_parse.h"
 
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_objects.h b/src/gallium/auxiliary/driver_rbug/rbug_objects.h
index 1a16eb416a4..32375a0b6a0 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_objects.h
+++ b/src/gallium/auxiliary/driver_rbug/rbug_objects.h
@@ -43,7 +43,7 @@ struct rbug_resource
 
    struct pipe_resource *resource;
 
-   struct rbug_list list;
+   struct list_head list;
 };
 
 
@@ -56,7 +56,7 @@ enum rbug_shader_type
 
 struct rbug_shader
 {
-   struct rbug_list list;
+   struct list_head list;
 
    void *shader;
    void *tokens;
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_screen.c b/src/gallium/auxiliary/driver_rbug/rbug_screen.c
index 9ddb6dfa762..3c78e6c3c8d 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_screen.c
+++ b/src/gallium/auxiliary/driver_rbug/rbug_screen.c
@@ -30,7 +30,6 @@
 #include "pipe/p_state.h"
 #include "util/u_memory.h"
 #include "util/u_debug.h"
-#include "util/simple_list.h"
 
 #include "rbug_public.h"
 #include "rbug_screen.h"
@@ -452,10 +451,10 @@ rbug_screen_create(struct pipe_screen *screen)
       return screen;
 
    (void) mtx_init(&rb_screen->list_mutex, mtx_plain);
-   make_empty_list(&rb_screen->contexts);
-   make_empty_list(&rb_screen->resources);
-   make_empty_list(&rb_screen->surfaces);
-   make_empty_list(&rb_screen->transfers);
+   list_inithead(&rb_screen->contexts);
+   list_inithead(&rb_screen->resources);
+   list_inithead(&rb_screen->surfaces);
+   list_inithead(&rb_screen->transfers);
 
 #define SCR_INIT(_member) \
    rb_screen->base._member = screen->_member ? rbug_screen_##_member : NULL
diff --git a/src/gallium/auxiliary/driver_rbug/rbug_screen.h b/src/gallium/auxiliary/driver_rbug/rbug_screen.h
index 1972005753b..bfa0e7704e6 100644
--- a/src/gallium/auxiliary/driver_rbug/rbug_screen.h
+++ b/src/gallium/auxiliary/driver_rbug/rbug_screen.h
@@ -30,14 +30,10 @@
 
 #include "pipe/p_screen.h"
 #include "pipe/p_defines.h"
+#include "util/list.h"
 
 #include "os/os_thread.h"
 
-struct rbug_list {
-   struct rbug_list *next;
-   struct rbug_list *prev;
-};
-
 
 struct rbug_screen
 {
@@ -54,10 +50,10 @@ struct rbug_screen
    int num_resources;
    int num_surfaces;
    int num_transfers;
-   struct rbug_list contexts;
-   struct rbug_list resources;
-   struct rbug_list surfaces;
-   struct rbug_list transfers;
+   struct list_head contexts;
+   struct list_head resources;
+   struct list_head surfaces;
+   struct list_head transfers;
 };
 
 static inline struct rbug_screen *
@@ -69,7 +65,7 @@ rbug_screen(struct pipe_screen *screen)
 #define rbug_screen_add_to_list(scr, name, obj) \
    do {                                          \
       mtx_lock(&scr->list_mutex);          \
-      insert_at_head(&scr->name, &obj->list);    \
+      list_add(&scr->name, &obj->list);    \
       scr->num_##name++;                         \
       mtx_unlock(&scr->list_mutex);        \
    } while (0)
@@ -77,7 +73,7 @@ rbug_screen(struct pipe_screen *screen)
 #define rbug_screen_remove_from_list(scr, name, obj) \
    do {                                               \
       mtx_lock(&scr->list_mutex);               \
-      remove_from_list(&obj->list);                   \
+      list_del(&obj->list);                   \
       scr->num_##name--;                              \
       mtx_unlock(&scr->list_mutex);             \
    } while (0)



More information about the mesa-commit mailing list