Import 2.3.99pre2-1
[davej-history.git] / kernel / ksyms.c
blob760d2e4683fb45f3e6aa38029f012f4edac7f544
1 /*
2 * Herein lies all the functions/variables that are "exported" for linkage
3 * with dynamically loaded kernel modules.
4 * Jon.
6 * - Stacked module support and unified symbol table added (June 1994)
7 * - External symbol table support added (December 1994)
8 * - Versions on symbols added (December 1994)
9 * by Bjorn Ekwall <bj0rn@blox.se>
12 #include <linux/config.h>
13 #include <linux/malloc.h>
14 #include <linux/module.h>
15 #include <linux/blkdev.h>
16 #include <linux/cdrom.h>
17 #include <linux/kernel_stat.h>
18 #include <linux/vmalloc.h>
19 #include <linux/sys.h>
20 #include <linux/utsname.h>
21 #include <linux/interrupt.h>
22 #include <linux/ioport.h>
23 #include <linux/serial.h>
24 #include <linux/locks.h>
25 #include <linux/delay.h>
26 #include <linux/minix_fs.h>
27 #include <linux/ext2_fs.h>
28 #include <linux/random.h>
29 #include <linux/reboot.h>
30 #include <linux/pagemap.h>
31 #include <linux/sysctl.h>
32 #include <linux/hdreg.h>
33 #include <linux/skbuff.h>
34 #include <linux/genhd.h>
35 #include <linux/blkpg.h>
36 #include <linux/swap.h>
37 #include <linux/ctype.h>
38 #include <linux/file.h>
39 #include <linux/iobuf.h>
40 #include <linux/console.h>
41 #include <linux/poll.h>
42 #include <linux/mmzone.h>
43 #include <linux/mm.h>
44 #include <linux/capability.h>
45 #include <linux/highuid.h>
46 #include <linux/brlock.h>
48 #if defined(CONFIG_PROC_FS)
49 #include <linux/proc_fs.h>
50 #endif
51 #ifdef CONFIG_KMOD
52 #include <linux/kmod.h>
53 #endif
55 extern int console_loglevel;
56 extern void set_device_ro(kdev_t dev,int flag);
57 #if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE)
58 extern int (*do_nfsservctl)(int, void *, void *);
59 #endif
61 extern void *sys_call_table;
63 extern int sys_tz;
64 extern int request_dma(unsigned int dmanr, char * deviceID);
65 extern void free_dma(unsigned int dmanr);
66 extern spinlock_t dma_spin_lock;
68 #ifdef CONFIG_MODVERSIONS
69 const struct module_symbol __export_Using_Versions
70 __attribute__((section("__ksymtab"))) = {
71 1 /* Version version */, "Using_Versions"
73 #endif
76 #ifdef CONFIG_KMOD
77 EXPORT_SYMBOL(request_module);
78 EXPORT_SYMBOL(exec_usermodehelper);
79 #endif
81 #ifdef CONFIG_MODULES
82 EXPORT_SYMBOL(get_module_symbol);
83 #endif
84 EXPORT_SYMBOL(get_option);
85 EXPORT_SYMBOL(get_options);
87 /* process memory management */
88 EXPORT_SYMBOL(do_mmap_pgoff);
89 EXPORT_SYMBOL(do_munmap);
90 EXPORT_SYMBOL(do_brk);
91 EXPORT_SYMBOL(exit_mm);
92 EXPORT_SYMBOL(exit_files);
93 EXPORT_SYMBOL(exit_fs);
94 EXPORT_SYMBOL(exit_sighand);
96 /* internal kernel memory management */
97 EXPORT_SYMBOL(__alloc_pages);
98 EXPORT_SYMBOL(alloc_pages_node);
99 EXPORT_SYMBOL(__free_pages_ok);
100 #ifndef CONFIG_DISCONTIGMEM
101 EXPORT_SYMBOL(contig_page_data);
102 #endif
103 EXPORT_SYMBOL(num_physpages);
104 EXPORT_SYMBOL(kmem_find_general_cachep);
105 EXPORT_SYMBOL(kmem_cache_create);
106 EXPORT_SYMBOL(kmem_cache_destroy);
107 EXPORT_SYMBOL(kmem_cache_shrink);
108 EXPORT_SYMBOL(kmem_cache_alloc);
109 EXPORT_SYMBOL(kmem_cache_free);
110 EXPORT_SYMBOL(kmalloc);
111 EXPORT_SYMBOL(kfree);
112 EXPORT_SYMBOL(kfree_s);
113 EXPORT_SYMBOL(vmalloc);
114 EXPORT_SYMBOL(vfree);
115 EXPORT_SYMBOL(mem_map);
116 EXPORT_SYMBOL(remap_page_range);
117 EXPORT_SYMBOL(max_mapnr);
118 EXPORT_SYMBOL(high_memory);
119 EXPORT_SYMBOL(vmtruncate);
120 EXPORT_SYMBOL(find_vma);
121 EXPORT_SYMBOL(get_unmapped_area);
122 EXPORT_SYMBOL(init_mm);
123 #ifdef CONFIG_HIGHMEM
124 EXPORT_SYMBOL(kmap_high);
125 EXPORT_SYMBOL(kunmap_high);
126 EXPORT_SYMBOL(highmem_start_page);
127 #endif
129 /* filesystem internal functions */
130 EXPORT_SYMBOL(def_blk_fops);
131 EXPORT_SYMBOL(in_group_p);
132 EXPORT_SYMBOL(update_atime);
133 EXPORT_SYMBOL(get_super);
134 EXPORT_SYMBOL(get_empty_super);
135 EXPORT_SYMBOL(remove_vfsmnt);
136 EXPORT_SYMBOL(getname);
137 EXPORT_SYMBOL(_fput);
138 EXPORT_SYMBOL(igrab);
139 EXPORT_SYMBOL(iunique);
140 EXPORT_SYMBOL(iget4);
141 EXPORT_SYMBOL(iput);
142 EXPORT_SYMBOL(__namei);
143 EXPORT_SYMBOL(lookup_dentry);
144 EXPORT_SYMBOL(open_namei);
145 EXPORT_SYMBOL(sys_close);
146 EXPORT_SYMBOL(d_alloc_root);
147 EXPORT_SYMBOL(d_delete);
148 EXPORT_SYMBOL(d_validate);
149 EXPORT_SYMBOL(d_rehash);
150 EXPORT_SYMBOL(d_invalidate); /* May be it will be better in dcache.h? */
151 EXPORT_SYMBOL(d_move);
152 EXPORT_SYMBOL(d_instantiate);
153 EXPORT_SYMBOL(d_alloc);
154 EXPORT_SYMBOL(d_lookup);
155 EXPORT_SYMBOL(d_path);
156 EXPORT_SYMBOL(mark_buffer_dirty);
157 EXPORT_SYMBOL(__mark_buffer_dirty);
158 EXPORT_SYMBOL(__mark_inode_dirty);
159 EXPORT_SYMBOL(get_empty_filp);
160 EXPORT_SYMBOL(init_private_file);
161 EXPORT_SYMBOL(filp_open);
162 EXPORT_SYMBOL(filp_close);
163 EXPORT_SYMBOL(put_filp);
164 EXPORT_SYMBOL(files_lock);
165 EXPORT_SYMBOL(check_disk_change);
166 EXPORT_SYMBOL(__invalidate_buffers);
167 EXPORT_SYMBOL(invalidate_inodes);
168 EXPORT_SYMBOL(invalidate_inode_pages);
169 EXPORT_SYMBOL(truncate_inode_pages);
170 EXPORT_SYMBOL(fsync_dev);
171 EXPORT_SYMBOL(permission);
172 EXPORT_SYMBOL(inode_setattr);
173 EXPORT_SYMBOL(inode_change_ok);
174 EXPORT_SYMBOL(write_inode_now);
175 EXPORT_SYMBOL(notify_change);
176 EXPORT_SYMBOL(get_hardblocksize);
177 EXPORT_SYMBOL(set_blocksize);
178 EXPORT_SYMBOL(getblk);
179 EXPORT_SYMBOL(bdget);
180 EXPORT_SYMBOL(bread);
181 EXPORT_SYMBOL(breada);
182 EXPORT_SYMBOL(__brelse);
183 EXPORT_SYMBOL(__bforget);
184 EXPORT_SYMBOL(ll_rw_block);
185 EXPORT_SYMBOL(__wait_on_buffer);
186 EXPORT_SYMBOL(___wait_on_page);
187 EXPORT_SYMBOL(block_write_full_page);
188 EXPORT_SYMBOL(block_read_full_page);
189 EXPORT_SYMBOL(block_prepare_write);
190 EXPORT_SYMBOL(cont_prepare_write);
191 EXPORT_SYMBOL(generic_commit_write);
192 EXPORT_SYMBOL(generic_block_bmap);
193 EXPORT_SYMBOL(generic_file_read);
194 EXPORT_SYMBOL(do_generic_file_read);
195 EXPORT_SYMBOL(generic_file_write);
196 EXPORT_SYMBOL(generic_file_mmap);
197 EXPORT_SYMBOL(generic_ro_fops);
198 EXPORT_SYMBOL(generic_buffer_fdatasync);
199 EXPORT_SYMBOL(page_hash_bits);
200 EXPORT_SYMBOL(page_hash_table);
201 EXPORT_SYMBOL(file_lock_table);
202 EXPORT_SYMBOL(posix_lock_file);
203 EXPORT_SYMBOL(posix_test_lock);
204 EXPORT_SYMBOL(posix_block_lock);
205 EXPORT_SYMBOL(posix_unblock_lock);
206 EXPORT_SYMBOL(locks_mandatory_area);
207 EXPORT_SYMBOL(dput);
208 EXPORT_SYMBOL(is_root_busy);
209 EXPORT_SYMBOL(prune_dcache);
210 EXPORT_SYMBOL(shrink_dcache_sb);
211 EXPORT_SYMBOL(shrink_dcache_parent);
212 EXPORT_SYMBOL(find_inode_number);
213 EXPORT_SYMBOL(is_subdir);
214 EXPORT_SYMBOL(get_unused_fd);
215 EXPORT_SYMBOL(vfs_create);
216 EXPORT_SYMBOL(vfs_mkdir);
217 EXPORT_SYMBOL(vfs_mknod);
218 EXPORT_SYMBOL(vfs_symlink);
219 EXPORT_SYMBOL(vfs_link);
220 EXPORT_SYMBOL(vfs_rmdir);
221 EXPORT_SYMBOL(vfs_unlink);
222 EXPORT_SYMBOL(vfs_rename);
223 EXPORT_SYMBOL(generic_read_dir);
224 EXPORT_SYMBOL(__pollwait);
225 EXPORT_SYMBOL(ROOT_DEV);
226 EXPORT_SYMBOL(__find_get_page);
227 EXPORT_SYMBOL(__find_lock_page);
228 EXPORT_SYMBOL(grab_cache_page);
229 EXPORT_SYMBOL(read_cache_page);
230 EXPORT_SYMBOL(vfs_readlink);
231 EXPORT_SYMBOL(vfs_follow_link);
232 EXPORT_SYMBOL(page_readlink);
233 EXPORT_SYMBOL(page_follow_link);
234 EXPORT_SYMBOL(page_symlink_inode_operations);
235 EXPORT_SYMBOL(block_symlink);
236 EXPORT_SYMBOL(vfs_readdir);
238 /* for stackable file systems (lofs, wrapfs, etc.) */
239 EXPORT_SYMBOL(add_to_page_cache);
240 EXPORT_SYMBOL(filemap_nopage);
241 EXPORT_SYMBOL(filemap_swapout);
242 EXPORT_SYMBOL(filemap_sync);
243 EXPORT_SYMBOL(remove_inode_page);
245 #if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE)
246 EXPORT_SYMBOL(do_nfsservctl);
247 #endif
249 /* device registration */
250 EXPORT_SYMBOL(register_chrdev);
251 EXPORT_SYMBOL(unregister_chrdev);
252 EXPORT_SYMBOL(register_blkdev);
253 EXPORT_SYMBOL(unregister_blkdev);
254 EXPORT_SYMBOL(tty_register_driver);
255 EXPORT_SYMBOL(tty_unregister_driver);
256 EXPORT_SYMBOL(tty_std_termios);
258 /* block device driver support */
259 EXPORT_SYMBOL(block_read);
260 EXPORT_SYMBOL(block_write);
261 EXPORT_SYMBOL(wait_for_request);
262 EXPORT_SYMBOL(blksize_size);
263 EXPORT_SYMBOL(hardsect_size);
264 EXPORT_SYMBOL(blk_size);
265 EXPORT_SYMBOL(blk_dev);
266 EXPORT_SYMBOL(is_read_only);
267 EXPORT_SYMBOL(set_device_ro);
268 EXPORT_SYMBOL(bmap);
269 EXPORT_SYMBOL(sync_dev);
270 EXPORT_SYMBOL(devfs_register_partitions);
271 EXPORT_SYMBOL(blkdev_open);
272 EXPORT_SYMBOL(blkdev_get);
273 EXPORT_SYMBOL(blkdev_put);
274 EXPORT_SYMBOL(ioctl_by_bdev);
275 EXPORT_SYMBOL(gendisk_head);
276 EXPORT_SYMBOL(grok_partitions);
277 EXPORT_SYMBOL(register_disk);
278 EXPORT_SYMBOL(tq_disk);
279 EXPORT_SYMBOL(init_buffer);
280 EXPORT_SYMBOL(refile_buffer);
281 EXPORT_SYMBOL(max_sectors);
282 EXPORT_SYMBOL(max_readahead);
283 EXPORT_SYMBOL(file_moveto);
285 /* tty routines */
286 EXPORT_SYMBOL(tty_hangup);
287 EXPORT_SYMBOL(tty_wait_until_sent);
288 EXPORT_SYMBOL(tty_check_change);
289 EXPORT_SYMBOL(tty_hung_up_p);
290 EXPORT_SYMBOL(tty_flip_buffer_push);
291 EXPORT_SYMBOL(tty_get_baud_rate);
292 EXPORT_SYMBOL(do_SAK);
293 EXPORT_SYMBOL(console_print);
294 EXPORT_SYMBOL(console_loglevel);
296 /* filesystem registration */
297 EXPORT_SYMBOL(register_filesystem);
298 EXPORT_SYMBOL(unregister_filesystem);
300 /* executable format registration */
301 EXPORT_SYMBOL(register_binfmt);
302 EXPORT_SYMBOL(unregister_binfmt);
303 EXPORT_SYMBOL(search_binary_handler);
304 EXPORT_SYMBOL(prepare_binprm);
305 EXPORT_SYMBOL(compute_creds);
306 EXPORT_SYMBOL(remove_arg_zero);
308 /* execution environment registration */
309 EXPORT_SYMBOL(lookup_exec_domain);
310 EXPORT_SYMBOL(register_exec_domain);
311 EXPORT_SYMBOL(unregister_exec_domain);
313 /* sysctl table registration */
314 EXPORT_SYMBOL(register_sysctl_table);
315 EXPORT_SYMBOL(unregister_sysctl_table);
316 EXPORT_SYMBOL(sysctl_string);
317 EXPORT_SYMBOL(sysctl_intvec);
318 EXPORT_SYMBOL(proc_dostring);
319 EXPORT_SYMBOL(proc_dointvec);
320 EXPORT_SYMBOL(proc_dointvec_jiffies);
321 EXPORT_SYMBOL(proc_dointvec_minmax);
322 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
323 EXPORT_SYMBOL(proc_doulongvec_minmax);
325 /* interrupt handling */
326 EXPORT_SYMBOL(request_irq);
327 EXPORT_SYMBOL(free_irq);
328 EXPORT_SYMBOL(probe_irq_on);
329 EXPORT_SYMBOL(probe_irq_off);
330 EXPORT_SYMBOL(add_timer);
331 EXPORT_SYMBOL(del_timer);
332 #ifdef __SMP__
333 EXPORT_SYMBOL(del_timer_sync);
334 #endif
335 EXPORT_SYMBOL(mod_timer);
336 EXPORT_SYMBOL(tq_timer);
337 EXPORT_SYMBOL(tq_immediate);
338 EXPORT_SYMBOL(tq_scheduler);
339 EXPORT_SYMBOL(timer_active);
340 EXPORT_SYMBOL(timer_table);
342 #ifdef __SMP__
343 /* Various random spinlocks we want to export */
344 EXPORT_SYMBOL(tqueue_lock);
346 /* Big-Reader lock implementation */
347 EXPORT_SYMBOL(__brlock_array);
348 #ifndef __BRLOCK_USE_ATOMICS
349 EXPORT_SYMBOL(__br_write_locks);
350 #endif
351 EXPORT_SYMBOL(__br_write_lock);
352 EXPORT_SYMBOL(__br_write_unlock);
353 #endif
355 /* Kiobufs */
356 EXPORT_SYMBOL(kiobuf_init);
358 EXPORT_SYMBOL(alloc_kiovec);
359 EXPORT_SYMBOL(free_kiovec);
360 EXPORT_SYMBOL(expand_kiobuf);
362 EXPORT_SYMBOL(map_user_kiobuf);
363 EXPORT_SYMBOL(unmap_kiobuf);
364 EXPORT_SYMBOL(lock_kiovec);
365 EXPORT_SYMBOL(unlock_kiovec);
366 EXPORT_SYMBOL(brw_kiovec);
368 /* autoirq from drivers/net/auto_irq.c */
369 EXPORT_SYMBOL(autoirq_setup);
370 EXPORT_SYMBOL(autoirq_report);
372 /* dma handling */
373 EXPORT_SYMBOL(request_dma);
374 EXPORT_SYMBOL(free_dma);
375 EXPORT_SYMBOL(dma_spin_lock);
376 #ifdef HAVE_DISABLE_HLT
377 EXPORT_SYMBOL(disable_hlt);
378 EXPORT_SYMBOL(enable_hlt);
379 #endif
381 /* resource handling */
382 EXPORT_SYMBOL(request_resource);
383 EXPORT_SYMBOL(release_resource);
384 EXPORT_SYMBOL(allocate_resource);
385 EXPORT_SYMBOL(check_resource);
386 EXPORT_SYMBOL(__request_region);
387 EXPORT_SYMBOL(__check_region);
388 EXPORT_SYMBOL(__release_region);
389 EXPORT_SYMBOL(ioport_resource);
390 EXPORT_SYMBOL(iomem_resource);
392 /* process management */
393 EXPORT_SYMBOL(__wake_up);
394 EXPORT_SYMBOL(sleep_on);
395 EXPORT_SYMBOL(sleep_on_timeout);
396 EXPORT_SYMBOL(interruptible_sleep_on);
397 EXPORT_SYMBOL(interruptible_sleep_on_timeout);
398 EXPORT_SYMBOL(schedule);
399 EXPORT_SYMBOL(schedule_timeout);
400 EXPORT_SYMBOL(jiffies);
401 EXPORT_SYMBOL(xtime);
402 EXPORT_SYMBOL(do_gettimeofday);
403 EXPORT_SYMBOL(do_settimeofday);
404 #ifndef __ia64__
405 EXPORT_SYMBOL(loops_per_sec);
406 #endif
407 EXPORT_SYMBOL(kstat);
408 EXPORT_SYMBOL(nr_running);
410 /* misc */
411 EXPORT_SYMBOL(panic);
412 EXPORT_SYMBOL(printk);
413 EXPORT_SYMBOL(sprintf);
414 EXPORT_SYMBOL(vsprintf);
415 EXPORT_SYMBOL(kdevname);
416 EXPORT_SYMBOL(bdevname);
417 EXPORT_SYMBOL(cdevname);
418 EXPORT_SYMBOL(simple_strtoul);
419 EXPORT_SYMBOL(system_utsname); /* UTS data */
420 EXPORT_SYMBOL(uts_sem); /* UTS semaphore */
421 EXPORT_SYMBOL(sys_call_table);
422 EXPORT_SYMBOL(machine_restart);
423 EXPORT_SYMBOL(machine_halt);
424 EXPORT_SYMBOL(machine_power_off);
425 EXPORT_SYMBOL(register_reboot_notifier);
426 EXPORT_SYMBOL(unregister_reboot_notifier);
427 EXPORT_SYMBOL(_ctype);
428 EXPORT_SYMBOL(secure_tcp_sequence_number);
429 EXPORT_SYMBOL(get_random_bytes);
430 EXPORT_SYMBOL(securebits);
431 EXPORT_SYMBOL(cap_bset);
432 EXPORT_SYMBOL(daemonize);
434 /* Program loader interfaces */
435 EXPORT_SYMBOL(setup_arg_pages);
436 EXPORT_SYMBOL(copy_strings_kernel);
437 EXPORT_SYMBOL(do_execve);
438 EXPORT_SYMBOL(flush_old_exec);
439 EXPORT_SYMBOL(open_dentry);
440 EXPORT_SYMBOL(read_exec);
442 /* Miscellaneous access points */
443 EXPORT_SYMBOL(si_meminfo);
445 /* Added to make file system as module */
446 EXPORT_SYMBOL(sys_tz);
447 EXPORT_SYMBOL(__wait_on_super);
448 EXPORT_SYMBOL(file_fsync);
449 EXPORT_SYMBOL(clear_inode);
450 EXPORT_SYMBOL(nr_async_pages);
451 EXPORT_SYMBOL(___strtok);
452 EXPORT_SYMBOL(init_special_inode);
453 EXPORT_SYMBOL(read_ahead);
454 EXPORT_SYMBOL(get_hash_table);
455 EXPORT_SYMBOL(get_empty_inode);
456 EXPORT_SYMBOL(insert_inode_hash);
457 EXPORT_SYMBOL(remove_inode_hash);
458 EXPORT_SYMBOL(make_bad_inode);
459 EXPORT_SYMBOL(is_bad_inode);
460 EXPORT_SYMBOL(event);
461 EXPORT_SYMBOL(__down);
462 EXPORT_SYMBOL(__down_interruptible);
463 EXPORT_SYMBOL(__down_trylock);
464 EXPORT_SYMBOL(__up);
465 EXPORT_SYMBOL(brw_page);
467 #ifdef CONFIG_UID16
468 EXPORT_SYMBOL(overflowuid);
469 EXPORT_SYMBOL(overflowgid);
470 #endif
471 EXPORT_SYMBOL(fs_overflowuid);
472 EXPORT_SYMBOL(fs_overflowgid);
474 /* all busmice */
475 EXPORT_SYMBOL(fasync_helper);
477 #ifdef CONFIG_BLK_DEV_MD
478 EXPORT_SYMBOL(disk_name); /* for md.c */
479 #endif
481 /* binfmt_aout */
482 EXPORT_SYMBOL(get_write_access);
483 EXPORT_SYMBOL(put_write_access);
485 /* dynamic registering of consoles */
486 EXPORT_SYMBOL(register_console);
487 EXPORT_SYMBOL(unregister_console);
489 /* time */
490 EXPORT_SYMBOL(get_fast_time);
492 /* library functions */
493 EXPORT_SYMBOL(strnicmp);
494 EXPORT_SYMBOL(strspn);
496 /* software interrupts */
497 EXPORT_SYMBOL(tasklet_hi_vec);
498 EXPORT_SYMBOL(tasklet_vec);
499 EXPORT_SYMBOL(bh_task_vec);
500 EXPORT_SYMBOL(init_bh);
501 EXPORT_SYMBOL(remove_bh);
502 EXPORT_SYMBOL(tasklet_init);
503 EXPORT_SYMBOL(tasklet_kill);
505 /* init task, for moving kthread roots - ought to export a function ?? */
507 EXPORT_SYMBOL(init_task_union);