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(&current->sigmask_lock);
66     	flush_signals(current);
67     	spin_unlock(&current->sigmask_lock);
68     }
69      
70     /* 010 */
71     extern inline void md_init_signals (void)
72     {
73             current->exit_signal = SIGCHLD;
74             siginitsetinv(&current->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