home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.2 / LINUX-1.2 / LINUX-1 / linux / kernel / ksyms.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-07  |  7.3 KB  |  370 lines

  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/autoconf.h>
  13. #include <linux/module.h>
  14. #include <linux/kernel.h>
  15. #include <linux/fs.h>
  16. #include <linux/blkdev.h>
  17. #include <linux/sched.h>
  18. #include <linux/mm.h>
  19. #include <linux/malloc.h>
  20. #include <linux/ptrace.h>
  21. #include <linux/sys.h>
  22. #include <linux/utsname.h>
  23. #include <linux/interrupt.h>
  24. #include <linux/ioport.h>
  25. #include <linux/timer.h>
  26. #include <linux/binfmts.h>
  27. #include <linux/personality.h>
  28. #include <linux/termios.h>
  29. #include <linux/tqueue.h>
  30. #include <linux/tty.h>
  31. #include <linux/serial.h>
  32. #include <linux/locks.h>
  33. #include <linux/string.h>
  34. #include <linux/delay.h>
  35. #include <linux/config.h>
  36.  
  37. #ifdef CONFIG_INET
  38. #include <linux/net.h>
  39. #include <linux/netdevice.h>
  40. #include <linux/ip.h>
  41. #include "../net/inet/protocol.h"
  42. #include "../net/inet/arp.h"
  43. #endif
  44. #ifdef CONFIG_PCI
  45. #include <linux/pci.h>
  46. #endif
  47. #if defined(CONFIG_MSDOS_FS) && !defined(CONFIG_UMSDOS_FS)
  48. #include <linux/msdos_fs.h>
  49. #endif
  50.  
  51. #include <asm/irq.h>
  52. extern char floppy_track_buffer[];
  53. extern void set_device_ro(int dev,int flag);
  54. extern struct file_operations * get_blkfops(unsigned int);
  55.   
  56. extern void *sys_call_table;
  57.  
  58. #ifdef CONFIG_FTAPE
  59. extern char * ftape_big_buffer;
  60. #endif
  61.  
  62. #ifdef CONFIG_SCSI
  63. #include "../drivers/scsi/scsi.h"
  64. #include "../drivers/scsi/hosts.h"
  65. #endif
  66.  
  67. extern int sys_tz;
  68. extern int request_dma(unsigned int dmanr, char * deviceID);
  69. extern void free_dma(unsigned int dmanr);
  70.  
  71. extern int close_fp(struct file *filp);
  72. extern void (* iABI_hook)(struct pt_regs * regs);
  73.  
  74. struct symbol_table symbol_table = {
  75. #include <linux/symtab_begin.h>
  76. #ifdef CONFIG_MODVERSIONS
  77.     { (void *)1 /* Version version :-) */, "_Using_Versions" },
  78. #endif
  79.     /* stackable module support */
  80.     X(rename_module_symbol),
  81.     X(register_symtab),
  82.  
  83.     /* system info variables */
  84.     /* These check that they aren't defines (0/1) */
  85. #ifndef EISA_bus__is_a_macro
  86.     X(EISA_bus),
  87. #endif
  88. #ifndef MCA_bus__is_a_macro
  89.     X(MCA_bus),
  90. #endif
  91. #ifndef wp_works_ok__is_a_macro
  92.     X(wp_works_ok),
  93. #endif
  94.  
  95. #ifdef CONFIG_PCI
  96.     /* PCI BIOS support */
  97.     X(pcibios_present),
  98.     X(pcibios_find_class),
  99.     X(pcibios_find_device),
  100.     X(pcibios_read_config_byte),
  101.     X(pcibios_read_config_word),
  102.     X(pcibios_read_config_dword),
  103.     X(pcibios_write_config_byte),
  104.     X(pcibios_write_config_word),
  105.     X(pcibios_write_config_dword),
  106. #endif
  107.  
  108.     /* process memory management */
  109.     X(verify_area),
  110.     X(do_mmap),
  111.     X(do_munmap),
  112.     X(zeromap_page_range),
  113.     X(unmap_page_range),
  114.     X(insert_vm_struct),
  115.     X(merge_segments),
  116.  
  117.     /* internal kernel memory management */
  118.     X(__get_free_pages),
  119.     X(free_pages),
  120.     X(kmalloc),
  121.     X(kfree_s),
  122.     X(vmalloc),
  123.     X(vfree),
  124.  
  125.     /* filesystem internal functions */
  126.     X(getname),
  127.     X(putname),
  128.     X(__iget),
  129.     X(iput),
  130.     X(namei),
  131.     X(lnamei),
  132.     X(open_namei),
  133.     X(close_fp),
  134.     X(check_disk_change),
  135.     X(invalidate_buffers),
  136.     X(fsync_dev),
  137.     X(permission),
  138.     X(inode_setattr),
  139.     X(inode_change_ok),
  140.     X(generic_mmap),
  141.     X(set_blocksize),
  142.     X(getblk),
  143.     X(bread),
  144.     X(breada),
  145.     X(brelse),
  146.     X(ll_rw_block),
  147.     X(__wait_on_buffer),
  148.     X(dcache_lookup),
  149.     X(dcache_add),
  150.  
  151.     /* device registration */
  152.     X(register_chrdev),
  153.     X(unregister_chrdev),
  154.     X(register_blkdev),
  155.     X(unregister_blkdev),
  156.     X(tty_register_driver),
  157.     X(tty_unregister_driver),
  158.     X(tty_std_termios),
  159.  
  160.     /* block device driver support */
  161.     X(block_read),
  162.     X(block_write),
  163.     X(block_fsync),
  164.     X(wait_for_request),
  165.     X(blksize_size),
  166.     X(hardsect_size),
  167.     X(blk_size),
  168.     X(blk_dev),
  169.     X(is_read_only),
  170.     X(set_device_ro),
  171.     X(bmap),
  172.     X(sync_dev),
  173.     X(get_blkfops),
  174.     
  175.     /* Module creation of serial units */
  176.     X(register_serial),
  177.     X(unregister_serial),
  178.  
  179.     /* tty routines */
  180.     X(tty_hangup),
  181.     X(tty_wait_until_sent),
  182.     X(tty_check_change),
  183.     X(tty_hung_up_p),
  184.  
  185.     /* filesystem registration */
  186.     X(register_filesystem),
  187.     X(unregister_filesystem),
  188.  
  189.     /* executable format registration */
  190.     X(register_binfmt),
  191.     X(unregister_binfmt),
  192.  
  193.     /* execution environment registration */
  194.     X(lookup_exec_domain),
  195.     X(register_exec_domain),
  196.     X(unregister_exec_domain),
  197.  
  198.     /* interrupt handling */
  199.     X(request_irq),
  200.     X(free_irq),
  201.     X(enable_irq),
  202.     X(disable_irq),
  203.     X(bh_active),
  204.     X(bh_mask),
  205.     X(add_timer),
  206.     X(del_timer),
  207.     X(tq_timer),
  208.     X(tq_immediate),
  209.     X(tq_last),
  210.     X(timer_active),
  211.     X(timer_table),
  212.  
  213.     /* dma handling */
  214.     X(request_dma),
  215.     X(free_dma),
  216. #ifdef HAVE_DISABLE_HLT
  217.     X(disable_hlt),
  218.     X(enable_hlt),
  219. #endif
  220.  
  221.     /* IO port handling */
  222.     X(check_region),
  223.     X(request_region),
  224.     X(release_region),
  225.  
  226.     /* process management */
  227.     X(wake_up),
  228.     X(wake_up_interruptible),
  229.     X(sleep_on),
  230.     X(interruptible_sleep_on),
  231.     X(schedule),
  232.     X(current),
  233.     X(jiffies),
  234.     X(xtime),
  235.     X(loops_per_sec),
  236.     X(need_resched),
  237.     X(kill_proc),
  238.     X(kill_pg),
  239.     X(kill_sl),
  240.  
  241.     /* misc */
  242.     X(panic),
  243.     X(printk),
  244.     X(sprintf),
  245.     X(vsprintf),
  246.     X(simple_strtoul),
  247.     X(system_utsname),
  248.     X(sys_call_table),
  249.  
  250.     /* Signal interfaces */
  251.     X(do_signal),
  252.     X(send_sig),
  253.  
  254.     /* Program loader interfaces */
  255.     X(setup_arg_pages),
  256.     X(copy_strings),
  257.     X(create_tables),
  258.     X(do_execve),
  259.     X(flush_old_exec),
  260.     X(open_inode),
  261.     X(read_exec),
  262.  
  263.     /* Miscellaneous access points */
  264.     X(si_meminfo),
  265. #ifdef CONFIG_NET
  266.     /* socket layer registration */
  267.     X(sock_register),
  268.     X(sock_unregister),
  269.     /* Internet layer registration */
  270. #ifdef CONFIG_INET    
  271.     X(inet_add_protocol),
  272.     X(inet_del_protocol),
  273. #endif
  274.     /* Device callback registration */
  275.     X(register_netdevice_notifier),
  276.     X(unregister_netdevice_notifier),
  277. #endif
  278.  
  279. #ifdef CONFIG_FTAPE
  280.     /* The next labels are needed for ftape driver.  */
  281.     X(ftape_big_buffer),
  282. #endif
  283.     X(floppy_track_buffer),
  284. #ifdef CONFIG_INET
  285.     /* support for loadable net drivers */
  286.     X(register_netdev),
  287.     X(unregister_netdev),
  288.     X(ether_setup),
  289.     X(alloc_skb),
  290.     X(kfree_skb),
  291.     X(dev_kfree_skb),
  292.     X(netif_rx),
  293.     X(dev_rint),
  294.     X(dev_tint),
  295.     X(irq2dev_map),
  296.     X(dev_add_pack),
  297.     X(dev_remove_pack),
  298.     X(dev_get),
  299.     X(dev_ioctl),
  300.     X(dev_queue_xmit),
  301.     X(dev_base),
  302.     X(dev_close),
  303.     X(arp_find),
  304.     X(n_tty_ioctl),
  305.     X(tty_register_ldisc),
  306.     X(kill_fasync),
  307.     X(tty_hung_up_p),
  308. #endif
  309. #ifdef CONFIG_SCSI
  310.     /* Supports loadable scsi drivers */
  311.     X(scsi_register_module),
  312.     X(scsi_unregister_module),
  313.     X(scsi_free),
  314.     X(scsi_malloc),
  315.     X(scsi_register),
  316.     X(scsi_unregister),
  317.     X(scsicam_bios_param),
  318. #endif
  319.     /* Added to make file system as module */
  320.     X(set_writetime),
  321.     X(sys_tz),
  322.     X(__wait_on_super),
  323.     X(file_fsync),
  324.     X(clear_inode),
  325.     X(refile_buffer),
  326.     X(___strtok),
  327.     X(init_fifo),
  328.     X(super_blocks),
  329.     X(chrdev_inode_operations),
  330.     X(blkdev_inode_operations),
  331.     X(read_ahead),
  332.     X(get_hash_table),
  333.     X(get_empty_inode),
  334.     X(insert_inode_hash),
  335.     X(event),
  336.     X(__down),
  337. #if defined(CONFIG_MSDOS_FS) && !defined(CONFIG_UMSDOS_FS)
  338.     /* support for umsdos fs */
  339.     X(msdos_bmap),
  340.     X(msdos_create),
  341.     X(msdos_file_read),
  342.     X(msdos_file_write),
  343.     X(msdos_lookup),
  344.     X(msdos_mkdir),
  345.     X(msdos_mmap),
  346.     X(msdos_put_inode),
  347.     X(msdos_put_super),
  348.     X(msdos_read_inode),
  349.     X(msdos_read_super),
  350.     X(msdos_readdir),
  351.     X(msdos_rename),
  352.     X(msdos_rmdir),
  353.     X(msdos_smap),
  354.     X(msdos_statfs),
  355.     X(msdos_truncate),
  356.     X(msdos_unlink),
  357.     X(msdos_unlink_umsdos),
  358.     X(msdos_write_inode),
  359. #endif
  360.     /********************************************************
  361.      * Do not add anything below this line,
  362.      * as the stacked modules depend on this!
  363.      */
  364. #include <linux/symtab_end.h>
  365. };
  366.  
  367. /*
  368. int symbol_table_size = sizeof (symbol_table) / sizeof (symbol_table[0]);
  369. */
  370.