[Mesa-dev] [PATCH 03/10] gbm: use the loader util lib

Kristian Høgsberg hoegsberg at gmail.com
Thu Jan 16 15:03:49 PST 2014


On Sat, Jan 11, 2014 at 04:54:44PM +0000, Emil Velikov wrote:
> Additionally this commit removes the following exported functions
> 
>    _gbm_udev_device_new_from_fd()
>    _gbm_fd_get_device_name()
>    _gbm_log()
> 
> All three were erroneously marked as exported since their inception.
> Neither of them has ever been a part of the API thus there should be
> no users of them.
> 
> Cc: Chad Versace <chad.versace at linux.intel.com>
> Cc: Kristian Høgsberg <krh at bitplanet.net>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
> 
> Chad, Kristian
> 
> Can you give us some tips of there are any non-mesa users of the
> above functions. They seems to have never been exposed by gbm api
> but were marked as exported since day one :\

They were exported so that external gbm modules could call them.
Today we compile the gbm dri backend into libgbm, so it's not an
issue.  Nothing outside mesa should use it.

Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>

> Thanks
> Emil
> ---
> 
>  .../state_trackers/gbm/gbm_gallium_drmint.h        |  1 -
>  src/gbm/Makefile.am                                |  7 +-
>  src/gbm/backends/dri/driver_name.c                 | 89 ----------------------
>  src/gbm/backends/dri/gbm_dri.c                     |  3 +-
>  src/gbm/backends/dri/gbm_driint.h                  |  4 -
>  src/gbm/main/common.c                              | 88 ---------------------
>  src/gbm/main/common.h                              | 42 ----------
>  src/gbm/main/gbm.c                                 |  1 -
>  8 files changed, 5 insertions(+), 230 deletions(-)
>  delete mode 100644 src/gbm/backends/dri/driver_name.c
>  delete mode 100644 src/gbm/main/common.c
>  delete mode 100644 src/gbm/main/common.h
> 
> diff --git a/src/gallium/state_trackers/gbm/gbm_gallium_drmint.h b/src/gallium/state_trackers/gbm/gbm_gallium_drmint.h
> index a5d6d83..4534dd8 100644
> --- a/src/gallium/state_trackers/gbm/gbm_gallium_drmint.h
> +++ b/src/gallium/state_trackers/gbm/gbm_gallium_drmint.h
> @@ -32,7 +32,6 @@
>  
>  #include "gbmint.h"
>  
> -#include "common.h"
>  #include "common_drm.h"
>  
>  struct gbm_gallium_drm_device {
> diff --git a/src/gbm/Makefile.am b/src/gbm/Makefile.am
> index 5ae7a68..4030cc6 100644
> --- a/src/gbm/Makefile.am
> +++ b/src/gbm/Makefile.am
> @@ -19,10 +19,10 @@ include_HEADERS = main/gbm.h
>  
>  libgbm_la_SOURCES = \
>  	main/gbm.c \
> -	main/backend.c \
> -	main/common.c
> +	main/backend.c
>  libgbm_la_LDFLAGS = -version-info 1:0
>  libgbm_la_LIBADD = \
> +	$(top_builddir)/src/loader/libloader.la \
>  	$(LIBUDEV_LIBS) \
>  	$(LIBKMS_LIBS) \
>  	$(DLOPEN_LIBS)
> @@ -36,8 +36,7 @@ endif
>  if HAVE_DRI
>  noinst_LTLIBRARIES = libgbm_dri.la
>  libgbm_dri_la_SOURCES = \
> -	backends/dri/gbm_dri.c \
> -	backends/dri/driver_name.c
> +	backends/dri/gbm_dri.c
>  
>  libgbm_dri_la_CFLAGS = \
>  	$(AM_CFLAGS) \
> diff --git a/src/gbm/backends/dri/driver_name.c b/src/gbm/backends/dri/driver_name.c
> deleted file mode 100644
> index 2ed209f..0000000
> --- a/src/gbm/backends/dri/driver_name.c
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -/*
> - * 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:
> - *    Kristian Høgsberg <krh at bitplanet.net>
> - *    Benjamin Franzke <benjaminfranzke at googlemail.com>
> - */
> -
> -#include <stdio.h>
> -#include <string.h>
> -
> -#include <libudev.h>
> -
> -#include "gbm_driint.h"
> -#define DRIVER_MAP_DRI2_ONLY
> -#include "pci_ids/pci_id_driver_map.h"
> -
> -char *
> -dri_fd_get_driver_name(int fd)
> -{
> -   struct udev *udev;
> -   struct udev_device *device, *parent;
> -   const char *pci_id;
> -   char *driver = NULL;
> -   int vendor_id, chip_id, i, j;
> -
> -   udev = udev_new();
> -   device = _gbm_udev_device_new_from_fd(udev, fd);
> -   if (device == NULL)
> -      return NULL;
> -
> -   parent = udev_device_get_parent(device);
> -   if (parent == NULL) {
> -      fprintf(stderr, "gbm: could not get parent device");
> -      goto out;
> -   }
> -
> -   pci_id = udev_device_get_property_value(parent, "PCI_ID");
> -   if (pci_id == NULL ||
> -       sscanf(pci_id, "%x:%x", &vendor_id, &chip_id) != 2) {
> -      fprintf(stderr, "gbm: malformed or no PCI ID");
> -      goto out;
> -   }
> -
> -   for (i = 0; driver_map[i].driver; i++) {
> -      if (vendor_id != driver_map[i].vendor_id)
> -         continue;
> -      if (driver_map[i].num_chips_ids == -1) {
> -         driver = strdup(driver_map[i].driver);
> -         _gbm_log("pci id for %d: %04x:%04x, driver %s",
> -                  fd, vendor_id, chip_id, driver);
> -         goto out;
> -      }
> -
> -      for (j = 0; j < driver_map[i].num_chips_ids; j++)
> -         if (driver_map[i].chip_ids[j] == chip_id) {
> -            driver = strdup(driver_map[i].driver);
> -            _gbm_log("pci id for %d: %04x:%04x, driver %s",
> -                     fd, vendor_id, chip_id, driver);
> -            goto out;
> -         }
> -   }
> -
> -out:
> -   udev_device_unref(device);
> -   udev_unref(udev);
> -
> -   return driver;
> -}
> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
> index cd31221..e013980 100644
> --- a/src/gbm/backends/dri/gbm_dri.c
> +++ b/src/gbm/backends/dri/gbm_dri.c
> @@ -44,6 +44,7 @@
>  #include "gbm_driint.h"
>  
>  #include "gbmint.h"
> +#include "loader.h"
>  
>  /* For importing wl_buffer */
>  #if HAVE_WAYLAND_PLATFORM
> @@ -271,7 +272,7 @@ dri_screen_create(struct gbm_dri_device *dri)
>     const __DRIextension **extensions;
>     int ret = 0;
>  
> -   dri->base.driver_name = dri_fd_get_driver_name(dri->base.base.fd);
> +   dri->base.driver_name = loader_get_driver_for_fd(dri->base.base.fd, 0);
>     if (dri->base.driver_name == NULL)
>        return -1;
>  
> diff --git a/src/gbm/backends/dri/gbm_driint.h b/src/gbm/backends/dri/gbm_driint.h
> index fb303a3..fdf694d 100644
> --- a/src/gbm/backends/dri/gbm_driint.h
> +++ b/src/gbm/backends/dri/gbm_driint.h
> @@ -30,7 +30,6 @@
>  
>  #include "gbmint.h"
>  
> -#include "common.h"
>  #include "common_drm.h"
>  
>  #include <GL/gl.h> /* dri_interface needs GL types */
> @@ -111,7 +110,4 @@ gbm_dri_surface(struct gbm_surface *surface)
>     return (struct gbm_dri_surface *) surface;
>  }
>  
> -char *
> -dri_fd_get_driver_name(int fd);
> -
>  #endif
> diff --git a/src/gbm/main/common.c b/src/gbm/main/common.c
> deleted file mode 100644
> index f02162d..0000000
> --- a/src/gbm/main/common.c
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -/*
> - * 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>
> - */
> -
> -#include <stdio.h>
> -#include <string.h>
> -
> -#include <libudev.h>
> -#include <sys/types.h>
> -#include <sys/stat.h>
> -#include <unistd.h>
> -
> -#include "common.h"
> -#include "gbmint.h"
> -
> -GBM_EXPORT struct udev_device *
> -_gbm_udev_device_new_from_fd(struct udev *udev, int fd)
> -{
> -   struct udev_device *device;
> -   struct stat buf;
> -
> -   if (fstat(fd, &buf) < 0) {
> -      fprintf(stderr, "gbm: failed to stat fd %d", fd);
> -      return NULL;
> -   }
> -
> -   device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev);
> -   if (device == NULL) {
> -      fprintf(stderr,
> -              "gbm: could not create udev device for fd %d", fd);
> -      return NULL;
> -   }
> -
> -   return device;
> -}
> -
> -GBM_EXPORT char *
> -_gbm_fd_get_device_name(int fd)
> -{
> -   struct udev *udev;
> -   struct udev_device *device;
> -   const char *const_device_name;
> -   char *device_name = NULL;
> -
> -   udev = udev_new();
> -   device = _gbm_udev_device_new_from_fd(udev, fd);
> -   if (device == NULL)
> -      return NULL;
> -
> -   const_device_name = udev_device_get_devnode(device);
> -   if (!const_device_name)
> -      goto out;
> -   device_name = strdup(const_device_name);
> -
> -out:
> -   udev_device_unref(device);
> -   udev_unref(udev);
> -
> -   return device_name;
> -}
> -
> -GBM_EXPORT void
> -_gbm_log(const char *fmt_str, ...)
> -{
> -}
> diff --git a/src/gbm/main/common.h b/src/gbm/main/common.h
> deleted file mode 100644
> index 1fcdfca..0000000
> --- a/src/gbm/main/common.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/*
> - * 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 _COMMON_H_
> -#define _COMMON_H_
> -
> -#include <libudev.h>
> -
> -struct udev_device *
> -_gbm_udev_device_new_from_fd(struct udev *udev, int fd);
> -
> -char *
> -_gbm_fd_get_device_name(int fd);
> -
> -void
> -_gbm_log(const char *fmt_str, ...);
> -
> -#endif
> diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
> index c58576d..72eeabf 100644
> --- a/src/gbm/main/gbm.c
> +++ b/src/gbm/main/gbm.c
> @@ -39,7 +39,6 @@
>  
>  #include "gbm.h"
>  #include "gbmint.h"
> -#include "common.h"
>  #include "backend.h"
>  
>  #define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
> -- 
> 1.8.5.1
> 


More information about the mesa-dev mailing list