FreeBSD/Linux Kernel Cross Reference
sys/pci/pci_ioctl.h
1 #ifndef _PCI_IOCTL_H
2 #define _PCI_IOCTL_H 1
3
4 #include <sys/ioccom.h>
5
6 struct pcisel {
7 u_char pc_bus; /* bus number */
8 u_char pc_dev; /* device on this bus */
9 u_char pc_func; /* function on this device */
10 };
11
12 struct pci_conf {
13 struct pcisel pc_sel; /* bus+slot+function */
14 u_char pc_hdr; /* PCI header type */
15 pcidi_t pc_devid; /* device ID */
16 pcidi_t pc_subid; /* subvendor ID */
17 u_int32_t pc_class; /* device class */
18 struct pci_device *pc_dvp; /* device driver pointer or NULL */
19 struct pcicb *pc_cb; /* pointer to bus parameters */
20 };
21
22 struct pci_conf_io {
23 size_t pci_len; /* length of buffer */
24 struct pci_conf *pci_buf; /* buffer */
25 };
26
27 struct pci_io {
28 struct pcisel pi_sel; /* device to operate on */
29 int pi_reg; /* configuration register to examine */
30 int pi_width; /* width (in bytes) of read or write */
31 u_int32_t pi_data; /* data to write or result of read */
32 };
33
34
35 #define PCIOCGETCONF _IOWR('p', 1, struct pci_conf_io)
36 #define PCIOCREAD _IOWR('p', 2, struct pci_io)
37 #define PCIOCWRITE _IOWR('p', 3, struct pci_io)
38 #define PCIOCATTACHED _IOWR('p', 4, struct pci_io)
39
40 #endif /* _PCI_IOCTL_H */
Cache object: b503b93a6b54f70103f8818b44b3024f
|