blob: 88626e626886e60a51a23834721a31617f060d68 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <linux/config.h>
2#include <linux/module.h>
3#include <linux/smp.h>
4#include <linux/user.h>
5#include <linux/sched.h>
6#include <linux/in6.h>
7#include <linux/interrupt.h>
8#include <linux/smp_lock.h>
9#include <linux/pm.h>
10#include <linux/pci.h>
11#include <linux/apm_bios.h>
12#include <linux/kernel.h>
13#include <linux/string.h>
14#include <linux/syscalls.h>
15#include <linux/tty.h>
16#include <linux/ioctl32.h>
17
18#include <asm/semaphore.h>
19#include <asm/processor.h>
20#include <asm/i387.h>
21#include <asm/uaccess.h>
22#include <asm/checksum.h>
23#include <asm/io.h>
24#include <asm/delay.h>
25#include <asm/irq.h>
26#include <asm/mmx.h>
27#include <asm/desc.h>
28#include <asm/pgtable.h>
29#include <asm/pgalloc.h>
30#include <asm/nmi.h>
31#include <asm/kdebug.h>
32#include <asm/unistd.h>
33#include <asm/tlbflush.h>
34#include <asm/kdebug.h>
35
36extern spinlock_t rtc_lock;
37
38#ifdef CONFIG_SMP
39extern void __write_lock_failed(rwlock_t *rw);
40extern void __read_lock_failed(rwlock_t *rw);
41#endif
42
43#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_HD) || defined(CONFIG_BLK_DEV_IDE_MODULE) || defined(CONFIG_BLK_DEV_HD_MODULE)
44extern struct drive_info_struct drive_info;
45EXPORT_SYMBOL(drive_info);
46#endif
47
48extern unsigned long get_cmos_time(void);
49
50/* platform dependent support */
51EXPORT_SYMBOL(boot_cpu_data);
52//EXPORT_SYMBOL(dump_fpu);
53EXPORT_SYMBOL(__ioremap);
54EXPORT_SYMBOL(ioremap_nocache);
55EXPORT_SYMBOL(iounmap);
56EXPORT_SYMBOL(enable_irq);
57EXPORT_SYMBOL(disable_irq);
58EXPORT_SYMBOL(disable_irq_nosync);
59EXPORT_SYMBOL(probe_irq_mask);
60EXPORT_SYMBOL(kernel_thread);
61EXPORT_SYMBOL(pm_idle);
62EXPORT_SYMBOL(pm_power_off);
63EXPORT_SYMBOL(get_cmos_time);
64
65EXPORT_SYMBOL(__down_failed);
66EXPORT_SYMBOL(__down_failed_interruptible);
67EXPORT_SYMBOL(__down_failed_trylock);
68EXPORT_SYMBOL(__up_wakeup);
69/* Networking helper routines. */
70EXPORT_SYMBOL(csum_partial_copy_nocheck);
71EXPORT_SYMBOL(ip_compute_csum);
72/* Delay loops */
73EXPORT_SYMBOL(__udelay);
74EXPORT_SYMBOL(__ndelay);
75EXPORT_SYMBOL(__delay);
76EXPORT_SYMBOL(__const_udelay);
77
78EXPORT_SYMBOL(__get_user_1);
79EXPORT_SYMBOL(__get_user_2);
80EXPORT_SYMBOL(__get_user_4);
81EXPORT_SYMBOL(__get_user_8);
82EXPORT_SYMBOL(__put_user_1);
83EXPORT_SYMBOL(__put_user_2);
84EXPORT_SYMBOL(__put_user_4);
85EXPORT_SYMBOL(__put_user_8);
86
87EXPORT_SYMBOL(strpbrk);
88EXPORT_SYMBOL(strstr);
89
90EXPORT_SYMBOL(strncpy_from_user);
91EXPORT_SYMBOL(__strncpy_from_user);
92EXPORT_SYMBOL(clear_user);
93EXPORT_SYMBOL(__clear_user);
94EXPORT_SYMBOL(copy_user_generic);
95EXPORT_SYMBOL(copy_from_user);
96EXPORT_SYMBOL(copy_to_user);
97EXPORT_SYMBOL(copy_in_user);
98EXPORT_SYMBOL(strnlen_user);
99
100#ifdef CONFIG_PCI
101EXPORT_SYMBOL(pci_alloc_consistent);
102EXPORT_SYMBOL(pci_free_consistent);
103#endif
104
105#ifdef CONFIG_PCI
106EXPORT_SYMBOL(pci_mem_start);
107#endif
108
109EXPORT_SYMBOL(copy_page);
110EXPORT_SYMBOL(clear_page);
111
112EXPORT_SYMBOL(cpu_pda);
113#ifdef CONFIG_SMP
114EXPORT_SYMBOL(cpu_data);
115EXPORT_SYMBOL(cpu_online_map);
116EXPORT_SYMBOL(__write_lock_failed);
117EXPORT_SYMBOL(__read_lock_failed);
118
119EXPORT_SYMBOL(synchronize_irq);
120EXPORT_SYMBOL(smp_call_function);
121EXPORT_SYMBOL(cpu_callout_map);
122#endif
123
124#ifdef CONFIG_VT
125EXPORT_SYMBOL(screen_info);
126#endif
127
128EXPORT_SYMBOL(get_wchan);
129
130EXPORT_SYMBOL(rtc_lock);
131
132EXPORT_SYMBOL_GPL(set_nmi_callback);
133EXPORT_SYMBOL_GPL(unset_nmi_callback);
134
135/* Export string functions. We normally rely on gcc builtin for most of these,
136 but gcc sometimes decides not to inline them. */
137#undef memcpy
138#undef memset
139#undef memmove
140#undef memchr
141#undef strlen
142#undef strcpy
143#undef strncmp
144#undef strncpy
145#undef strchr
146#undef strcmp
147#undef strcpy
148#undef strcat
149#undef memcmp
150
151extern void * memset(void *,int,__kernel_size_t);
152extern size_t strlen(const char *);
153extern void * memmove(void * dest,const void *src,size_t count);
154extern char * strcpy(char * dest,const char *src);
155extern int strcmp(const char * cs,const char * ct);
156extern void *memchr(const void *s, int c, size_t n);
157extern void * memcpy(void *,const void *,__kernel_size_t);
158extern void * __memcpy(void *,const void *,__kernel_size_t);
159extern char * strcat(char *, const char *);
160extern int memcmp(const void * cs,const void * ct,size_t count);
161
162EXPORT_SYMBOL(memset);
163EXPORT_SYMBOL(strlen);
164EXPORT_SYMBOL(memmove);
165EXPORT_SYMBOL(strcpy);
166EXPORT_SYMBOL(strncmp);
167EXPORT_SYMBOL(strncpy);
168EXPORT_SYMBOL(strchr);
169EXPORT_SYMBOL(strcmp);
170EXPORT_SYMBOL(strcat);
171EXPORT_SYMBOL(strncat);
172EXPORT_SYMBOL(memchr);
173EXPORT_SYMBOL(strrchr);
174EXPORT_SYMBOL(strnlen);
175EXPORT_SYMBOL(memscan);
176EXPORT_SYMBOL(memcpy);
177EXPORT_SYMBOL(__memcpy);
178EXPORT_SYMBOL(memcmp);
179
180#ifdef CONFIG_RWSEM_XCHGADD_ALGORITHM
181/* prototypes are wrong, these are assembly with custom calling functions */
182extern void rwsem_down_read_failed_thunk(void);
183extern void rwsem_wake_thunk(void);
184extern void rwsem_downgrade_thunk(void);
185extern void rwsem_down_write_failed_thunk(void);
186EXPORT_SYMBOL(rwsem_down_read_failed_thunk);
187EXPORT_SYMBOL(rwsem_wake_thunk);
188EXPORT_SYMBOL(rwsem_downgrade_thunk);
189EXPORT_SYMBOL(rwsem_down_write_failed_thunk);
190#endif
191
192EXPORT_SYMBOL(empty_zero_page);
193
194#ifdef CONFIG_HAVE_DEC_LOCK
195EXPORT_SYMBOL(_atomic_dec_and_lock);
196#endif
197
198EXPORT_SYMBOL(die_chain);
199EXPORT_SYMBOL(register_die_notifier);
200
201#ifdef CONFIG_SMP
202EXPORT_SYMBOL(cpu_sibling_map);
203EXPORT_SYMBOL(smp_num_siblings);
204#endif
205
206extern void do_softirq_thunk(void);
207EXPORT_SYMBOL(do_softirq_thunk);
208
209void out_of_line_bug(void);
210EXPORT_SYMBOL(out_of_line_bug);
211
212EXPORT_SYMBOL(init_level4_pgt);
213
214extern unsigned long __supported_pte_mask;
215EXPORT_SYMBOL(__supported_pte_mask);
216
217#ifdef CONFIG_SMP
218EXPORT_SYMBOL(flush_tlb_page);
219#endif
220
221EXPORT_SYMBOL(cpu_khz);