XenevaOS
Loading...
Searching...
No Matches
pci.h
Go to the documentation of this file.
1#ifndef __LINUX_DEVICE_ID_PCI_H__
2#define __LINUX_DEVICE_ID_PCI_H__
3
4/*
5 * DCL <linux/device-id/pci.h> -- where mainline 7.2 keeps PCI_ANY_ID and the
6 * id_table entry. It used to live in <linux/mod_devicetable.h>; 7.2 split it
7 * out and <linux/pci.h> includes this path, so a ported driver's include
8 * chain (pci.h supplies everything; bochs.c names no id header itself) lands
9 * where upstream's does.
10 *
11 * One delta: upstream typedefs kernel_ulong_t here, under __KERNEL__. DCL's
12 * <linux/kernel.h> already owns that typedef (kernel.h:75), so this header
13 * includes kernel.h and rides on it -- repeating the typedef would be a
14 * redefinition warning on every include.
15 *
16 * The struct is upstream's field-for-field except the trailing
17 * `override_only`: it exists for vfio's driver_override matching, which this
18 * tree has no code or configuration for. Like the device_driver members that
19 * stayed padding, it is left out until something reads it; a static
20 * initializer that ignores a member and one that zeroes it produce the same
21 * bytes.
22 */
23
24#include <linux/kernel.h> /* kernel_ulong_t, __u32 */
25
26#define PCI_ANY_ID (~0)
27
29 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID */
30 __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
31 __u32 class, class_mask; /* (class,subclass,prog-if) triplet */
32 kernel_ulong_t driver_data; /* Data private to the driver */
33};
34
35#endif /* __LINUX_DEVICE_ID_PCI_H__ */
uint32_t __u32
Definition drm.h:42
unsigned long kernel_ulong_t
Definition kernel.h:75
Definition pci.h:28
kernel_ulong_t driver_data
Definition pci.h:32
__u32 vendor
Definition pci.h:29
__u32 class_mask
Definition pci.h:31
__u32 device
Definition pci.h:29
__u32 subdevice
Definition pci.h:30
__u32 subvendor
Definition pci.h:30