Blame


1 2277c5d7 2004-03-21 devnull /*
2 2277c5d7 2004-03-21 devnull * Sun RPC; see RFC 1057
3 2277c5d7 2004-03-21 devnull */
4 2277c5d7 2004-03-21 devnull
5 2277c5d7 2004-03-21 devnull /*
6 2277c5d7 2004-03-21 devnull #pragma lib "libsunrpc.a"
7 2277c5d7 2004-03-21 devnull #pragma src "/sys/src/libsunrpc"
8 2277c5d7 2004-03-21 devnull */
9 2277c5d7 2004-03-21 devnull
10 2277c5d7 2004-03-21 devnull typedef uchar u1int;
11 2277c5d7 2004-03-21 devnull
12 2277c5d7 2004-03-21 devnull typedef struct SunAuthInfo SunAuthInfo;
13 2277c5d7 2004-03-21 devnull typedef struct SunAuthUnix SunAuthUnix;
14 2277c5d7 2004-03-21 devnull typedef struct SunRpc SunRpc;
15 2277c5d7 2004-03-21 devnull typedef struct SunCall SunCall;
16 2277c5d7 2004-03-21 devnull
17 2277c5d7 2004-03-21 devnull enum
18 2277c5d7 2004-03-21 devnull {
19 2277c5d7 2004-03-21 devnull /* Authinfo.flavor */
20 2277c5d7 2004-03-21 devnull SunAuthNone = 0,
21 2277c5d7 2004-03-21 devnull SunAuthSys,
22 2277c5d7 2004-03-21 devnull SunAuthShort,
23 2277c5d7 2004-03-21 devnull SunAuthDes,
24 2277c5d7 2004-03-21 devnull };
25 2277c5d7 2004-03-21 devnull
26 2277c5d7 2004-03-21 devnull typedef enum {
27 2277c5d7 2004-03-21 devnull SunAcceptError = 0x10000,
28 2277c5d7 2004-03-21 devnull SunRejectError = 0x20000,
29 2277c5d7 2004-03-21 devnull SunAuthError = 0x40000,
30 2277c5d7 2004-03-21 devnull
31 2277c5d7 2004-03-21 devnull /* Reply.status */
32 2277c5d7 2004-03-21 devnull SunSuccess = 0,
33 2277c5d7 2004-03-21 devnull
34 2277c5d7 2004-03-21 devnull SunProgUnavail = SunAcceptError | 1,
35 2277c5d7 2004-03-21 devnull SunProgMismatch,
36 2277c5d7 2004-03-21 devnull SunProcUnavail,
37 2277c5d7 2004-03-21 devnull SunGarbageArgs,
38 2277c5d7 2004-03-21 devnull SunSystemErr,
39 2277c5d7 2004-03-21 devnull
40 2277c5d7 2004-03-21 devnull SunRpcMismatch = SunRejectError | 0,
41 2277c5d7 2004-03-21 devnull
42 2277c5d7 2004-03-21 devnull SunAuthBadCred = SunAuthError | 1,
43 2277c5d7 2004-03-21 devnull SunAuthRejectedCred,
44 2277c5d7 2004-03-21 devnull SunAuthBadVerf,
45 2277c5d7 2004-03-21 devnull SunAuthRejectedVerf,
46 2277c5d7 2004-03-21 devnull SunAuthTooWeak,
47 2277c5d7 2004-03-21 devnull SunAuthInvalidResp,
48 2277c5d7 2004-03-21 devnull SunAuthFailed,
49 2277c5d7 2004-03-21 devnull } SunStatus;
50 2277c5d7 2004-03-21 devnull
51 2277c5d7 2004-03-21 devnull struct SunAuthInfo
52 2277c5d7 2004-03-21 devnull {
53 2277c5d7 2004-03-21 devnull uint flavor;
54 2277c5d7 2004-03-21 devnull uchar *data;
55 2277c5d7 2004-03-21 devnull uint ndata;
56 2277c5d7 2004-03-21 devnull };
57 2277c5d7 2004-03-21 devnull
58 2277c5d7 2004-03-21 devnull struct SunAuthUnix
59 2277c5d7 2004-03-21 devnull {
60 2277c5d7 2004-03-21 devnull u32int stamp;
61 2277c5d7 2004-03-21 devnull char *sysname;
62 2277c5d7 2004-03-21 devnull u32int uid;
63 2277c5d7 2004-03-21 devnull u32int gid;
64 2277c5d7 2004-03-21 devnull u32int g[16];
65 2277c5d7 2004-03-21 devnull u32int ng;
66 2277c5d7 2004-03-21 devnull };
67 2277c5d7 2004-03-21 devnull
68 2277c5d7 2004-03-21 devnull struct SunRpc
69 2277c5d7 2004-03-21 devnull {
70 2277c5d7 2004-03-21 devnull u32int xid;
71 2277c5d7 2004-03-21 devnull uint iscall;
72 2277c5d7 2004-03-21 devnull
73 2277c5d7 2004-03-21 devnull /*
74 2277c5d7 2004-03-21 devnull * only sent on wire in call
75 2277c5d7 2004-03-21 devnull * caller fills in for the reply unpackers.
76 2277c5d7 2004-03-21 devnull */
77 2277c5d7 2004-03-21 devnull u32int proc;
78 2277c5d7 2004-03-21 devnull
79 2277c5d7 2004-03-21 devnull /* call */
80 2277c5d7 2004-03-21 devnull // uint proc;
81 2277c5d7 2004-03-21 devnull u32int prog, vers;
82 2277c5d7 2004-03-21 devnull SunAuthInfo cred;
83 2277c5d7 2004-03-21 devnull SunAuthInfo verf;
84 2277c5d7 2004-03-21 devnull uchar *data;
85 2277c5d7 2004-03-21 devnull uint ndata;
86 2277c5d7 2004-03-21 devnull
87 2277c5d7 2004-03-21 devnull /* reply */
88 2277c5d7 2004-03-21 devnull u32int status;
89 2277c5d7 2004-03-21 devnull // SunAuthInfo verf;
90 2277c5d7 2004-03-21 devnull u32int low, high;
91 2277c5d7 2004-03-21 devnull // uchar *data;
92 2277c5d7 2004-03-21 devnull // uint ndata;
93 2277c5d7 2004-03-21 devnull };
94 2277c5d7 2004-03-21 devnull
95 2277c5d7 2004-03-21 devnull typedef enum
96 2277c5d7 2004-03-21 devnull {
97 2277c5d7 2004-03-21 devnull SunCallTypeTNull,
98 2277c5d7 2004-03-21 devnull SunCallTypeRNull,
99 2277c5d7 2004-03-21 devnull } SunCallType;
100 2277c5d7 2004-03-21 devnull
101 2277c5d7 2004-03-21 devnull struct SunCall
102 2277c5d7 2004-03-21 devnull {
103 2277c5d7 2004-03-21 devnull SunRpc rpc;
104 2277c5d7 2004-03-21 devnull SunCallType type;
105 2277c5d7 2004-03-21 devnull };
106 2277c5d7 2004-03-21 devnull
107 2277c5d7 2004-03-21 devnull void sunerrstr(SunStatus);
108 2277c5d7 2004-03-21 devnull
109 2277c5d7 2004-03-21 devnull void sunrpcprint(Fmt*, SunRpc*);
110 2277c5d7 2004-03-21 devnull uint sunrpcsize(SunRpc*);
111 2277c5d7 2004-03-21 devnull SunStatus sunrpcpack(uchar*, uchar*, uchar**, SunRpc*);
112 2277c5d7 2004-03-21 devnull SunStatus sunrpcunpack(uchar*, uchar*, uchar**, SunRpc*);
113 2277c5d7 2004-03-21 devnull
114 2277c5d7 2004-03-21 devnull void sunauthinfoprint(Fmt*, SunAuthInfo*);
115 2277c5d7 2004-03-21 devnull uint sunauthinfosize(SunAuthInfo*);
116 2277c5d7 2004-03-21 devnull int sunauthinfopack(uchar*, uchar*, uchar**, SunAuthInfo*);
117 2277c5d7 2004-03-21 devnull int sunauthinfounpack(uchar*, uchar*, uchar**, SunAuthInfo*);
118 2277c5d7 2004-03-21 devnull
119 2277c5d7 2004-03-21 devnull void sunauthunixprint(Fmt*, SunAuthUnix*);
120 2277c5d7 2004-03-21 devnull uint sunauthunixsize(SunAuthUnix*);
121 2277c5d7 2004-03-21 devnull int sunauthunixpack(uchar*, uchar*, uchar**, SunAuthUnix*);
122 2277c5d7 2004-03-21 devnull int sunauthunixunpack(uchar*, uchar*, uchar**, SunAuthUnix*);
123 2277c5d7 2004-03-21 devnull
124 2277c5d7 2004-03-21 devnull int sunenumpack(uchar*, uchar*, uchar**, int*);
125 2277c5d7 2004-03-21 devnull int sunenumunpack(uchar*, uchar*, uchar**, int*);
126 2277c5d7 2004-03-21 devnull int sunuint1pack(uchar*, uchar*, uchar**, u1int*);
127 2277c5d7 2004-03-21 devnull int sunuint1unpack(uchar*, uchar*, uchar**, u1int*);
128 2277c5d7 2004-03-21 devnull
129 2277c5d7 2004-03-21 devnull int sunstringpack(uchar*, uchar*, uchar**, char**, u32int);
130 2277c5d7 2004-03-21 devnull int sunstringunpack(uchar*, uchar*, uchar**, char**, u32int);
131 2277c5d7 2004-03-21 devnull uint sunstringsize(char*);
132 2277c5d7 2004-03-21 devnull
133 2277c5d7 2004-03-21 devnull int sunuint32pack(uchar*, uchar*, uchar**, u32int*);
134 2277c5d7 2004-03-21 devnull int sunuint32unpack(uchar*, uchar*, uchar**, u32int*);
135 2277c5d7 2004-03-21 devnull int sunuint64pack(uchar*, uchar*, uchar**, u64int*);
136 2277c5d7 2004-03-21 devnull int sunuint64unpack(uchar*, uchar*, uchar**, u64int*);
137 2277c5d7 2004-03-21 devnull
138 2277c5d7 2004-03-21 devnull int sunvaropaquepack(uchar*, uchar*, uchar**, uchar**, u32int*, u32int);
139 2277c5d7 2004-03-21 devnull int sunvaropaqueunpack(uchar*, uchar*, uchar**, uchar**, u32int*, u32int);
140 2277c5d7 2004-03-21 devnull uint sunvaropaquesize(u32int);
141 2277c5d7 2004-03-21 devnull
142 2277c5d7 2004-03-21 devnull int sunfixedopaquepack(uchar*, uchar*, uchar**, uchar*, u32int);
143 2277c5d7 2004-03-21 devnull int sunfixedopaqueunpack(uchar*, uchar*, uchar**, uchar*, u32int);
144 2277c5d7 2004-03-21 devnull uint sunfixedopaquesize(u32int);
145 2277c5d7 2004-03-21 devnull
146 2277c5d7 2004-03-21 devnull /*
147 2277c5d7 2004-03-21 devnull * Sun RPC Program
148 2277c5d7 2004-03-21 devnull */
149 2277c5d7 2004-03-21 devnull typedef struct SunProc SunProc;
150 2277c5d7 2004-03-21 devnull typedef struct SunProg SunProg;
151 2277c5d7 2004-03-21 devnull struct SunProg
152 2277c5d7 2004-03-21 devnull {
153 2277c5d7 2004-03-21 devnull uint prog;
154 2277c5d7 2004-03-21 devnull uint vers;
155 2277c5d7 2004-03-21 devnull SunProc *proc;
156 2277c5d7 2004-03-21 devnull int nproc;
157 2277c5d7 2004-03-21 devnull };
158 2277c5d7 2004-03-21 devnull
159 2277c5d7 2004-03-21 devnull struct SunProc
160 2277c5d7 2004-03-21 devnull {
161 2277c5d7 2004-03-21 devnull int (*pack)(uchar*, uchar*, uchar**, SunCall*);
162 2277c5d7 2004-03-21 devnull int (*unpack)(uchar*, uchar*, uchar**, SunCall*);
163 2277c5d7 2004-03-21 devnull uint (*size)(SunCall*);
164 2277c5d7 2004-03-21 devnull void (*fmt)(Fmt*, SunCall*);
165 2277c5d7 2004-03-21 devnull uint sizeoftype;
166 2277c5d7 2004-03-21 devnull };
167 2277c5d7 2004-03-21 devnull
168 2277c5d7 2004-03-21 devnull SunStatus suncallpack(SunProg*, uchar*, uchar*, uchar**, SunCall*);
169 2277c5d7 2004-03-21 devnull SunStatus suncallunpack(SunProg*, uchar*, uchar*, uchar**, SunCall*);
170 2277c5d7 2004-03-21 devnull SunStatus suncallunpackalloc(SunProg*, SunCallType, uchar*, uchar*, uchar**, SunCall**);
171 2277c5d7 2004-03-21 devnull void suncallsetup(SunCall*, SunProg*, uint);
172 2277c5d7 2004-03-21 devnull uint suncallsize(SunProg*, SunCall*);
173 2277c5d7 2004-03-21 devnull
174 2277c5d7 2004-03-21 devnull /*
175 2277c5d7 2004-03-21 devnull * Formatting
176 2277c5d7 2004-03-21 devnull #pragma varargck type "B" SunRpc*
177 2277c5d7 2004-03-21 devnull #pragma varargck type "C" SunCall*
178 2277c5d7 2004-03-21 devnull */
179 2277c5d7 2004-03-21 devnull
180 2277c5d7 2004-03-21 devnull int sunrpcfmt(Fmt*);
181 2277c5d7 2004-03-21 devnull int suncallfmt(Fmt*);
182 2277c5d7 2004-03-21 devnull void sunfmtinstall(SunProg*);
183 2277c5d7 2004-03-21 devnull
184 2277c5d7 2004-03-21 devnull
185 2277c5d7 2004-03-21 devnull /*
186 2277c5d7 2004-03-21 devnull * Sun RPC Server
187 2277c5d7 2004-03-21 devnull */
188 2277c5d7 2004-03-21 devnull typedef struct SunMsg SunMsg;
189 2277c5d7 2004-03-21 devnull typedef struct SunSrv SunSrv;
190 2277c5d7 2004-03-21 devnull
191 2277c5d7 2004-03-21 devnull enum
192 2277c5d7 2004-03-21 devnull {
193 2277c5d7 2004-03-21 devnull SunStackSize = 32768,
194 2277c5d7 2004-03-21 devnull };
195 2277c5d7 2004-03-21 devnull
196 2277c5d7 2004-03-21 devnull struct SunMsg
197 2277c5d7 2004-03-21 devnull {
198 2277c5d7 2004-03-21 devnull uchar *data;
199 2277c5d7 2004-03-21 devnull int count;
200 2277c5d7 2004-03-21 devnull SunSrv *srv;
201 2277c5d7 2004-03-21 devnull SunRpc rpc;
202 2277c5d7 2004-03-21 devnull SunProg *pg;
203 2277c5d7 2004-03-21 devnull SunCall *call;
204 2277c5d7 2004-03-21 devnull Channel *creply; /* chan(SunMsg*) */
205 2277c5d7 2004-03-21 devnull };
206 2277c5d7 2004-03-21 devnull
207 2277c5d7 2004-03-21 devnull struct SunSrv
208 2277c5d7 2004-03-21 devnull {
209 2277c5d7 2004-03-21 devnull int chatty;
210 2277c5d7 2004-03-21 devnull int cachereplies;
211 2277c5d7 2004-03-21 devnull int alwaysreject;
212 2277c5d7 2004-03-21 devnull int localonly;
213 2277c5d7 2004-03-21 devnull int localparanoia;
214 2277c5d7 2004-03-21 devnull SunProg **map;
215 2277c5d7 2004-03-21 devnull Channel *crequest;
216 2277c5d7 2004-03-21 devnull
217 2277c5d7 2004-03-21 devnull /* implementation use only */
218 2277c5d7 2004-03-21 devnull Channel **cdispatch;
219 2277c5d7 2004-03-21 devnull SunProg **prog;
220 2277c5d7 2004-03-21 devnull int nprog;
221 2277c5d7 2004-03-21 devnull void *cache;
222 2277c5d7 2004-03-21 devnull Channel *creply;
223 2277c5d7 2004-03-21 devnull Channel *cthread;
224 2277c5d7 2004-03-21 devnull };
225 2277c5d7 2004-03-21 devnull
226 2277c5d7 2004-03-21 devnull SunSrv *sunsrv(void);
227 2277c5d7 2004-03-21 devnull
228 2277c5d7 2004-03-21 devnull void sunsrvprog(SunSrv *srv, SunProg *prog, Channel *c);
229 2277c5d7 2004-03-21 devnull int sunsrvannounce(SunSrv *srv, char *address);
230 2277c5d7 2004-03-21 devnull int sunsrvudp(SunSrv *srv, char *address);
231 2277c5d7 2004-03-21 devnull int sunsrvnet(SunSrv *srv, char *address);
232 2277c5d7 2004-03-21 devnull int sunsrvfd(SunSrv *srv, int fd);
233 2277c5d7 2004-03-21 devnull void sunsrvthreadcreate(SunSrv *srv, void (*fn)(void*), void*);
234 2277c5d7 2004-03-21 devnull void sunsrvclose(SunSrv*);
235 2277c5d7 2004-03-21 devnull
236 2277c5d7 2004-03-21 devnull int sunmsgreply(SunMsg*, SunCall*);
237 2277c5d7 2004-03-21 devnull int sunmsgdrop(SunMsg*);
238 2277c5d7 2004-03-21 devnull int sunmsgreplyerror(SunMsg*, SunStatus);
239 2277c5d7 2004-03-21 devnull
240 2277c5d7 2004-03-21 devnull /*
241 2277c5d7 2004-03-21 devnull * Sun RPC Client
242 2277c5d7 2004-03-21 devnull */
243 2277c5d7 2004-03-21 devnull typedef struct SunClient SunClient;
244 2277c5d7 2004-03-21 devnull
245 2277c5d7 2004-03-21 devnull struct SunClient
246 2277c5d7 2004-03-21 devnull {
247 2277c5d7 2004-03-21 devnull int fd;
248 2277c5d7 2004-03-21 devnull int chatty;
249 2277c5d7 2004-03-21 devnull int needcount;
250 2277c5d7 2004-03-21 devnull ulong maxwait;
251 2277c5d7 2004-03-21 devnull ulong xidgen;
252 2277c5d7 2004-03-21 devnull int nsend;
253 2277c5d7 2004-03-21 devnull int nresend;
254 2277c5d7 2004-03-21 devnull struct {
255 2277c5d7 2004-03-21 devnull ulong min;
256 2277c5d7 2004-03-21 devnull ulong max;
257 2277c5d7 2004-03-21 devnull ulong avg;
258 2277c5d7 2004-03-21 devnull } rtt;
259 2277c5d7 2004-03-21 devnull Channel *dying;
260 2277c5d7 2004-03-21 devnull Channel *rpcchan;
261 2277c5d7 2004-03-21 devnull Channel *timerchan;
262 2277c5d7 2004-03-21 devnull Channel *flushchan;
263 2277c5d7 2004-03-21 devnull Channel *readchan;
264 2277c5d7 2004-03-21 devnull SunProg **prog;
265 2277c5d7 2004-03-21 devnull int nprog;
266 2277c5d7 2004-03-21 devnull int timertid;
267 2277c5d7 2004-03-21 devnull int nettid;
268 2277c5d7 2004-03-21 devnull };
269 2277c5d7 2004-03-21 devnull
270 2277c5d7 2004-03-21 devnull SunClient *sundial(char*);
271 2277c5d7 2004-03-21 devnull
272 2277c5d7 2004-03-21 devnull int sunclientrpc(SunClient*, ulong, SunCall*, SunCall*, uchar**);
273 2277c5d7 2004-03-21 devnull void sunclientclose(SunClient*);
274 2277c5d7 2004-03-21 devnull void sunclientflushrpc(SunClient*, ulong);
275 2277c5d7 2004-03-21 devnull void sunclientprog(SunClient*, SunProg*);
276 2277c5d7 2004-03-21 devnull
277 2277c5d7 2004-03-21 devnull
278 2277c5d7 2004-03-21 devnull /*
279 2277c5d7 2004-03-21 devnull * Provided by callers.
280 2277c5d7 2004-03-21 devnull * Should remove dependence on this, but hard.
281 2277c5d7 2004-03-21 devnull */
282 2277c5d7 2004-03-21 devnull void *emalloc(ulong);
283 2277c5d7 2004-03-21 devnull void *erealloc(void*, ulong);
284 2277c5d7 2004-03-21 devnull
285 2277c5d7 2004-03-21 devnull
286 2277c5d7 2004-03-21 devnull /*
287 2277c5d7 2004-03-21 devnull * Sun RPC port mapper; see RFC 1057 Appendix A
288 2277c5d7 2004-03-21 devnull */
289 2277c5d7 2004-03-21 devnull
290 2277c5d7 2004-03-21 devnull typedef struct PortMap PortMap;
291 2277c5d7 2004-03-21 devnull typedef struct PortTNull PortTNull;
292 2277c5d7 2004-03-21 devnull typedef struct PortRNull PortRNull;
293 2277c5d7 2004-03-21 devnull typedef struct PortTSet PortTSet;
294 2277c5d7 2004-03-21 devnull typedef struct PortRSet PortRSet;
295 2277c5d7 2004-03-21 devnull typedef struct PortTUnset PortTUnset;
296 2277c5d7 2004-03-21 devnull typedef struct PortRUnset PortRUnset;
297 2277c5d7 2004-03-21 devnull typedef struct PortTGetport PortTGetport;
298 2277c5d7 2004-03-21 devnull typedef struct PortRGetport PortRGetport;
299 2277c5d7 2004-03-21 devnull typedef struct PortTDump PortTDump;
300 2277c5d7 2004-03-21 devnull typedef struct PortRDump PortRDump;
301 2277c5d7 2004-03-21 devnull typedef struct PortTCallit PortTCallit;
302 2277c5d7 2004-03-21 devnull typedef struct PortRCallit PortRCallit;
303 2277c5d7 2004-03-21 devnull
304 2277c5d7 2004-03-21 devnull typedef enum
305 2277c5d7 2004-03-21 devnull {
306 2277c5d7 2004-03-21 devnull PortCallTNull,
307 2277c5d7 2004-03-21 devnull PortCallRNull,
308 2277c5d7 2004-03-21 devnull PortCallTSet,
309 2277c5d7 2004-03-21 devnull PortCallRSet,
310 2277c5d7 2004-03-21 devnull PortCallTUnset,
311 2277c5d7 2004-03-21 devnull PortCallRUnset,
312 2277c5d7 2004-03-21 devnull PortCallTGetport,
313 2277c5d7 2004-03-21 devnull PortCallRGetport,
314 2277c5d7 2004-03-21 devnull PortCallTDump,
315 2277c5d7 2004-03-21 devnull PortCallRDump,
316 2277c5d7 2004-03-21 devnull PortCallTCallit,
317 2277c5d7 2004-03-21 devnull PortCallRCallit,
318 2277c5d7 2004-03-21 devnull } PortCallType;
319 2277c5d7 2004-03-21 devnull
320 2277c5d7 2004-03-21 devnull enum
321 2277c5d7 2004-03-21 devnull {
322 2277c5d7 2004-03-21 devnull PortProgram = 100000,
323 2277c5d7 2004-03-21 devnull PortVersion = 2,
324 2277c5d7 2004-03-21 devnull
325 2277c5d7 2004-03-21 devnull PortProtoTcp = 6, /* protocol number for TCP/IP */
326 2277c5d7 2004-03-21 devnull PortProtoUdp = 17 /* protocol number for UDP/IP */
327 2277c5d7 2004-03-21 devnull };
328 2277c5d7 2004-03-21 devnull
329 2277c5d7 2004-03-21 devnull struct PortMap {
330 2277c5d7 2004-03-21 devnull u32int prog;
331 2277c5d7 2004-03-21 devnull u32int vers;
332 2277c5d7 2004-03-21 devnull u32int prot;
333 2277c5d7 2004-03-21 devnull u32int port;
334 2277c5d7 2004-03-21 devnull };
335 2277c5d7 2004-03-21 devnull
336 2277c5d7 2004-03-21 devnull struct PortTNull {
337 2277c5d7 2004-03-21 devnull SunCall call;
338 2277c5d7 2004-03-21 devnull };
339 2277c5d7 2004-03-21 devnull
340 2277c5d7 2004-03-21 devnull struct PortRNull {
341 2277c5d7 2004-03-21 devnull SunCall call;
342 2277c5d7 2004-03-21 devnull };
343 2277c5d7 2004-03-21 devnull
344 2277c5d7 2004-03-21 devnull struct PortTSet {
345 2277c5d7 2004-03-21 devnull SunCall call;
346 2277c5d7 2004-03-21 devnull PortMap map;
347 2277c5d7 2004-03-21 devnull };
348 2277c5d7 2004-03-21 devnull
349 2277c5d7 2004-03-21 devnull struct PortRSet {
350 2277c5d7 2004-03-21 devnull SunCall call;
351 2277c5d7 2004-03-21 devnull u1int b;
352 2277c5d7 2004-03-21 devnull };
353 2277c5d7 2004-03-21 devnull
354 2277c5d7 2004-03-21 devnull struct PortTUnset {
355 2277c5d7 2004-03-21 devnull SunCall call;
356 2277c5d7 2004-03-21 devnull PortMap map;
357 2277c5d7 2004-03-21 devnull };
358 2277c5d7 2004-03-21 devnull
359 2277c5d7 2004-03-21 devnull struct PortRUnset {
360 2277c5d7 2004-03-21 devnull SunCall call;
361 2277c5d7 2004-03-21 devnull u1int b;
362 2277c5d7 2004-03-21 devnull };
363 2277c5d7 2004-03-21 devnull
364 2277c5d7 2004-03-21 devnull struct PortTGetport {
365 2277c5d7 2004-03-21 devnull SunCall call;
366 2277c5d7 2004-03-21 devnull PortMap map;
367 2277c5d7 2004-03-21 devnull };
368 2277c5d7 2004-03-21 devnull
369 2277c5d7 2004-03-21 devnull struct PortRGetport {
370 2277c5d7 2004-03-21 devnull SunCall call;
371 2277c5d7 2004-03-21 devnull u32int port;
372 2277c5d7 2004-03-21 devnull };
373 2277c5d7 2004-03-21 devnull
374 2277c5d7 2004-03-21 devnull struct PortTDump {
375 2277c5d7 2004-03-21 devnull SunCall call;
376 2277c5d7 2004-03-21 devnull };
377 2277c5d7 2004-03-21 devnull
378 2277c5d7 2004-03-21 devnull struct PortRDump {
379 2277c5d7 2004-03-21 devnull SunCall call;
380 2277c5d7 2004-03-21 devnull PortMap *map;
381 2277c5d7 2004-03-21 devnull int nmap;
382 2277c5d7 2004-03-21 devnull };
383 2277c5d7 2004-03-21 devnull
384 2277c5d7 2004-03-21 devnull struct PortTCallit {
385 2277c5d7 2004-03-21 devnull SunCall call;
386 2277c5d7 2004-03-21 devnull u32int prog;
387 2277c5d7 2004-03-21 devnull u32int vers;
388 2277c5d7 2004-03-21 devnull u32int proc;
389 2277c5d7 2004-03-21 devnull uchar *data;
390 2277c5d7 2004-03-21 devnull u32int count;
391 2277c5d7 2004-03-21 devnull };
392 2277c5d7 2004-03-21 devnull
393 2277c5d7 2004-03-21 devnull struct PortRCallit {
394 2277c5d7 2004-03-21 devnull SunCall call;
395 2277c5d7 2004-03-21 devnull u32int port;
396 2277c5d7 2004-03-21 devnull uchar *data;
397 2277c5d7 2004-03-21 devnull u32int count;
398 2277c5d7 2004-03-21 devnull };
399 2277c5d7 2004-03-21 devnull
400 2277c5d7 2004-03-21 devnull extern SunProg portprog;