Mesa (main): gbm: Move majority of gbmint.h to gbm_backend_abi.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 6 17:27:20 UTC 2021


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

Author: James Jones <jajones at nvidia.com>
Date:   Thu Jun  3 15:36:10 2021 -0700

gbm: Move majority of gbmint.h to gbm_backend_abi.h

The content of gbm_backend_abi.h are nearly an
identical copy of the old gbmint.h. Only minimal
modifications have been made to ease history
tracking. Subsequent changes will further
formalize the ABI structures in gbm_backend_abi.h

Signed-off-by: James Jones <jajones at nvidia.com>
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902>

---

 src/gbm/main/gbm_backend_abi.h | 135 +++++++++++++++++++++++++++++++++++++++++
 src/gbm/main/gbmint.h          | 101 +-----------------------------
 2 files changed, 138 insertions(+), 98 deletions(-)

diff --git a/src/gbm/main/gbm_backend_abi.h b/src/gbm/main/gbm_backend_abi.h
new file mode 100644
index 00000000000..6b802826306
--- /dev/null
+++ b/src/gbm/main/gbm_backend_abi.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright © 2011 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Benjamin Franzke <benjaminfranzke at googlemail.com>
+ */
+
+#ifndef GBM_BACKEND_ABI_H_
+#define GBM_BACKEND_ABI_H_
+
+#include "gbm.h"
+
+/**
+ * \file gbm_backend_abi.h
+ * \brief ABI between the GBM loader and its backends
+ */
+
+struct gbm_backend_desc;
+
+/**
+ * The device used for the memory allocation.
+ *
+ * The members of this structure should be not accessed directly
+ */
+struct gbm_device {
+   /* Hack to make a gbm_device detectable by its first element. */
+   struct gbm_device *(*dummy)(int);
+
+   const struct gbm_backend_desc *backend_desc;
+
+   int fd;
+   const char *name;
+
+   void (*destroy)(struct gbm_device *gbm);
+   int (*is_format_supported)(struct gbm_device *gbm,
+                              uint32_t format,
+                              uint32_t usage);
+   int (*get_format_modifier_plane_count)(struct gbm_device *device,
+                                          uint32_t format,
+                                          uint64_t modifier);
+
+   struct gbm_bo *(*bo_create)(struct gbm_device *gbm,
+                               uint32_t width, uint32_t height,
+                               uint32_t format,
+                               uint32_t usage,
+                               const uint64_t *modifiers,
+                               const unsigned int count);
+   struct gbm_bo *(*bo_import)(struct gbm_device *gbm, uint32_t type,
+                               void *buffer, uint32_t usage);
+   void *(*bo_map)(struct gbm_bo *bo,
+                               uint32_t x, uint32_t y,
+                               uint32_t width, uint32_t height,
+                               uint32_t flags, uint32_t *stride,
+                               void **map_data);
+   void (*bo_unmap)(struct gbm_bo *bo, void *map_data);
+   int (*bo_write)(struct gbm_bo *bo, const void *buf, size_t data);
+   int (*bo_get_fd)(struct gbm_bo *bo);
+   int (*bo_get_planes)(struct gbm_bo *bo);
+   union gbm_bo_handle (*bo_get_handle)(struct gbm_bo *bo, int plane);
+   int (*bo_get_plane_fd)(struct gbm_bo *bo, int plane);
+   uint32_t (*bo_get_stride)(struct gbm_bo *bo, int plane);
+   uint32_t (*bo_get_offset)(struct gbm_bo *bo, int plane);
+   uint64_t (*bo_get_modifier)(struct gbm_bo *bo);
+   void (*bo_destroy)(struct gbm_bo *bo);
+
+   struct gbm_surface *(*surface_create)(struct gbm_device *gbm,
+                                         uint32_t width, uint32_t height,
+                                         uint32_t format, uint32_t flags,
+                                         const uint64_t *modifiers,
+                                         const unsigned count);
+   struct gbm_bo *(*surface_lock_front_buffer)(struct gbm_surface *surface);
+   void (*surface_release_buffer)(struct gbm_surface *surface,
+                                  struct gbm_bo *bo);
+   int (*surface_has_free_buffers)(struct gbm_surface *surface);
+   void (*surface_destroy)(struct gbm_surface *surface);
+};
+
+/**
+ * The allocated buffer object.
+ *
+ * The members in this structure should not be accessed directly.
+ */
+struct gbm_bo {
+   struct gbm_device *gbm;
+   uint32_t width;
+   uint32_t height;
+   uint32_t stride;
+   uint32_t format;
+   union gbm_bo_handle  handle;
+   void *user_data;
+   void (*destroy_user_data)(struct gbm_bo *, void *);
+};
+
+struct gbm_surface {
+   struct gbm_device *gbm;
+   uint32_t width;
+   uint32_t height;
+   uint32_t format;
+   uint32_t flags;
+   struct {
+      uint64_t *modifiers;
+      unsigned count;
+   };
+};
+
+struct gbm_backend {
+   const char *backend_name;
+   struct gbm_device *(*create_device)(int fd);
+};
+
+struct gbm_core {
+   uint32_t (*format_canonicalize)(uint32_t gbm_format);
+};
+
+#endif
diff --git a/src/gbm/main/gbmint.h b/src/gbm/main/gbmint.h
index 81cdab59f9d..143b104e0c4 100644
--- a/src/gbm/main/gbmint.h
+++ b/src/gbm/main/gbmint.h
@@ -1,5 +1,6 @@
 /*
  * Copyright © 2011 Intel Corporation
+ * Copyright © 2021 NVIDIA Corporation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -23,12 +24,13 @@
  *
  * Authors:
  *    Benjamin Franzke <benjaminfranzke at googlemail.com>
+ *    James Jones <jajones at nvidia.com>
  */
 
 #ifndef INTERNAL_H_
 #define INTERNAL_H_
 
-#include "gbm.h"
+#include "gbm_backend_abi.h"
 
 /* GCC visibility */
 #if defined(__GNUC__)
@@ -42,103 +44,6 @@
  * \brief Internal implementation details of gbm
  */
 
-struct gbm_backend_desc;
-
-/**
- * The device used for the memory allocation.
- *
- * The members of this structure should be not accessed directly
- */
-struct gbm_device {
-   /* Hack to make a gbm_device detectable by its first element. */
-   struct gbm_device *(*dummy)(int);
-
-   const struct gbm_backend_desc *backend_desc;
-
-   int fd;
-   const char *name;
-
-   void (*destroy)(struct gbm_device *gbm);
-   int (*is_format_supported)(struct gbm_device *gbm,
-                              uint32_t format,
-                              uint32_t usage);
-   int (*get_format_modifier_plane_count)(struct gbm_device *device,
-                                          uint32_t format,
-                                          uint64_t modifier);
-
-   struct gbm_bo *(*bo_create)(struct gbm_device *gbm,
-                               uint32_t width, uint32_t height,
-                               uint32_t format,
-                               uint32_t usage,
-                               const uint64_t *modifiers,
-                               const unsigned int count);
-   struct gbm_bo *(*bo_import)(struct gbm_device *gbm, uint32_t type,
-                               void *buffer, uint32_t usage);
-   void *(*bo_map)(struct gbm_bo *bo,
-                               uint32_t x, uint32_t y,
-                               uint32_t width, uint32_t height,
-                               uint32_t flags, uint32_t *stride,
-                               void **map_data);
-   void (*bo_unmap)(struct gbm_bo *bo, void *map_data);
-   int (*bo_write)(struct gbm_bo *bo, const void *buf, size_t data);
-   int (*bo_get_fd)(struct gbm_bo *bo);
-   int (*bo_get_planes)(struct gbm_bo *bo);
-   union gbm_bo_handle (*bo_get_handle)(struct gbm_bo *bo, int plane);
-   int (*bo_get_plane_fd)(struct gbm_bo *bo, int plane);
-   uint32_t (*bo_get_stride)(struct gbm_bo *bo, int plane);
-   uint32_t (*bo_get_offset)(struct gbm_bo *bo, int plane);
-   uint64_t (*bo_get_modifier)(struct gbm_bo *bo);
-   void (*bo_destroy)(struct gbm_bo *bo);
-
-   struct gbm_surface *(*surface_create)(struct gbm_device *gbm,
-                                         uint32_t width, uint32_t height,
-                                         uint32_t format, uint32_t flags,
-                                         const uint64_t *modifiers,
-                                         const unsigned count);
-   struct gbm_bo *(*surface_lock_front_buffer)(struct gbm_surface *surface);
-   void (*surface_release_buffer)(struct gbm_surface *surface,
-                                  struct gbm_bo *bo);
-   int (*surface_has_free_buffers)(struct gbm_surface *surface);
-   void (*surface_destroy)(struct gbm_surface *surface);
-};
-
-/**
- * The allocated buffer object.
- *
- * The members in this structure should not be accessed directly.
- */
-struct gbm_bo {
-   struct gbm_device *gbm;
-   uint32_t width;
-   uint32_t height;
-   uint32_t stride;
-   uint32_t format;
-   union gbm_bo_handle  handle;
-   void *user_data;
-   void (*destroy_user_data)(struct gbm_bo *, void *);
-};
-
-struct gbm_surface {
-   struct gbm_device *gbm;
-   uint32_t width;
-   uint32_t height;
-   uint32_t format;
-   uint32_t flags;
-   struct {
-      uint64_t *modifiers;
-      unsigned count;
-   };
-};
-
-struct gbm_backend {
-   const char *backend_name;
-   struct gbm_device *(*create_device)(int fd);
-};
-
-struct gbm_core {
-   uint32_t (*format_canonicalize)(uint32_t gbm_format);
-};
-
 extern struct gbm_core gbm_core;
 
 #endif



More information about the mesa-commit mailing list