2 * Herein lies all the functions/variables that are "exported" for linkage
3 * with dynamically loaded kernel modules.
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>
44 #include <linux/capability.h>
45 #include <linux/highuid.h>
46 #include <linux/brlock.h>
49 #if defined(CONFIG_PROC_FS)
50 #include <linux/proc_fs.h>
53 #include <linux/kmod.h>
56 extern int console_loglevel
;
57 extern void set_device_ro(kdev_t dev
,int flag
);
59 extern void *sys_call_table
;
62 extern int request_dma(unsigned int dmanr
, char * deviceID
);
63 extern void free_dma(unsigned int dmanr
);
64 extern spinlock_t dma_spin_lock
;
66 #ifdef CONFIG_MODVERSIONS
67 const struct module_symbol __export_Using_Versions
68 __attribute__((section("__ksymtab"))) = {
69 1 /* Version version */, "Using_Versions"
75 EXPORT_SYMBOL(request_module
);
76 EXPORT_SYMBOL(exec_usermodehelper
);
78 EXPORT_SYMBOL(hotplug_path
);
83 EXPORT_SYMBOL(get_module_symbol
);
84 EXPORT_SYMBOL(put_module_symbol
);
85 EXPORT_SYMBOL(try_inc_mod_count
);
88 /* process memory management */
89 EXPORT_SYMBOL(do_mmap_pgoff
);
90 EXPORT_SYMBOL(do_munmap
);
91 EXPORT_SYMBOL(do_brk
);
92 EXPORT_SYMBOL(exit_mm
);
93 EXPORT_SYMBOL(exit_files
);
94 EXPORT_SYMBOL(exit_fs
);
95 EXPORT_SYMBOL(exit_sighand
);
97 /* internal kernel memory management */
98 EXPORT_SYMBOL(__alloc_pages
);
99 EXPORT_SYMBOL(alloc_pages_node
);
100 EXPORT_SYMBOL(__get_free_pages
);
101 EXPORT_SYMBOL(get_zeroed_page
);
102 EXPORT_SYMBOL(__free_pages
);
103 EXPORT_SYMBOL(free_pages
);
104 #ifndef CONFIG_DISCONTIGMEM
105 EXPORT_SYMBOL(contig_page_data
);
107 EXPORT_SYMBOL(num_physpages
);
108 EXPORT_SYMBOL(kmem_find_general_cachep
);
109 EXPORT_SYMBOL(kmem_cache_create
);
110 EXPORT_SYMBOL(kmem_cache_destroy
);
111 EXPORT_SYMBOL(kmem_cache_shrink
);
112 EXPORT_SYMBOL(kmem_cache_alloc
);
113 EXPORT_SYMBOL(kmem_cache_free
);
114 EXPORT_SYMBOL(kmalloc
);
115 EXPORT_SYMBOL(kfree
);
116 EXPORT_SYMBOL(vfree
);
117 EXPORT_SYMBOL(__vmalloc
);
118 EXPORT_SYMBOL(mem_map
);
119 EXPORT_SYMBOL(remap_page_range
);
120 EXPORT_SYMBOL(max_mapnr
);
121 EXPORT_SYMBOL(high_memory
);
122 EXPORT_SYMBOL(vmtruncate
);
123 EXPORT_SYMBOL(find_vma
);
124 EXPORT_SYMBOL(get_unmapped_area
);
125 EXPORT_SYMBOL(init_mm
);
126 #ifdef CONFIG_HIGHMEM
127 EXPORT_SYMBOL(kmap_high
);
128 EXPORT_SYMBOL(kunmap_high
);
129 EXPORT_SYMBOL(highmem_start_page
);
132 /* filesystem internal functions */
133 EXPORT_SYMBOL(def_blk_fops
);
134 EXPORT_SYMBOL(update_atime
);
135 EXPORT_SYMBOL(get_fs_type
);
136 EXPORT_SYMBOL(get_super
);
137 EXPORT_SYMBOL(get_empty_super
);
138 EXPORT_SYMBOL(getname
);
139 EXPORT_SYMBOL(names_cachep
);
142 EXPORT_SYMBOL(igrab
);
143 EXPORT_SYMBOL(iunique
);
144 EXPORT_SYMBOL(iget4
);
146 EXPORT_SYMBOL(force_delete
);
147 EXPORT_SYMBOL(follow_up
);
148 EXPORT_SYMBOL(follow_down
);
149 EXPORT_SYMBOL(path_init
);
150 EXPORT_SYMBOL(path_walk
);
151 EXPORT_SYMBOL(path_release
);
152 EXPORT_SYMBOL(__user_walk
);
153 EXPORT_SYMBOL(lookup_one
);
154 EXPORT_SYMBOL(lookup_hash
);
155 EXPORT_SYMBOL(sys_close
);
156 EXPORT_SYMBOL(dcache_lock
);
157 EXPORT_SYMBOL(d_alloc_root
);
158 EXPORT_SYMBOL(d_delete
);
159 EXPORT_SYMBOL(dget_locked
);
160 EXPORT_SYMBOL(d_validate
);
161 EXPORT_SYMBOL(d_rehash
);
162 EXPORT_SYMBOL(d_invalidate
); /* May be it will be better in dcache.h? */
163 EXPORT_SYMBOL(d_move
);
164 EXPORT_SYMBOL(d_instantiate
);
165 EXPORT_SYMBOL(d_alloc
);
166 EXPORT_SYMBOL(d_lookup
);
167 EXPORT_SYMBOL(__d_path
);
168 EXPORT_SYMBOL(mark_buffer_dirty
);
169 EXPORT_SYMBOL(__mark_buffer_dirty
);
170 EXPORT_SYMBOL(__mark_inode_dirty
);
171 EXPORT_SYMBOL(get_empty_filp
);
172 EXPORT_SYMBOL(init_private_file
);
173 EXPORT_SYMBOL(filp_open
);
174 EXPORT_SYMBOL(filp_close
);
175 EXPORT_SYMBOL(put_filp
);
176 EXPORT_SYMBOL(files_lock
);
177 EXPORT_SYMBOL(check_disk_change
);
178 EXPORT_SYMBOL(__invalidate_buffers
);
179 EXPORT_SYMBOL(invalidate_inodes
);
180 EXPORT_SYMBOL(invalidate_inode_pages
);
181 EXPORT_SYMBOL(truncate_inode_pages
);
182 EXPORT_SYMBOL(fsync_dev
);
183 EXPORT_SYMBOL(permission
);
184 EXPORT_SYMBOL(inode_setattr
);
185 EXPORT_SYMBOL(inode_change_ok
);
186 EXPORT_SYMBOL(write_inode_now
);
187 EXPORT_SYMBOL(notify_change
);
188 EXPORT_SYMBOL(get_hardblocksize
);
189 EXPORT_SYMBOL(set_blocksize
);
190 EXPORT_SYMBOL(getblk
);
191 EXPORT_SYMBOL(bdget
);
192 EXPORT_SYMBOL(bdput
);
193 EXPORT_SYMBOL(bread
);
194 EXPORT_SYMBOL(breada
);
195 EXPORT_SYMBOL(__brelse
);
196 EXPORT_SYMBOL(__bforget
);
197 EXPORT_SYMBOL(ll_rw_block
);
198 EXPORT_SYMBOL(__wait_on_buffer
);
199 EXPORT_SYMBOL(___wait_on_page
);
200 EXPORT_SYMBOL(block_write_full_page
);
201 EXPORT_SYMBOL(block_read_full_page
);
202 EXPORT_SYMBOL(block_prepare_write
);
203 EXPORT_SYMBOL(block_sync_page
);
204 EXPORT_SYMBOL(cont_prepare_write
);
205 EXPORT_SYMBOL(generic_commit_write
);
206 EXPORT_SYMBOL(block_truncate_page
);
207 EXPORT_SYMBOL(generic_block_bmap
);
208 EXPORT_SYMBOL(generic_file_read
);
209 EXPORT_SYMBOL(do_generic_file_read
);
210 EXPORT_SYMBOL(generic_file_write
);
211 EXPORT_SYMBOL(generic_file_mmap
);
212 EXPORT_SYMBOL(generic_ro_fops
);
213 EXPORT_SYMBOL(generic_buffer_fdatasync
);
214 EXPORT_SYMBOL(page_hash_bits
);
215 EXPORT_SYMBOL(page_hash_table
);
216 EXPORT_SYMBOL(file_lock_list
);
217 EXPORT_SYMBOL(posix_lock_file
);
218 EXPORT_SYMBOL(posix_test_lock
);
219 EXPORT_SYMBOL(posix_block_lock
);
220 EXPORT_SYMBOL(posix_unblock_lock
);
221 EXPORT_SYMBOL(locks_mandatory_area
);
223 EXPORT_SYMBOL(have_submounts
);
224 EXPORT_SYMBOL(d_find_alias
);
225 EXPORT_SYMBOL(d_prune_aliases
);
226 EXPORT_SYMBOL(prune_dcache
);
227 EXPORT_SYMBOL(shrink_dcache_sb
);
228 EXPORT_SYMBOL(shrink_dcache_parent
);
229 EXPORT_SYMBOL(find_inode_number
);
230 EXPORT_SYMBOL(is_subdir
);
231 EXPORT_SYMBOL(get_unused_fd
);
232 EXPORT_SYMBOL(vfs_create
);
233 EXPORT_SYMBOL(vfs_mkdir
);
234 EXPORT_SYMBOL(vfs_mknod
);
235 EXPORT_SYMBOL(vfs_symlink
);
236 EXPORT_SYMBOL(vfs_link
);
237 EXPORT_SYMBOL(vfs_rmdir
);
238 EXPORT_SYMBOL(vfs_unlink
);
239 EXPORT_SYMBOL(vfs_rename
);
240 EXPORT_SYMBOL(vfs_statfs
);
241 EXPORT_SYMBOL(generic_read_dir
);
242 EXPORT_SYMBOL(__pollwait
);
243 EXPORT_SYMBOL(poll_freewait
);
244 EXPORT_SYMBOL(ROOT_DEV
);
245 EXPORT_SYMBOL(__find_get_page
);
246 EXPORT_SYMBOL(__find_lock_page
);
247 EXPORT_SYMBOL(grab_cache_page
);
248 EXPORT_SYMBOL(read_cache_page
);
249 EXPORT_SYMBOL(vfs_readlink
);
250 EXPORT_SYMBOL(vfs_follow_link
);
251 EXPORT_SYMBOL(page_readlink
);
252 EXPORT_SYMBOL(page_follow_link
);
253 EXPORT_SYMBOL(page_symlink_inode_operations
);
254 EXPORT_SYMBOL(block_symlink
);
255 EXPORT_SYMBOL(vfs_readdir
);
256 EXPORT_SYMBOL(dcache_readdir
);
258 /* for stackable file systems (lofs, wrapfs, cryptfs, etc.) */
259 EXPORT_SYMBOL(default_llseek
);
260 EXPORT_SYMBOL(dentry_open
);
261 EXPORT_SYMBOL(filemap_nopage
);
262 EXPORT_SYMBOL(filemap_swapout
);
263 EXPORT_SYMBOL(filemap_sync
);
264 EXPORT_SYMBOL(lock_page
);
266 /* device registration */
267 EXPORT_SYMBOL(register_chrdev
);
268 EXPORT_SYMBOL(unregister_chrdev
);
269 EXPORT_SYMBOL(register_blkdev
);
270 EXPORT_SYMBOL(unregister_blkdev
);
271 EXPORT_SYMBOL(tty_register_driver
);
272 EXPORT_SYMBOL(tty_unregister_driver
);
273 EXPORT_SYMBOL(tty_std_termios
);
275 /* block device driver support */
276 EXPORT_SYMBOL(block_read
);
277 EXPORT_SYMBOL(block_write
);
278 EXPORT_SYMBOL(blksize_size
);
279 EXPORT_SYMBOL(hardsect_size
);
280 EXPORT_SYMBOL(blk_size
);
281 EXPORT_SYMBOL(blk_dev
);
282 EXPORT_SYMBOL(is_read_only
);
283 EXPORT_SYMBOL(set_device_ro
);
285 EXPORT_SYMBOL(sync_dev
);
286 EXPORT_SYMBOL(devfs_register_partitions
);
287 EXPORT_SYMBOL(blkdev_open
);
288 EXPORT_SYMBOL(blkdev_get
);
289 EXPORT_SYMBOL(blkdev_put
);
290 EXPORT_SYMBOL(ioctl_by_bdev
);
291 EXPORT_SYMBOL(gendisk_head
);
292 EXPORT_SYMBOL(grok_partitions
);
293 EXPORT_SYMBOL(register_disk
);
294 EXPORT_SYMBOL(tq_disk
);
295 EXPORT_SYMBOL(init_buffer
);
296 EXPORT_SYMBOL(refile_buffer
);
297 EXPORT_SYMBOL(max_sectors
);
298 EXPORT_SYMBOL(max_readahead
);
299 EXPORT_SYMBOL(file_moveto
);
302 EXPORT_SYMBOL(tty_hangup
);
303 EXPORT_SYMBOL(tty_wait_until_sent
);
304 EXPORT_SYMBOL(tty_check_change
);
305 EXPORT_SYMBOL(tty_hung_up_p
);
306 EXPORT_SYMBOL(tty_flip_buffer_push
);
307 EXPORT_SYMBOL(tty_get_baud_rate
);
308 EXPORT_SYMBOL(do_SAK
);
309 EXPORT_SYMBOL(console_print
);
310 EXPORT_SYMBOL(console_loglevel
);
312 /* filesystem registration */
313 EXPORT_SYMBOL(register_filesystem
);
314 EXPORT_SYMBOL(unregister_filesystem
);
315 EXPORT_SYMBOL(kern_mount
);
316 EXPORT_SYMBOL(kern_umount
);
317 EXPORT_SYMBOL(may_umount
);
319 /* executable format registration */
320 EXPORT_SYMBOL(register_binfmt
);
321 EXPORT_SYMBOL(unregister_binfmt
);
322 EXPORT_SYMBOL(search_binary_handler
);
323 EXPORT_SYMBOL(prepare_binprm
);
324 EXPORT_SYMBOL(compute_creds
);
325 EXPORT_SYMBOL(remove_arg_zero
);
326 EXPORT_SYMBOL(set_binfmt
);
328 /* execution environment registration */
329 EXPORT_SYMBOL(register_exec_domain
);
330 EXPORT_SYMBOL(unregister_exec_domain
);
331 EXPORT_SYMBOL(__set_personality
);
333 /* sysctl table registration */
334 EXPORT_SYMBOL(register_sysctl_table
);
335 EXPORT_SYMBOL(unregister_sysctl_table
);
336 EXPORT_SYMBOL(sysctl_string
);
337 EXPORT_SYMBOL(sysctl_intvec
);
338 EXPORT_SYMBOL(proc_dostring
);
339 EXPORT_SYMBOL(proc_dointvec
);
340 EXPORT_SYMBOL(proc_dointvec_jiffies
);
341 EXPORT_SYMBOL(proc_dointvec_minmax
);
342 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax
);
343 EXPORT_SYMBOL(proc_doulongvec_minmax
);
345 /* interrupt handling */
346 EXPORT_SYMBOL(add_timer
);
347 EXPORT_SYMBOL(del_timer
);
348 EXPORT_SYMBOL(request_irq
);
349 EXPORT_SYMBOL(free_irq
);
350 #if !defined(CONFIG_ARCH_S390)
351 EXPORT_SYMBOL(irq_stat
); /* No separate irq_stat for s390, it is part of PSA */
354 /* waitqueue handling */
355 EXPORT_SYMBOL(add_wait_queue
);
356 EXPORT_SYMBOL(add_wait_queue_exclusive
);
357 EXPORT_SYMBOL(remove_wait_queue
);
359 /* The notion of irq probe/assignment is foreign to S/390 */
361 #if !defined(CONFIG_ARCH_S390)
362 EXPORT_SYMBOL(probe_irq_on
);
363 EXPORT_SYMBOL(probe_irq_off
);
364 EXPORT_SYMBOL(autoirq_setup
);
365 EXPORT_SYMBOL(autoirq_report
);
369 EXPORT_SYMBOL(del_timer_sync
);
371 EXPORT_SYMBOL(mod_timer
);
372 EXPORT_SYMBOL(tq_timer
);
373 EXPORT_SYMBOL(tq_immediate
);
374 EXPORT_SYMBOL(tq_scheduler
);
377 /* Various random spinlocks we want to export */
378 EXPORT_SYMBOL(tqueue_lock
);
380 /* Big-Reader lock implementation */
381 EXPORT_SYMBOL(__brlock_array
);
382 #ifndef __BRLOCK_USE_ATOMICS
383 EXPORT_SYMBOL(__br_write_locks
);
385 EXPORT_SYMBOL(__br_write_lock
);
386 EXPORT_SYMBOL(__br_write_unlock
);
390 EXPORT_SYMBOL(kiobuf_init
);
392 EXPORT_SYMBOL(alloc_kiovec
);
393 EXPORT_SYMBOL(free_kiovec
);
394 EXPORT_SYMBOL(expand_kiobuf
);
396 EXPORT_SYMBOL(map_user_kiobuf
);
397 EXPORT_SYMBOL(unmap_kiobuf
);
398 EXPORT_SYMBOL(lock_kiovec
);
399 EXPORT_SYMBOL(unlock_kiovec
);
400 EXPORT_SYMBOL(brw_kiovec
);
403 EXPORT_SYMBOL(request_dma
);
404 EXPORT_SYMBOL(free_dma
);
405 EXPORT_SYMBOL(dma_spin_lock
);
406 #ifdef HAVE_DISABLE_HLT
407 EXPORT_SYMBOL(disable_hlt
);
408 EXPORT_SYMBOL(enable_hlt
);
411 /* resource handling */
412 EXPORT_SYMBOL(request_resource
);
413 EXPORT_SYMBOL(release_resource
);
414 EXPORT_SYMBOL(allocate_resource
);
415 EXPORT_SYMBOL(check_resource
);
416 EXPORT_SYMBOL(__request_region
);
417 EXPORT_SYMBOL(__check_region
);
418 EXPORT_SYMBOL(__release_region
);
419 EXPORT_SYMBOL(ioport_resource
);
420 EXPORT_SYMBOL(iomem_resource
);
422 /* process management */
423 EXPORT_SYMBOL(__wake_up
);
424 EXPORT_SYMBOL(wake_up_process
);
425 EXPORT_SYMBOL(sleep_on
);
426 EXPORT_SYMBOL(sleep_on_timeout
);
427 EXPORT_SYMBOL(interruptible_sleep_on
);
428 EXPORT_SYMBOL(interruptible_sleep_on_timeout
);
429 EXPORT_SYMBOL(schedule
);
430 EXPORT_SYMBOL(schedule_timeout
);
431 EXPORT_SYMBOL(jiffies
);
432 EXPORT_SYMBOL(xtime
);
433 EXPORT_SYMBOL(do_gettimeofday
);
434 EXPORT_SYMBOL(do_settimeofday
);
436 EXPORT_SYMBOL(loops_per_sec
);
438 EXPORT_SYMBOL(kstat
);
439 EXPORT_SYMBOL(nr_running
);
442 EXPORT_SYMBOL(panic
);
443 EXPORT_SYMBOL(printk
);
444 EXPORT_SYMBOL(sprintf
);
445 EXPORT_SYMBOL(vsprintf
);
446 EXPORT_SYMBOL(kdevname
);
447 EXPORT_SYMBOL(bdevname
);
448 EXPORT_SYMBOL(cdevname
);
449 EXPORT_SYMBOL(simple_strtoul
);
450 EXPORT_SYMBOL(system_utsname
); /* UTS data */
451 EXPORT_SYMBOL(uts_sem
); /* UTS semaphore */
453 EXPORT_SYMBOL(sys_call_table
);
455 EXPORT_SYMBOL(machine_restart
);
456 EXPORT_SYMBOL(machine_halt
);
457 EXPORT_SYMBOL(machine_power_off
);
458 EXPORT_SYMBOL(_ctype
);
459 EXPORT_SYMBOL(secure_tcp_sequence_number
);
460 EXPORT_SYMBOL(get_random_bytes
);
461 EXPORT_SYMBOL(securebits
);
462 EXPORT_SYMBOL(cap_bset
);
463 EXPORT_SYMBOL(daemonize
);
465 /* Program loader interfaces */
466 EXPORT_SYMBOL(setup_arg_pages
);
467 EXPORT_SYMBOL(copy_strings_kernel
);
468 EXPORT_SYMBOL(do_execve
);
469 EXPORT_SYMBOL(flush_old_exec
);
470 EXPORT_SYMBOL(kernel_read
);
471 EXPORT_SYMBOL(open_exec
);
473 /* Miscellaneous access points */
474 EXPORT_SYMBOL(si_meminfo
);
476 /* Added to make file system as module */
477 EXPORT_SYMBOL(sys_tz
);
478 EXPORT_SYMBOL(__wait_on_super
);
479 EXPORT_SYMBOL(file_fsync
);
480 EXPORT_SYMBOL(clear_inode
);
481 EXPORT_SYMBOL(nr_async_pages
);
482 EXPORT_SYMBOL(___strtok
);
483 EXPORT_SYMBOL(init_special_inode
);
484 EXPORT_SYMBOL(read_ahead
);
485 EXPORT_SYMBOL(get_hash_table
);
486 EXPORT_SYMBOL(get_empty_inode
);
487 EXPORT_SYMBOL(insert_inode_hash
);
488 EXPORT_SYMBOL(remove_inode_hash
);
489 EXPORT_SYMBOL(make_bad_inode
);
490 EXPORT_SYMBOL(is_bad_inode
);
491 EXPORT_SYMBOL(event
);
492 EXPORT_SYMBOL(__down
);
493 EXPORT_SYMBOL(__down_interruptible
);
494 EXPORT_SYMBOL(__down_trylock
);
496 EXPORT_SYMBOL(brw_page
);
499 EXPORT_SYMBOL(overflowuid
);
500 EXPORT_SYMBOL(overflowgid
);
502 EXPORT_SYMBOL(fs_overflowuid
);
503 EXPORT_SYMBOL(fs_overflowgid
);
506 EXPORT_SYMBOL(fasync_helper
);
507 EXPORT_SYMBOL(kill_fasync
);
509 EXPORT_SYMBOL(disk_name
); /* for md.c */
512 EXPORT_SYMBOL(get_write_access
);
514 /* dynamic registering of consoles */
515 EXPORT_SYMBOL(register_console
);
516 EXPORT_SYMBOL(unregister_console
);
519 EXPORT_SYMBOL(get_fast_time
);
521 /* library functions */
522 EXPORT_SYMBOL(strnicmp
);
523 EXPORT_SYMBOL(strspn
);
524 EXPORT_SYMBOL(strsep
);
526 /* software interrupts */
527 EXPORT_SYMBOL(tasklet_hi_vec
);
528 EXPORT_SYMBOL(tasklet_vec
);
529 EXPORT_SYMBOL(bh_task_vec
);
530 EXPORT_SYMBOL(init_bh
);
531 EXPORT_SYMBOL(remove_bh
);
532 EXPORT_SYMBOL(tasklet_init
);
533 EXPORT_SYMBOL(tasklet_kill
);
535 /* init task, for moving kthread roots - ought to export a function ?? */
537 EXPORT_SYMBOL(init_task_union
);
539 EXPORT_SYMBOL(tasklist_lock
);
540 EXPORT_SYMBOL(pidhash
);