1 /* 2 * linux/net/sunrpc/sunrpc_syms.c 3 * 4 * Symbols exported by the sunrpc module. 5 * 6 * Copyright (C) 1997 Olaf Kirch <okir@monad.swb.de> 7 */ 8 9 #include <linux/module.h> 10 11 #include <linux/types.h> 12 #include <linux/uio.h> 13 #include <linux/unistd.h> 14 #include <linux/init.h> 15 16 #include <linux/sunrpc/sched.h> 17 #include <linux/sunrpc/clnt.h> 18 #include <linux/sunrpc/svc.h> 19 #include <linux/sunrpc/svcsock.h> 20 #include <linux/sunrpc/auth.h> 21 #include <linux/workqueue.h> 22 #include <linux/sunrpc/rpc_pipe_fs.h> 23 #include <linux/sunrpc/xprtsock.h> 24 25 extern struct cache_detail ip_map_cache, unix_gid_cache; 26 27 extern void cleanup_rpcb_clnt(void); 28 29 static int __init 30 init_sunrpc(void) 31 { 32 int err = register_rpc_pipefs(); 33 if (err) 34 goto out; 35 err = rpc_init_mempool(); 36 if (err) { 37 unregister_rpc_pipefs(); 38 goto out; 39 } 40 #ifdef RPC_DEBUG 41 rpc_register_sysctl(); 42 #endif 43 #ifdef CONFIG_PROC_FS 44 rpc_proc_init(); 45 #endif 46 cache_register(&ip_map_cache); 47 cache_register(&unix_gid_cache); 48 svc_init_xprt_sock(); /* svc sock transport */ 49 init_socket_xprt(); /* clnt sock transport */ 50 rpcauth_init_module(); 51 out: 52 return err; 53 } 54 55 static void __exit 56 cleanup_sunrpc(void) 57 { 58 cleanup_rpcb_clnt(); 59 rpcauth_remove_module(); 60 cleanup_socket_xprt(); 61 svc_cleanup_xprt_sock(); 62 unregister_rpc_pipefs(); 63 rpc_destroy_mempool(); 64 cache_unregister(&ip_map_cache); 65 cache_unregister(&unix_gid_cache); 66 #ifdef RPC_DEBUG 67 rpc_unregister_sysctl(); 68 #endif 69 #ifdef CONFIG_PROC_FS 70 rpc_proc_exit(); 71 #endif 72 rcu_barrier(); /* Wait for completion of call_rcu()'s */ 73 } 74 MODULE_LICENSE("GPL"); 75 fs_initcall(init_sunrpc); /* Ensure we're initialised before nfs */ 76 module_exit(cleanup_sunrpc); 77