7f06dfd6e27334e4eede5c981ae14c14ee6d7676
[compat-rdma/compat.git] / include / linux / compat-3.12.h
1 #ifndef LINUX_3_12_COMPAT_H
2 #define LINUX_3_12_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0))
7 #include <linux/pci.h>
8 #include <linux/pci_hotplug.h>
9
10 #ifndef PTR_ERR_OR_ZERO
11 #define PTR_ERR_OR_ZERO(p) PTR_RET(p)
12 #endif
13
14 #define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
15
16 #define file_inode LINUX_BACKPORT(file_inode)
17 static inline struct inode *file_inode(struct file *f)
18 {
19         return f->f_dentry->d_inode;
20 }
21
22 #ifndef HAVE_PCIE_LINK_WIDTH
23 /* These values come from the PCI Express Spec */
24 enum pcie_link_width {
25         PCIE_LNK_WIDTH_RESRV    = 0x00,
26         PCIE_LNK_X1             = 0x01,
27         PCIE_LNK_X2             = 0x02,
28         PCIE_LNK_X4             = 0x04,
29         PCIE_LNK_X8             = 0x08,
30         PCIE_LNK_X12            = 0x0C,
31         PCIE_LNK_X16            = 0x10,
32         PCIE_LNK_X32            = 0x20,
33         PCIE_LNK_WIDTH_UNKNOWN  = 0xFF,
34 };
35 #endif
36
37 extern const unsigned char pcie_link_speed[];
38
39 #define pcie_get_minimum_link LINUX_BACKPORT(pcie_get_minimum_link)
40 int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
41                 enum pcie_link_width *width);
42 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)) */
43 #endif /* LINUX_3_12_COMPAT_H */