#include <linux/config.h>
#endif
#include <linux/module.h>
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/proc_fs.h>
#endif
#define cfs_unregister_sysctl_table(t) unregister_sysctl_table(t)
+#define DECLARE_PROC_HANDLER(name) \
+static int \
+LL_PROC_PROTO(name) \
+{ \
+ DECLARE_LL_PROC_PPOS_DECL; \
+ \
+ return proc_call_handler(table->data, write, \
+ ppos, buffer, lenp, \
+ __##name); \
+}
+
/*
* Symbol register
*/
retval == 0; condition met; we're good.
retval > 0; timed out.
*/
-#define cfs_waitq_wait_event_timeout(wq, condition, timeout) \
-({ \
- int __ret = 0; \
+#define cfs_waitq_wait_event_timeout(wq, condition, timeout, ret) \
+do { \
+ ret = 0; \
if (!(condition)) \
- __wait_event_timeout(wq, condition, timeout, __ret); \
- __ret; \
-})
+ __wait_event_timeout(wq, condition, timeout, ret); \
+} while (0)
#else
-#define cfs_waitq_wait_event_timeout wait_event_timeout
+#define cfs_waitq_wait_event_timeout(wq, condition, timeout, ret) \
+ ret = wait_event_timeout(wq, condition, timeout)
#endif
#ifndef wait_event_interruptible_timeout /* Only for RHEL3 2.4.21 kernel */
retval < 0; interrupted by signal.
retval > 0; timed out.
*/
-#define cfs_waitq_wait_event_interruptible_timeout(wq, condition, timeout) \
-({ \
- int __ret = 0; \
+#define cfs_waitq_wait_event_interruptible_timeout(wq, condition, timeout, ret)\
+do { \
+ ret = 0; \
if (!(condition)) \
__wait_event_interruptible_timeout(wq, condition, \
- timeout, __ret); \
- __ret; \
-})
+ timeout, ret); \
+} while (0)
#else
-#define cfs_waitq_wait_event_interruptible_timeout wait_event_interruptible_timeout
+#define cfs_waitq_wait_event_interruptible_timeout(wq, c, timeout, ret) \
+ ret = wait_event_interruptible_timeout(wq, c, timeout)
#endif
#endif