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