aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfrank2015-05-19 10:31:05 -0500
committerAlex Deucher2015-05-26 11:34:38 -0500
commitfde4969176822fe54197b6baa78f8b0ef900baba (patch)
treeeb871767cb97b444fb88556913534dabac03d42e /xf86drm.h
parentbb0b97e673c89547f5a8ebe47c6e2268f8bfb85d (diff)
downloadexternal-libdrm-fde4969176822fe54197b6baa78f8b0ef900baba.tar.gz
external-libdrm-fde4969176822fe54197b6baa78f8b0ef900baba.tar.xz
external-libdrm-fde4969176822fe54197b6baa78f8b0ef900baba.zip
Add device enumeration interface (v4)
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 <frank.min@amd.com> Reviewed-by: Christian K├Ânig <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Diffstat (limited to 'xf86drm.h')
-rw-r--r--xf86drm.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/xf86drm.h b/xf86drm.h
index 40c55c92..2610934f 100644
--- a/xf86drm.h
+++ b/xf86drm.h
@@ -342,6 +342,24 @@ typedef struct _drmSetVersion {
342 int drm_dd_minor; 342 int drm_dd_minor;
343} drmSetVersion, *drmSetVersionPtr; 343} drmSetVersion, *drmSetVersionPtr;
344 344
345/**
346 * Structure to a general pci gpu device
347 *
348 * \sa drmGetDevices()
349 *
350*/
351typedef struct _drmPciDevice {
352 uint16_t domain;
353 uint8_t bus;
354 uint8_t dev;
355 uint8_t func;
356 uint16_t vendor_id;
357 uint16_t device_id;
358 uint16_t subvendor_id;
359 uint16_t subdevice_id;
360 uint8_t revision_id;
361} drmPciDevice, *drmPciDevicePtr;
362
345#define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock) 363#define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)
346 364
347#define DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */ 365#define DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */
@@ -552,6 +570,7 @@ do { register unsigned int __old __asm("o0"); \
552/* General user-level programmer's API: unprivileged */ 570/* General user-level programmer's API: unprivileged */
553extern int drmAvailable(void); 571extern int drmAvailable(void);
554extern int drmOpen(const char *name, const char *busid); 572extern int drmOpen(const char *name, const char *busid);
573extern int drmGetPciDevices(drmPciDevicePtr devSet, uint16_t vendorId);
555 574
556#define DRM_NODE_PRIMARY 0 575#define DRM_NODE_PRIMARY 0
557#define DRM_NODE_CONTROL 1 576#define DRM_NODE_CONTROL 1