1/* 2 * Herein lies all the functions/variables that are "exported" for linkage 3 * with dynamically loaded kernel modules. 4 * Jon. 5 * 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> 10 */ 11 12#include <linux/config.h> 13#include <linux/module.h> 14#include <linux/kernel.h> 15#include <linux/fs.h> 16#include <linux/blkdev.h> 17#include <linux/cdrom.h> 18#include <linux/ucdrom.h> 19#include <linux/sched.h> 20#include <linux/kernel_stat.h> 21#include <linux/mm.h> 22#include <linux/malloc.h> 23#include <linux/slab.h> 24#include <linux/vmalloc.h> 25#include <linux/ptrace.h> 26#include <linux/sys.h> 27#include <linux/utsname.h> 28#include <linux/interrupt.h> 29#include <linux/ioport.h> 30#include <linux/timer.h> 31#include <linux/binfmts.h> 32#include <linux/personality.h> 33#include <linux/termios.h> 34#include <linux/tqueue.h> 35#include <linux/tty.h> 36#include <linux/serial.h> 37#include <linux/locks.h> 38#include <linux/string.h> 39#include <linux/delay.h> 40#include <linux/sem.h> 41#include <linux/minix_fs.h> 42#include <linux/ext2_fs.h> 43#include <linux/random.h> 44#include <linux/reboot.h> 45#include <linux/mount.h> 46#include <linux/pagemap.h> 47#include <linux/sysctl.h> 48#include <linux/hdreg.h> 49#include <linux/skbuff.h> 50#include <linux/genhd.h> 51#include <linux/swap.h> 52#include <linux/ctype.h> 53#include <linux/file.h> 54 55extern unsigned char aux_device_present, kbd_read_mask; 56 57#ifdef CONFIG_PCI 58#include <linux/bios32.h> 59#include <linux/pci.h> 60#endif 61#if defined(CONFIG_PROC_FS) 62#include <linux/proc_fs.h> 63#endif 64#ifdef CONFIG_KERNELD 65#include <linux/kerneld.h> 66#endif 67#include <asm/irq.h> 68#ifdef __SMP__ 69#include <linux/smp.h> 70#endif 71 72extern char *get_options(char *str, int *ints); 73extern void set_device_ro(int dev,int flag); 74extern struct file_operations * get_blkfops(unsigned int); 75extern int blkdev_release(struct inode * inode); 76#if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE) 77extern int (*do_nfsservctl)(int, void *, void *); 78#endif 79 80extern void *sys_call_table; 81 82extern int sys_tz; 83extern int request_dma(unsigned int dmanr, char * deviceID); 84extern void free_dma(unsigned int dmanr); 85 86#ifdef MODVERSIONS 87const struct module_symbol __export_Using_Versions 88__attribute__((section("__ksymtab"))) = { 89 1 /* Version version */, "Using_Versions" 90}; 91#endif 92 93#ifdef CONFIG_KERNELD 94EXPORT_SYMBOL(kerneld_send); 95#endif 96EXPORT_SYMBOL(get_options); 97 98#ifdef CONFIG_PCI 99/* PCI BIOS support */ 100EXPORT_SYMBOL(pcibios_present); 101EXPORT_SYMBOL(pcibios_find_class); 102EXPORT_SYMBOL(pcibios_find_device); 103EXPORT_SYMBOL(pcibios_read_config_byte); 104EXPORT_SYMBOL(pcibios_read_config_word); 105EXPORT_SYMBOL(pcibios_read_config_dword); 106EXPORT_SYMBOL(pcibios_write_config_byte); 107EXPORT_SYMBOL(pcibios_write_config_word); 108EXPORT_SYMBOL(pcibios_write_config_dword); 109EXPORT_SYMBOL(pcibios_strerror); 110EXPORT_SYMBOL(pci_strvendor); 111EXPORT_SYMBOL(pci_strdev); 112#endif 113 114/* process memory management */ 115EXPORT_SYMBOL(do_mmap); 116EXPORT_SYMBOL(do_munmap); 117EXPORT_SYMBOL(exit_mm); 118EXPORT_SYMBOL(exit_files); 119 120/* internal kernel memory management */ 121EXPORT_SYMBOL(__get_free_pages); 122EXPORT_SYMBOL(free_pages); 123EXPORT_SYMBOL(kmem_find_general_cachep); 124EXPORT_SYMBOL(kmem_cache_create); 125EXPORT_SYMBOL(kmem_cache_shrink); 126EXPORT_SYMBOL(kmem_cache_alloc); 127EXPORT_SYMBOL(kmem_cache_free); 128EXPORT_SYMBOL(kmalloc); 129EXPORT_SYMBOL(kfree); 130EXPORT_SYMBOL(kfree_s); 131EXPORT_SYMBOL(vmalloc); 132EXPORT_SYMBOL(vfree); 133EXPORT_SYMBOL(mem_map); 134EXPORT_SYMBOL(remap_page_range); 135EXPORT_SYMBOL(max_mapnr); 136EXPORT_SYMBOL(num_physpages); 137EXPORT_SYMBOL(high_memory); 138EXPORT_SYMBOL(update_vm_cache); 139EXPORT_SYMBOL(vmtruncate); 140 141/* filesystem internal functions */ 142EXPORT_SYMBOL(getname); 143EXPORT_SYMBOL(putname); 144EXPORT_SYMBOL(__fput); 145EXPORT_SYMBOL(iget); 146EXPORT_SYMBOL(iput); 147EXPORT_SYMBOL(__namei); 148EXPORT_SYMBOL(lookup_dentry); 149EXPORT_SYMBOL(open_namei); 150EXPORT_SYMBOL(sys_close); 151EXPORT_SYMBOL(close_fp); 152EXPORT_SYMBOL(d_alloc_root); 153EXPORT_SYMBOL(d_delete); 154EXPORT_SYMBOL(d_validate); 155EXPORT_SYMBOL(d_add); 156EXPORT_SYMBOL(d_move); 157EXPORT_SYMBOL(d_instantiate); 158EXPORT_SYMBOL(d_alloc); 159EXPORT_SYMBOL(d_lookup); 160EXPORT_SYMBOL(__mark_inode_dirty); 161EXPORT_SYMBOL(init_private_file); 162EXPORT_SYMBOL(insert_file_free); 163EXPORT_SYMBOL(check_disk_change); 164EXPORT_SYMBOL(invalidate_buffers); 165EXPORT_SYMBOL(invalidate_inodes); 166EXPORT_SYMBOL(invalidate_inode_pages); 167EXPORT_SYMBOL(fsync_dev); 168EXPORT_SYMBOL(permission); 169EXPORT_SYMBOL(inode_setattr); 170EXPORT_SYMBOL(inode_change_ok); 171EXPORT_SYMBOL(write_inode_now); 172EXPORT_SYMBOL(notify_change); 173EXPORT_SYMBOL(get_hardblocksize); 174EXPORT_SYMBOL(set_blocksize); 175EXPORT_SYMBOL(getblk); 176EXPORT_SYMBOL(bread); 177EXPORT_SYMBOL(breada); 178EXPORT_SYMBOL(__brelse); 179EXPORT_SYMBOL(__bforget); 180EXPORT_SYMBOL(ll_rw_block); 181EXPORT_SYMBOL(__wait_on_buffer); 182EXPORT_SYMBOL(mark_buffer_uptodate); 183EXPORT_SYMBOL(unlock_buffer); 184EXPORT_SYMBOL(add_blkdev_randomness); 185EXPORT_SYMBOL(generic_file_read); 186EXPORT_SYMBOL(generic_file_write); 187EXPORT_SYMBOL(generic_file_mmap); 188EXPORT_SYMBOL(generic_readpage); 189EXPORT_SYMBOL(file_lock_table); 190EXPORT_SYMBOL(posix_lock_file); 191EXPORT_SYMBOL(posix_test_lock); 192EXPORT_SYMBOL(posix_block_lock); 193EXPORT_SYMBOL(posix_unblock_lock); 194EXPORT_SYMBOL(dput); 195 196#if !defined(CONFIG_NFSD) && defined(CONFIG_NFSD_MODULE) 197EXPORT_SYMBOL(do_nfsservctl); 198#endif 199 200/* device registration */ 201EXPORT_SYMBOL(register_chrdev); 202EXPORT_SYMBOL(unregister_chrdev); 203EXPORT_SYMBOL(register_blkdev); 204EXPORT_SYMBOL(unregister_blkdev); 205EXPORT_SYMBOL(tty_register_driver); 206EXPORT_SYMBOL(tty_unregister_driver); 207EXPORT_SYMBOL(tty_std_termios); 208 209/* block device driver support */ 210EXPORT_SYMBOL(block_read); 211EXPORT_SYMBOL(block_write); 212EXPORT_SYMBOL(block_fsync); 213EXPORT_SYMBOL(wait_for_request); 214EXPORT_SYMBOL(blksize_size); 215EXPORT_SYMBOL(hardsect_size); 216EXPORT_SYMBOL(blk_size); 217EXPORT_SYMBOL(blk_dev); 218EXPORT_SYMBOL(is_read_only); 219EXPORT_SYMBOL(set_device_ro); 220EXPORT_SYMBOL(bmap); 221EXPORT_SYMBOL(sync_dev); 222EXPORT_SYMBOL(get_blkfops); 223EXPORT_SYMBOL(blkdev_open); 224EXPORT_SYMBOL(blkdev_release); 225EXPORT_SYMBOL(gendisk_head); 226EXPORT_SYMBOL(resetup_one_dev); 227EXPORT_SYMBOL(unplug_device); 228 229/* tty routines */ 230EXPORT_SYMBOL(tty_hangup); 231EXPORT_SYMBOL(tty_wait_until_sent); 232EXPORT_SYMBOL(tty_check_change); 233EXPORT_SYMBOL(tty_hung_up_p); 234EXPORT_SYMBOL(do_SAK); 235EXPORT_SYMBOL(console_print); 236 237/* filesystem registration */ 238EXPORT_SYMBOL(register_filesystem); 239EXPORT_SYMBOL(unregister_filesystem); 240 241/* executable format registration */ 242EXPORT_SYMBOL(register_binfmt); 243EXPORT_SYMBOL(unregister_binfmt); 244EXPORT_SYMBOL(search_binary_handler); 245EXPORT_SYMBOL(prepare_binprm); 246EXPORT_SYMBOL(remove_arg_zero); 247 248/* execution environment registration */ 249EXPORT_SYMBOL(lookup_exec_domain); 250EXPORT_SYMBOL(register_exec_domain); 251EXPORT_SYMBOL(unregister_exec_domain); 252 253/* sysctl table registration */ 254EXPORT_SYMBOL(register_sysctl_table); 255EXPORT_SYMBOL(unregister_sysctl_table); 256EXPORT_SYMBOL(sysctl_string); 257EXPORT_SYMBOL(sysctl_intvec); 258EXPORT_SYMBOL(proc_dostring); 259EXPORT_SYMBOL(proc_dointvec); 260EXPORT_SYMBOL(proc_dointvec_jiffies); 261EXPORT_SYMBOL(proc_dointvec_minmax); 262 263/* interrupt handling */ 264EXPORT_SYMBOL(request_irq); 265EXPORT_SYMBOL(free_irq); 266EXPORT_SYMBOL(enable_irq); 267EXPORT_SYMBOL(disable_irq); 268EXPORT_SYMBOL(probe_irq_on); 269EXPORT_SYMBOL(probe_irq_off); 270EXPORT_SYMBOL(bh_active); 271EXPORT_SYMBOL(bh_mask); 272EXPORT_SYMBOL(bh_mask_count); 273EXPORT_SYMBOL(bh_base); 274EXPORT_SYMBOL(add_timer); 275EXPORT_SYMBOL(del_timer); 276EXPORT_SYMBOL(tq_timer); 277EXPORT_SYMBOL(tq_immediate); 278EXPORT_SYMBOL(tq_scheduler); 279EXPORT_SYMBOL(timer_active); 280EXPORT_SYMBOL(timer_table); 281 282#ifdef __SMP__ 283/* Various random spinlocks we want to export */ 284EXPORT_SYMBOL(tqueue_lock); 285EXPORT_SYMBOL(waitqueue_lock); 286#endif 287 288/* autoirq from drivers/net/auto_irq.c */ 289EXPORT_SYMBOL(autoirq_setup); 290EXPORT_SYMBOL(autoirq_report); 291 292/* dma handling */ 293EXPORT_SYMBOL(request_dma); 294EXPORT_SYMBOL(free_dma); 295#ifdef HAVE_DISABLE_HLT 296EXPORT_SYMBOL(disable_hlt); 297EXPORT_SYMBOL(enable_hlt); 298#endif 299 300/* IO port handling */ 301EXPORT_SYMBOL(check_region); 302EXPORT_SYMBOL(request_region); 303EXPORT_SYMBOL(release_region); 304 305/* process management */ 306EXPORT_SYMBOL(wake_up); 307EXPORT_SYMBOL(wake_up_interruptible); 308EXPORT_SYMBOL(sleep_on); 309EXPORT_SYMBOL(interruptible_sleep_on); 310EXPORT_SYMBOL(schedule); 311EXPORT_SYMBOL(jiffies); 312EXPORT_SYMBOL(xtime); 313EXPORT_SYMBOL(do_gettimeofday); 314EXPORT_SYMBOL(loops_per_sec); 315EXPORT_SYMBOL(need_resched); 316EXPORT_SYMBOL(kstat); 317EXPORT_SYMBOL(kill_proc); 318EXPORT_SYMBOL(kill_pg); 319EXPORT_SYMBOL(kill_sl); 320 321/* misc */ 322EXPORT_SYMBOL(panic); 323EXPORT_SYMBOL(printk); 324EXPORT_SYMBOL(sprintf); 325EXPORT_SYMBOL(vsprintf); 326EXPORT_SYMBOL(kdevname); 327EXPORT_SYMBOL(simple_strtoul); 328EXPORT_SYMBOL(system_utsname); 329EXPORT_SYMBOL(sys_call_table); 330EXPORT_SYMBOL(machine_restart); 331EXPORT_SYMBOL(machine_halt); 332EXPORT_SYMBOL(machine_power_off); 333EXPORT_SYMBOL(register_reboot_notifier); 334EXPORT_SYMBOL(unregister_reboot_notifier); 335EXPORT_SYMBOL(_ctype); 336EXPORT_SYMBOL(secure_tcp_sequence_number); 337EXPORT_SYMBOL(get_random_bytes); 338 339/* Signal interfaces */ 340EXPORT_SYMBOL(send_sig); 341 342/* Program loader interfaces */ 343EXPORT_SYMBOL(setup_arg_pages); 344EXPORT_SYMBOL(copy_strings); 345EXPORT_SYMBOL(do_execve); 346EXPORT_SYMBOL(flush_old_exec); 347EXPORT_SYMBOL(open_dentry); 348EXPORT_SYMBOL(read_exec); 349 350/* Miscellaneous access points */ 351EXPORT_SYMBOL(si_meminfo); 352 353/* Added to make file system as module */ 354EXPORT_SYMBOL(get_super); 355EXPORT_SYMBOL(set_writetime); 356EXPORT_SYMBOL(sys_tz); 357EXPORT_SYMBOL(__wait_on_super); 358EXPORT_SYMBOL(file_fsync); 359EXPORT_SYMBOL(clear_inode); 360EXPORT_SYMBOL(refile_buffer); 361EXPORT_SYMBOL(nr_async_pages); 362EXPORT_SYMBOL(___strtok); 363EXPORT_SYMBOL(init_fifo); 364EXPORT_SYMBOL(super_blocks); 365EXPORT_SYMBOL(fifo_inode_operations); 366EXPORT_SYMBOL(chrdev_inode_operations); 367EXPORT_SYMBOL(blkdev_inode_operations); 368EXPORT_SYMBOL(read_ahead); 369EXPORT_SYMBOL(get_hash_table); 370EXPORT_SYMBOL(get_empty_inode); 371EXPORT_SYMBOL(insert_inode_hash); 372EXPORT_SYMBOL(event); 373EXPORT_SYMBOL(__down); 374EXPORT_SYMBOL(__up); 375EXPORT_SYMBOL(securelevel); 376 377/* all busmice */ 378EXPORT_SYMBOL(add_mouse_randomness); 379EXPORT_SYMBOL(fasync_helper); 380 381/* psaux mouse */ 382EXPORT_SYMBOL(aux_device_present); 383#ifdef CONFIG_VT 384EXPORT_SYMBOL(kbd_read_mask); 385#endif 386 387#ifdef CONFIG_BLK_DEV_MD 388EXPORT_SYMBOL(disk_name); /* for md.c */ 389#endif 390 391/* binfmt_aout */ 392EXPORT_SYMBOL(get_write_access); 393EXPORT_SYMBOL(put_write_access); 394

