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