aboutsummaryrefslogtreecommitdiff
path: root/linux-headers/include/linux/pci.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@eecs.berkeley.edu>2014-09-11 13:37:51 -0700
committerAndrew Waterman <waterman@eecs.berkeley.edu>2014-09-11 13:37:51 -0700
commit82b6ccde8f4e3d48d1c358275271e49881e56cf7 (patch)
treec5dbfa5dec2c28185f77e98124f483f79a9e6734 /linux-headers/include/linux/pci.h
parent7ce82261f5b2ca8ba4835b0a73124ca25fbdd2db (diff)
downloadriscv-gnu-toolchain-82b6ccde8f4e3d48d1c358275271e49881e56cf7.zip
riscv-gnu-toolchain-82b6ccde8f4e3d48d1c358275271e49881e56cf7.tar.gz
riscv-gnu-toolchain-82b6ccde8f4e3d48d1c358275271e49881e56cf7.tar.bz2
glibc: initial port of glibc 2.20
Diffstat (limited to 'linux-headers/include/linux/pci.h')
-rw-r--r--linux-headers/include/linux/pci.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/linux-headers/include/linux/pci.h b/linux-headers/include/linux/pci.h
new file mode 100644
index 0000000..a5bb5c7
--- /dev/null
+++ b/linux-headers/include/linux/pci.h
@@ -0,0 +1,41 @@
+/*
+ * pci.h
+ *
+ * PCI defines and function prototypes
+ * Copyright 1994, Drew Eckhardt
+ * Copyright 1997--1999 Martin Mares <mj@ucw.cz>
+ *
+ * For more information, please consult the following manuals (look at
+ * http://www.pcisig.com/ for how to get them):
+ *
+ * PCI BIOS Specification
+ * PCI Local Bus Specification
+ * PCI to PCI Bridge Specification
+ * PCI System Design Guide
+ */
+
+#ifndef LINUX_PCI_H
+#define LINUX_PCI_H
+
+#include <linux/pci_regs.h> /* The pci register defines */
+
+/*
+ * The PCI interface treats multi-function devices as independent
+ * devices. The slot/function address of each device is encoded
+ * in a single byte as follows:
+ *
+ * 7:3 = slot
+ * 2:0 = function
+ */
+#define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07))
+#define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f)
+#define PCI_FUNC(devfn) ((devfn) & 0x07)
+
+/* Ioctls for /proc/bus/pci/X/Y nodes. */
+#define PCIIOC_BASE ('P' << 24 | 'C' << 16 | 'I' << 8)
+#define PCIIOC_CONTROLLER (PCIIOC_BASE | 0x00) /* Get controller for PCI device. */
+#define PCIIOC_MMAP_IS_IO (PCIIOC_BASE | 0x01) /* Set mmap state to I/O space. */
+#define PCIIOC_MMAP_IS_MEM (PCIIOC_BASE | 0x02) /* Set mmap state to MEM space. */
+#define PCIIOC_WRITE_COMBINE (PCIIOC_BASE | 0x03) /* Enable/disable write-combining. */
+
+#endif /* LINUX_PCI_H */