On Sat, Jan 11, 2014 at 04:54:43PM +0000, Emil Velikov wrote: > Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> > --- > src/glx/Makefile.am | 5 +- > src/glx/SConscript | 2 +- > src/glx/dri3_common.c | 146 > -------------------------------------------------- > src/glx/dri3_glx.c | 3 +- > src/glx/dri3_priv.h | 3 -- > 5 files changed, 6 insertions(+), 153 deletions(-) > delete mode 100644 src/glx/dri3_common.c > > diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am > index 6d81471..54a0cc0 100644 > --- a/src/glx/Makefile.am > +++ b/src/glx/Makefile.am > @@ -99,10 +99,11 @@ libglx_la_SOURCES = \ > > if HAVE_DRI3 > libglx_la_SOURCES += \ > - dri3_glx.c \ > - dri3_common.c > + dri3_glx.c > endif > > +libglx_la_LIBADD = $(top_builddir)/src/loader/libloader.la > + > GL_LIBS = \ > libglx.la \ > $(SHARED_GLAPI_LIBS) \ > diff --git a/src/glx/SConscript b/src/glx/SConscript > index 309a648..cc36bf0 100644 > --- a/src/glx/SConscript > +++ b/src/glx/SConscript > @@ -27,6 +27,7 @@ env.Append(CPPDEFINES = [ > ]) > > env.Prepend(LIBS = [ > + libloader, > glapi > ]) > > @@ -82,7 +83,6 @@ sources = [ > 'dri2.c', > 'dri2_query_renderer.c', > #'dri3_glx.c', > - #'dri3_common.c', > 'applegl_glx.c', > ] > > diff --git a/src/glx/dri3_common.c b/src/glx/dri3_common.c > deleted file mode 100644 > index c758f96..0000000 > --- a/src/glx/dri3_common.c > +++ /dev/null > @@ -1,146 +0,0 @@ > -/* > - * Copyright © 2013 Keith Packard > - * > - * Permission to use, copy, modify, distribute, and sell this software and > its > - * documentation for any purpose is hereby granted without fee, provided that > - * the above copyright notice appear in all copies and that both that > copyright > - * notice and this permission notice appear in supporting documentation, and > - * that the name of the copyright holders not be used in advertising or > - * publicity pertaining to distribution of the software without specific, > - * written prior permission. The copyright holders make no representations > - * about the suitability of this software for any purpose. It is provided > "as > - * is" without express or implied warranty. > - * > - * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS > SOFTWARE, > - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO > - * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR > - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF > USE, > - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER > - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE > - * OF THIS SOFTWARE. > - */ > - > -/* > - * This code is derived from src/egl/drivers/dri2/common.c which > - * carries the following copyright: > - * > - * 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 <k...@bitplanet.net> > - * Benjamin Franzke <benjaminfran...@googlemail.com> > - */ > - > -#include <stdio.h> > -#include <string.h> > - > -#include <sys/types.h> > -#include <sys/stat.h> > -#include <unistd.h> > -#include <GL/gl.h> > -#include "glapi.h" > -#include "glxclient.h" > -#include "xf86dri.h" > -#include <dlfcn.h> > -#include <fcntl.h> > -#include <unistd.h> > -#include <sys/types.h> > -#include <sys/mman.h> > -#include <sys/time.h> > -#include "xf86drm.h" > -#include "dri_common.h" > -#include "dri3_priv.h" > - > -#define DRIVER_MAP_DRI3_ONLY > -#include "pci_ids/pci_id_driver_map.h" > - > -#include <libudev.h> > - > -static struct udev_device * > -dri3_udev_device_new_from_fd(struct udev *udev, int fd) > -{ > - struct udev_device *device; > - struct stat buf; > - > - if (fstat(fd, &buf) < 0) { > - ErrorMessageF("DRI3: failed to stat fd %d", fd); > - return NULL; > - } > - > - device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev); > - if (device == NULL) { > - ErrorMessageF("DRI3: could not create udev device for fd %d", fd); > - return NULL; > - } > - > - return device; > -} > - > -char * > -dri3_get_driver_for_fd(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 = dri3_udev_device_new_from_fd(udev, fd); > - if (device == NULL) > - return NULL; > - > - parent = udev_device_get_parent(device); > - if (parent == NULL) { > - ErrorMessageF("DRI3: 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) { > - ErrorMessageF("DRI3: 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); > - 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); > - goto out; > - } > - } > - > -out: > - udev_device_unref(device); > - udev_unref(udev); > - > - return driver; > -} > diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c > index 4aae182..801655d 100644 > --- a/src/glx/dri3_glx.c > +++ b/src/glx/dri3_glx.c > @@ -78,6 +78,7 @@ > #include "xf86drm.h" > #include "dri_common.h" > #include "dri3_priv.h" > +#include "loader.h" > > static const struct glx_context_vtable dri3_context_vtable; > > @@ -1597,7 +1598,7 @@ dri3_create_screen(int screen, struct glx_display * > priv) > } > deviceName = NULL;
Should we set a log function that uses ErrorMessageF? > - driverName = dri3_get_driver_for_fd(psc->fd); > + driverName = loader_get_driver_for_fd(psc->fd, 0); > if (!driverName) { > ErrorMessageF("No driver found\n"); > goto handle_error; > diff --git a/src/glx/dri3_priv.h b/src/glx/dri3_priv.h > index 3f289b9..6828493 100644 > --- a/src/glx/dri3_priv.h > +++ b/src/glx/dri3_priv.h > @@ -203,6 +203,3 @@ struct dri3_drawable { > xcb_gcontext_t gc; > xcb_special_event_t *special_event; > }; > - > -char * > -dri3_get_driver_for_fd(int fd); > -- > 1.8.5.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev