File: /usr/include/linux/raid/md_compatible.h
1
2 /*
3 md.h : Multiple Devices driver compatibility layer for Linux 2.0/2.2
4 Copyright (C) 1998 Ingo Molnar
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 You should have received a copy of the GNU General Public License
12 (for example /usr/src/linux/COPYING); if not, write to the Free
13 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
14 */
15
16 #include <linux/version.h>
17
18 #ifndef _MD_COMPATIBLE_H
19 #define _MD_COMPATIBLE_H
20
21 /** 2.3/2.4 stuff: **/
22
23 #include <linux/reboot.h>
24 #include <linux/vmalloc.h>
25 #include <linux/blkpg.h>
26
27 /* 000 */
28 #define md__get_free_pages(x,y) __get_free_pages(x,y)
29
30 #ifdef __i386__
31 /* 001 */
32 extern __inline__ int md_cpu_has_mmx(void)
33 {
34 return test_bit(X86_FEATURE_MMX, &boot_cpu_data.x86_capability);
35 }
36 #endif
37
38 /* 002 */
39 #define md_clear_page(page) clear_page(page)
40
41 /* 003 */
42 #define MD_EXPORT_SYMBOL(x) EXPORT_SYMBOL(x)
43
44 /* 004 */
45 #define md_copy_to_user(x,y,z) copy_to_user(x,y,z)
46
47 /* 005 */
48 #define md_copy_from_user(x,y,z) copy_from_user(x,y,z)
49
50 /* 006 */
51 #define md_put_user put_user
52
53 /* 007 */
54 extern inline int md_capable_admin(void)
55 {
56 return capable(CAP_SYS_ADMIN);
57 }
58
59 /* 008 */
60 #define MD_FILE_TO_INODE(file) ((file)->f_dentry->d_inode)
61
62 /* 009 */
63 extern inline void md_flush_signals (void)
64 {
65 spin_lock(¤t->sigmask_lock);
66 flush_signals(current);
67 spin_unlock(¤t->sigmask_lock);
68 }
69
70 /* 010 */
71 extern inline void md_init_signals (void)
72 {
73 current->exit_signal = SIGCHLD;
74 siginitsetinv(¤t->blocked, sigmask(SIGKILL));
75 }
76
77 /* 011 */
78 #define md_signal_pending signal_pending
79
80 /* 012 - md_set_global_readahead - nowhere used */
81
82 /* 013 */
83 #define md_mdelay(x) mdelay(x)
84
85 /* 014 */
86 #define MD_SYS_DOWN SYS_DOWN
87 #define MD_SYS_HALT SYS_HALT
88 #define MD_SYS_POWER_OFF SYS_POWER_OFF
89
90 /* 015 */
91 #define md_register_reboot_notifier register_reboot_notifier
92
93 /* 016 */
94 #define md_test_and_set_bit test_and_set_bit
95
96 /* 017 */
97 #define md_test_and_clear_bit test_and_clear_bit
98
99 /* 018 */
100 #define md_atomic_read atomic_read
101 #define md_atomic_set atomic_set
102
103 /* 019 */
104 #define md_lock_kernel lock_kernel
105 #define md_unlock_kernel unlock_kernel
106
107 /* 020 */
108
109 #include <linux/init.h>
110
111 #define md__init __init
112 #define md__initdata __initdata
113 #define md__initfunc(__arginit) __initfunc(__arginit)
114
115 /* 021 */
116
117
118 /* 022 */
119
120 #define md_list_head list_head
121 #define MD_LIST_HEAD(name) LIST_HEAD(name)
122 #define MD_INIT_LIST_HEAD(ptr) INIT_LIST_HEAD(ptr)
123 #define md_list_add list_add
124 #define md_list_del list_del
125 #define md_list_empty list_empty
126
127 #define md_list_entry(ptr, type, member) list_entry(ptr, type, member)
128
129 /* 023 */
130
131 #define md_schedule_timeout schedule_timeout
132
133 /* 024 */
134 #define md_need_resched(tsk) ((tsk)->need_resched)
135
136 /* 025 */
137 #define md_spinlock_t spinlock_t
138 #define MD_SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED
139
140 #define md_spin_lock spin_lock
141 #define md_spin_unlock spin_unlock
142 #define md_spin_lock_irq spin_lock_irq
143 #define md_spin_unlock_irq spin_unlock_irq
144 #define md_spin_unlock_irqrestore spin_unlock_irqrestore
145 #define md_spin_lock_irqsave spin_lock_irqsave
146
147 /* 026 */
148 typedef wait_queue_head_t md_wait_queue_head_t;
149 #define MD_DECLARE_WAITQUEUE(w,t) DECLARE_WAITQUEUE((w),(t))
150 #define MD_DECLARE_WAIT_QUEUE_HEAD(x) DECLARE_WAIT_QUEUE_HEAD(x)
151 #define md_init_waitqueue_head init_waitqueue_head
152
153 /* END */
154
155 #endif
156
157