11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * linux/net/sunrpc/sunrpc_syms.c 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Symbols exported by the sunrpc module. 51da177e4SLinus Torvalds * 61da177e4SLinus Torvalds * Copyright (C) 1997 Olaf Kirch <okir@monad.swb.de> 71da177e4SLinus Torvalds */ 81da177e4SLinus Torvalds 91da177e4SLinus Torvalds #include <linux/module.h> 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds #include <linux/types.h> 121da177e4SLinus Torvalds #include <linux/uio.h> 131da177e4SLinus Torvalds #include <linux/unistd.h> 141da177e4SLinus Torvalds #include <linux/init.h> 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds #include <linux/sunrpc/sched.h> 171da177e4SLinus Torvalds #include <linux/sunrpc/clnt.h> 181da177e4SLinus Torvalds #include <linux/sunrpc/svc.h> 191da177e4SLinus Torvalds #include <linux/sunrpc/svcsock.h> 201da177e4SLinus Torvalds #include <linux/sunrpc/auth.h> 211da177e4SLinus Torvalds #include <linux/workqueue.h> 221da177e4SLinus Torvalds #include <linux/sunrpc/rpc_pipe_fs.h> 2349c36fccS\"Talpey, Thomas\ #include <linux/sunrpc/xprtsock.h> 241da177e4SLinus Torvalds 253fc605a2SNeilBrown extern struct cache_detail ip_map_cache, unix_gid_cache; 261da177e4SLinus Torvalds 271da177e4SLinus Torvalds static int __init 281da177e4SLinus Torvalds init_sunrpc(void) 291da177e4SLinus Torvalds { 301da177e4SLinus Torvalds int err = register_rpc_pipefs(); 311da177e4SLinus Torvalds if (err) 321da177e4SLinus Torvalds goto out; 335bd5f581SAkinobu Mita err = rpc_init_mempool(); 345bd5f581SAkinobu Mita if (err) { 355bd5f581SAkinobu Mita unregister_rpc_pipefs(); 361da177e4SLinus Torvalds goto out; 375bd5f581SAkinobu Mita } 381da177e4SLinus Torvalds #ifdef RPC_DEBUG 391da177e4SLinus Torvalds rpc_register_sysctl(); 401da177e4SLinus Torvalds #endif 411da177e4SLinus Torvalds #ifdef CONFIG_PROC_FS 421da177e4SLinus Torvalds rpc_proc_init(); 431da177e4SLinus Torvalds #endif 441da177e4SLinus Torvalds cache_register(&ip_map_cache); 453fc605a2SNeilBrown cache_register(&unix_gid_cache); 46360d8738STom Tucker svc_init_xprt_sock(); /* svc sock transport */ 47360d8738STom Tucker init_socket_xprt(); /* clnt sock transport */ 48f5c2187cSTrond Myklebust rpcauth_init_module(); 491da177e4SLinus Torvalds out: 501da177e4SLinus Torvalds return err; 511da177e4SLinus Torvalds } 521da177e4SLinus Torvalds 531da177e4SLinus Torvalds static void __exit 541da177e4SLinus Torvalds cleanup_sunrpc(void) 551da177e4SLinus Torvalds { 56f5c2187cSTrond Myklebust rpcauth_remove_module(); 57282b32e1SChuck Lever cleanup_socket_xprt(); 58360d8738STom Tucker svc_cleanup_xprt_sock(); 591da177e4SLinus Torvalds unregister_rpc_pipefs(); 601da177e4SLinus Torvalds rpc_destroy_mempool(); 61df95a9d4SJ. Bruce Fields cache_unregister(&ip_map_cache); 62df95a9d4SJ. Bruce Fields cache_unregister(&unix_gid_cache); 631da177e4SLinus Torvalds #ifdef RPC_DEBUG 641da177e4SLinus Torvalds rpc_unregister_sysctl(); 651da177e4SLinus Torvalds #endif 661da177e4SLinus Torvalds #ifdef CONFIG_PROC_FS 671da177e4SLinus Torvalds rpc_proc_exit(); 681da177e4SLinus Torvalds #endif 6975de874fSJesper Dangaard Brouer rcu_barrier(); /* Wait for completion of call_rcu()'s */ 701da177e4SLinus Torvalds } 711da177e4SLinus Torvalds MODULE_LICENSE("GPL"); 72405d8f8bSTrond Myklebust fs_initcall(init_sunrpc); /* Ensure we're initialised before nfs */ 731da177e4SLinus Torvalds module_exit(cleanup_sunrpc); 74