1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef SUNRPC_SVC_H 20 #define SUNRPC_SVC_H 21 #include <linux/in.h> 22 #include <linux/sunrpc/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <linux/sunrpc/xdr.h> 25 #include <linux/sunrpc/svcauth.h> 26 #include <linux/wait.h> 27 #include <linux/mm.h> 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 struct svc_serv { 30 struct list_head sv_threads; 31 struct list_head sv_sockets; 32 struct svc_program * sv_program; 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 struct svc_stat * sv_stats; 35 spinlock_t sv_lock; 36 unsigned int sv_nrthreads; 37 unsigned int sv_bufsz; 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 unsigned int sv_xdrsize; 40 struct list_head sv_permsocks; 41 struct list_head sv_tempsocks; 42 int sv_tmpcnt; 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 char * sv_name; 45 }; 46 #define RPCSVC_MAXPAYLOAD (64*1024u) 47 #define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE + 2) 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 struct svc_rqst { 50 struct list_head rq_list; 51 struct svc_sock * rq_sock; 52 struct sockaddr_in rq_addr; 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 int rq_addrlen; 55 struct svc_serv * rq_server; 56 struct svc_procedure * rq_procinfo; 57 struct auth_ops * rq_authop; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 struct svc_cred rq_cred; 60 struct sk_buff * rq_skbuff; 61 struct svc_deferred_req*rq_deferred; 62 struct xdr_buf rq_arg; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 struct xdr_buf rq_res; 65 struct page * rq_argpages[RPCSVC_MAXPAGES]; 66 struct page * rq_respages[RPCSVC_MAXPAGES]; 67 int rq_restailpage; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 short rq_argused; 70 short rq_arghi; 71 short rq_resused; 72 u32 rq_xid; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 u32 rq_prog; 75 u32 rq_vers; 76 u32 rq_proc; 77 u32 rq_prot; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 unsigned short 80 rq_secure : 1; 81 __u32 rq_daddr; 82 void * rq_argp; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 void * rq_resp; 85 void * rq_auth_data; 86 int rq_reserved; 87 struct cache_req rq_chandle; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 struct auth_domain * rq_client; 90 struct svc_cacherep * rq_cacherep; 91 struct knfsd_fh * rq_reffh; 92 int rq_sendfile_ok; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 wait_queue_head_t rq_wait; 95 }; 96 struct svc_deferred_req { 97 u32 prot; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 struct sockaddr_in addr; 100 struct svc_sock *svsk; 101 u32 daddr; 102 struct cache_deferred_req handle; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 int argslen; 105 u32 args[0]; 106 }; 107 struct svc_program { 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 struct svc_program * pg_next; 110 u32 pg_prog; 111 unsigned int pg_lovers; 112 unsigned int pg_hivers; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 unsigned int pg_nvers; 115 struct svc_version ** pg_vers; 116 char * pg_name; 117 char * pg_class; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 struct svc_stat * pg_stats; 120 int (*pg_authenticate)(struct svc_rqst *); 121 }; 122 struct svc_version { 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 u32 vs_vers; 125 u32 vs_nproc; 126 struct svc_procedure * vs_proc; 127 u32 vs_xdrsize; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 int (*vs_dispatch)(struct svc_rqst *, u32 *); 130 }; 131 typedef int (*svc_procfunc)(struct svc_rqst *, void *argp, void *resp); 132 struct svc_procedure { 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 svc_procfunc pc_func; 135 kxdrproc_t pc_decode; 136 kxdrproc_t pc_encode; 137 kxdrproc_t pc_release; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 unsigned int pc_argsize; 140 unsigned int pc_ressize; 141 unsigned int pc_count; 142 unsigned int pc_cachetype; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 unsigned int pc_xdrressize; 145 }; 146 typedef void (*svc_thread_fn)(struct svc_rqst *); 147 struct svc_serv * svc_create(struct svc_program *, unsigned int); 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 #endif 150