On Tue, Nov 29, 2016 at 07:55:13PM +0000, Emil Velikov wrote: > On 26 November 2016 at 00:40, Jonathan Gray <jsg@xxxxxxxxx> wrote: > > Implement drmParsePciDeviceInfo for OpenBSD by using the new > > DRM_IOCTL_GET_PCIINFO ioctl. > > > > Signed-off-by: Jonathan Gray <jsg@xxxxxxxxx> > > --- > > xf86drm.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 51 insertions(+) > > > > diff --git a/xf86drm.c b/xf86drm.c > > index b355c83..581527b 100644 > > --- a/xf86drm.c > > +++ b/xf86drm.c > > @@ -102,6 +102,26 @@ > > #define DRM_MAJOR 226 /* Linux */ > > #endif > > > > +#ifdef __OpenBSD__ > > + > > +#define X_PRIVSEP > > + > > +struct drm_pciinfo { > > + uint16_t domain; > > + uint8_t bus; > > + uint8_t dev; > > + uint8_t func; > > + uint16_t vendor_id; > > + uint16_t device_id; > > + uint16_t subvendor_id; > > + uint16_t subdevice_id; > > + uint8_t revision_id; > > +}; > > + > > +#define DRM_IOCTL_GET_PCIINFO DRM_IOR(0x15, struct drm_pciinfo) > > + > > +#endif > > + > > #define DRM_MSG_VERBOSITY 3 > > > > #define memclear(s) memset(&s, 0, sizeof(s)) > > @@ -2991,6 +3011,37 @@ static int drmParsePciDeviceInfo(const char *d_name, > > device->subdevice_id = config[46] | (config[47] << 8); > > > > return 0; > > +#elif defined(__OpenBSD__) > > + struct drm_pciinfo pinfo; > > + char buf[PATH_MAX + 1]; > > + int fd, n; > > + > > + n = snprintf(buf, sizeof(buf), "%s/%s", DRM_DIR_NAME, d_name); > > + if (n == -1 || n >= sizeof(buf)) > > + return -errno; > > + > > +#ifndef X_PRIVSEP > > + fd = open(buf, O_RDWR, 0); > > +#else > > + fd = priv_open_device(buf); > > +#endif > > + > Since X_PRIVSEP is always set one can drop the ifndef case alongside > the define X_PRIVSEP all together. At the same time, priv_open_device > isn't defined thus one might well use drmOpenMinor() like in 4/5 ? Then we'd have to find a minor number and type based on the d_name string argument to drmParsePciDeviceInfo. The priv_open_device part is really a different patch. > > Sidenote: In the future we might fold drmParsePciBusInfo and > drmParsePciDeviceInfo, but for the moment we have to keep them > separate :-( Annoying that one takes a minor and one takes a string... _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel