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 */
29struct 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 */
49struct 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};
96struct 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};
107struct 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};
122struct 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};
131typedef int (*svc_procfunc)(struct svc_rqst *, void *argp, void *resp);
132struct 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};
146typedef void (*svc_thread_fn)(struct svc_rqst *);
147struct svc_serv * svc_create(struct svc_program *, unsigned int);
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149#endif
150