From fde4969176822fe54197b6baa78f8b0ef900baba Mon Sep 17 00:00:00 2001 From: frank Date: Tue, 19 May 2015 23:31:05 +0800 Subject: Add device enumeration interface (v4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an interface for enumerating PCI devices on a system. v3: switch to udev/sysfs for the enumeration v4: fix warnings Signed-off-by: Frank Min Reviewed-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou --- xf86drm.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'xf86drm.h') diff --git a/xf86drm.h b/xf86drm.h index 40c55c92e..2610934fe 100644 --- a/xf86drm.h +++ b/xf86drm.h @@ -342,6 +342,24 @@ typedef struct _drmSetVersion { int drm_dd_minor; } drmSetVersion, *drmSetVersionPtr; +/** + * Structure to a general pci gpu device + * + * \sa drmGetDevices() + * +*/ +typedef struct _drmPciDevice { + 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; +} drmPciDevice, *drmPciDevicePtr; + #define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock) #define DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */ @@ -552,6 +570,7 @@ do { register unsigned int __old __asm("o0"); \ /* General user-level programmer's API: unprivileged */ extern int drmAvailable(void); extern int drmOpen(const char *name, const char *busid); +extern int drmGetPciDevices(drmPciDevicePtr devSet, uint16_t vendorId); #define DRM_NODE_PRIMARY 0 #define DRM_NODE_CONTROL 1 -- cgit v1.2.3