7bb2bb8223664bf4342a2a8b9f624c417dd7a276
[~tnikolova/compat/.git] / include / linux / compat-2.6.36.h
1 #ifndef LINUX_26_36_COMPAT_H
2 #define LINUX_26_36_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36))
7
8 #include <linux/usb.h>
9 #include <pcmcia/cistpl.h>
10 #include <pcmcia/ds.h>
11 #include <linux/pm_qos_params.h>
12 #include <linux/smp_lock.h>
13
14 #define kparam_block_sysfs_write(a)
15 #define kparam_unblock_sysfs_write(a)
16
17 struct va_format {
18         const char *fmt;
19         va_list *va;
20 };
21
22 #define device_rename(dev, new_name) device_rename(dev, (char *)new_name)
23
24 #ifdef CONFIG_COMPAT_USB_URB_THREAD_FIX
25 #define usb_scuttle_anchored_urbs(anchor)       compat_usb_scuttle_anchored_urbs(anchor)
26 #define usb_get_from_anchor(anchor)     compat_usb_get_from_anchor(anchor)
27 #define usb_unlink_anchored_urbs(anchor)        compat_usb_unlink_anchored_urbs(anchor)
28
29 extern void compat_usb_unlink_anchored_urbs(struct usb_anchor *anchor);
30 extern struct urb *compat_usb_get_from_anchor(struct usb_anchor *anchor);
31 extern void compat_usb_scuttle_anchored_urbs(struct usb_anchor *anchor);
32 #endif
33
34 /**
35  * pcmcia_read_config_byte() - read a byte from a card configuration register
36  *
37  * pcmcia_read_config_byte() reads a byte from a configuration register in
38  * attribute memory.
39  */
40 static inline int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val)
41 {
42         int ret;
43         conf_reg_t reg = { 0, CS_READ, where, 0 };
44         ret = pcmcia_access_configuration_register(p_dev, &reg);
45         *val = reg.Value;
46         return ret;
47 }
48
49 /**
50  * pcmcia_write_config_byte() - write a byte to a card configuration register
51  *
52  * pcmcia_write_config_byte() writes a byte to a configuration register in
53  * attribute memory.
54  */
55 static inline int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val)
56 {
57         conf_reg_t reg = { 0, CS_WRITE, where, val };
58         return pcmcia_access_configuration_register(p_dev, &reg);
59 }
60
61 struct pm_qos_request_list {
62         u32 qos;
63         void *request;
64 };
65
66 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
67
68 #define pm_qos_add_request(_req, _class, _value) do {                   \
69         (_req)->request = #_req;                                        \
70         (_req)->qos = _class;                                           \
71         pm_qos_add_requirement((_class), (_req)->request, (_value));    \
72     } while(0)
73
74 #define pm_qos_update_request(_req, _value)                             \
75         pm_qos_update_requirement((_req)->qos, (_req)->request, (_value))
76
77 #define pm_qos_remove_request(_req)                                     \
78         pm_qos_remove_requirement((_req)->qos, (_req)->request)
79
80 #else
81
82 #define pm_qos_add_request(_req, _class, _value) do {                   \
83         (_req)->request = pm_qos_add_request((_class), (_value));       \
84     } while (0)
85
86 #define pm_qos_update_request(_req, _value)                             \
87         pm_qos_update_request((_req)->request, (_value))
88
89 #define pm_qos_remove_request(_req)                                     \
90         pm_qos_remove_request((_req)->request)
91
92 #endif
93
94 /*
95  * Dummy printk for disabled debugging statements to use whilst maintaining
96  * gcc's format and side-effect checking.
97  */
98 static inline __attribute__ ((format (printf, 1, 2)))
99 int no_printk(const char *s, ...) { return 0; }
100
101 #ifndef alloc_workqueue
102 #define alloc_workqueue(name, flags, max_active) __create_workqueue(name, flags, max_active, 0)
103 #endif
104
105 #define EXTPROC 0200000
106 #define TIOCPKT_IOCTL           64
107
108 static inline void tty_lock(void) __acquires(kernel_lock)
109 {
110 #ifdef CONFIG_LOCK_KERNEL
111         /* kernel_locked is 1 for !CONFIG_LOCK_KERNEL */
112         WARN_ON(kernel_locked());
113 #endif
114         lock_kernel();
115 }
116 static inline void tty_unlock(void) __releases(kernel_lock)
117 {
118         unlock_kernel();
119 }
120 #define tty_locked()           (kernel_locked())
121
122 #define usleep_range(_min, _max)        msleep((_max) / 1000)
123
124 #define __rcu
125
126 static inline void pm_wakeup_event(struct device *dev, unsigned int msec) {}
127
128 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)) */
129
130 #endif /* LINUX_26_36_COMPAT_H */