Deleted Added
full compact
pmap_prot.x (97406) pmap_prot.x (114629)
1%/*
2% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3% * unrestricted use provided that this legend is included on all tape
4% * media and as a part of the software program in whole or part. Users
5% * may copy or modify Sun RPC without charge, but are not authorized
6% * to license or distribute it to anyone else except as part of a product or
7% * program developed by the user.
8% *
9% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12% *
13% * Sun RPC is provided with no support and without any obligation on the
14% * part of Sun Microsystems, Inc. to assist in its use, correction,
15% * modification or enhancement.
16% *
17% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19% * OR ANY PART THEREOF.
20% *
21% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22% * or profits or other special, indirect and consequential damages, even if
23% * Sun has been advised of the possibility of such damages.
24% *
25% * Sun Microsystems, Inc.
26% * 2550 Garcia Avenue
27% * Mountain View, California 94043
1%/*
2% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3% * unrestricted use provided that this legend is included on all tape
4% * media and as a part of the software program in whole or part. Users
5% * may copy or modify Sun RPC without charge, but are not authorized
6% * to license or distribute it to anyone else except as part of a product or
7% * program developed by the user.
8% *
9% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12% *
13% * Sun RPC is provided with no support and without any obligation on the
14% * part of Sun Microsystems, Inc. to assist in its use, correction,
15% * modification or enhancement.
16% *
17% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19% * OR ANY PART THEREOF.
20% *
21% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22% * or profits or other special, indirect and consequential damages, even if
23% * Sun has been advised of the possibility of such damages.
24% *
25% * Sun Microsystems, Inc.
26% * 2550 Garcia Avenue
27% * Mountain View, California 94043
28% *
29% * $FreeBSD: head/include/rpcsvc/pmap_prot.x 97406 2002-05-28 16:56:14Z alfred $
30% */
31%/*
32% * Copyright (c) 1984,1989 by Sun Microsystems, Inc.
33% */
34
35%/* from pmap_prot.x */
36
37#ifdef RPC_HDR
38%
39%#pragma ident "@(#)pmap_prot.x 1.6 94/04/29 SMI"
28% */
29%/*
30% * Copyright (c) 1984,1989 by Sun Microsystems, Inc.
31% */
32
33%/* from pmap_prot.x */
34
35#ifdef RPC_HDR
36%
37%#pragma ident "@(#)pmap_prot.x 1.6 94/04/29 SMI"
38%#include <sys/cdefs.h>
39%__FBSDID("$FreeBSD: head/include/rpcsvc/pmap_prot.x 114629 2003-05-04 02:51:42Z obrien $");
40%
41%#ifndef _KERNEL
42%
43#endif
44
45/*
46 * Port Mapper Protocol Specification (in RPC Language)
47 * derived from RFC 1057
48 */
49
50%/*
51% * Protocol for the local binder service, or pmap.
52% *
53% * Copyright (C) 1984, Sun Microsystems, Inc.
54% *
55% * The following procedures are supported by the protocol:
56% *
57% * PMAPPROC_NULL() returns ()
58% * takes nothing, returns nothing
59% *
60% * PMAPPROC_SET(struct pmap) returns (bool_t)
61% * TRUE is success, FALSE is failure. Registers the tuple
62% * [prog, vers, prot, port].
63% *
64% * PMAPPROC_UNSET(struct pmap) returns (bool_t)
65% * TRUE is success, FALSE is failure. Un-registers pair
66% * [prog, vers]. prot and port are ignored.
67% *
68% * PMAPPROC_GETPORT(struct pmap) returns (long unsigned).
69% * 0 is failure. Otherwise returns the port number where the pair
70% * [prog, vers] is registered. It may lie!
71% *
72% * PMAPPROC_DUMP() RETURNS (struct pmaplist_ptr)
73% *
74% * PMAPPROC_CALLIT(unsigned, unsigned, unsigned, string<>)
75% * RETURNS (port, string<>);
76% * usage: encapsulatedresults = PMAPPROC_CALLIT(prog, vers, proc,
77% * encapsulatedargs);
78% * Calls the procedure on the local machine. If it is not registered,
79% * this procedure is quite; ie it does not return error information!!!
80% * This procedure only is supported on rpc/udp and calls via
81% * rpc/udp. This routine only passes null authentication parameters.
82% * This file has no interface to xdr routines for PMAPPROC_CALLIT.
83% *
84% * The service supports remote procedure calls on udp/ip or tcp/ip socket 111.
85% */
86%
87const PMAPPORT = 111; /* portmapper port number */
88%
89%
90%/*
91% * A mapping of (program, version, protocol) to port number
92% */
93
94struct pmap {
95 unsigned long pm_prog;
96 unsigned long pm_vers;
97 unsigned long pm_prot;
98 unsigned long pm_port;
99};
100#ifdef RPC_HDR
101%
102%typedef pmap PMAP;
103%
104#endif
105%
106%/*
107% * Supported values for the "prot" field
108% */
109%
110const PMAP_IPPROTO_TCP = 6; /* protocol number for TCP/IP */
111const PMAP_IPPROTO_UDP = 17; /* protocol number for UDP/IP */
112%
113%
114%/*
115% * A list of mappings
116% *
117% * Below are two definitions for the pmaplist structure. This is done because
118% * xdr_pmaplist() is specified to take a struct pmaplist **, rather than a
119% * struct pmaplist * that rpcgen would produce. One version of the pmaplist
120% * structure (actually called pm__list) is used with rpcgen, and the other is
121% * defined only in the header file for compatibility with the specified
122% * interface.
123% */
124
125struct pm__list {
126 pmap pml_map;
127 struct pm__list *pml_next;
128};
129
130typedef pm__list *pmaplist_ptr; /* results of PMAPPROC_DUMP */
131
132#ifdef RPC_HDR
133%
134%typedef struct pm__list pmaplist;
135%typedef struct pm__list PMAPLIST;
136%
137%#ifndef __cplusplus
138%struct pmaplist {
139% PMAP pml_map;
140% struct pmaplist *pml_next;
141%};
142%#endif
143%
144%#ifdef __cplusplus
145%extern "C" {
146%#endif
147%extern bool_t xdr_pmaplist(XDR *, pmaplist**);
148%#ifdef __cplusplus
149%}
150%#endif
151%
152#endif
153
154%
155%/*
156% * Arguments to callit
157% */
158
159struct rmtcallargs {
160 unsigned long prog;
161 unsigned long vers;
162 unsigned long proc;
163 opaque args<>;
164};
165#ifdef RPC_HDR
166%
167%/*
168% * Client-side only representation of rmtcallargs structure.
169% *
170% * The routine that XDRs the rmtcallargs structure must deal with the
171% * opaque arguments in the "args" structure. xdr_rmtcall_args() needs to be
172% * passed the XDR routine that knows the args' structure. This routine
173% * doesn't need to go over-the-wire (and it wouldn't make sense anyway) since
174% * the application being called knows the args structure already. So we use a
175% * different "XDR" structure on the client side, p_rmtcallargs, which includes
176% * the args' XDR routine.
177% */
178%struct p_rmtcallargs {
179% u_long prog;
180% u_long vers;
181% u_long proc;
182% struct {
183% u_int args_len;
184% char *args_val;
185% } args;
186% xdrproc_t xdr_args; /* encodes args */
187%};
188%
189#endif /* def RPC_HDR */
190%
191%
192%/*
193% * Results of callit
194% */
195
196struct rmtcallres {
197 unsigned long port;
198 opaque res<>;
199};
200#ifdef RPC_HDR
201%
202%/*
203% * Client-side only representation of rmtcallres structure.
204% */
205%struct p_rmtcallres {
206% u_long port;
207% struct {
208% u_int res_len;
209% char *res_val;
210% } res;
211% xdrproc_t xdr_res; /* decodes res */
212%};
213%
214#endif /* def RPC_HDR */
215
216/*
217 * Port mapper procedures
218 */
219
220program PMAPPROG {
221 version PMAPVERS {
222 void
223 PMAPPROC_NULL(void) = 0;
224
225 bool
226 PMAPPROC_SET(pmap) = 1;
227
228 bool
229 PMAPPROC_UNSET(pmap) = 2;
230
231 unsigned long
232 PMAPPROC_GETPORT(pmap) = 3;
233
234 pmaplist_ptr
235 PMAPPROC_DUMP(void) = 4;
236
237 rmtcallres
238 PMAPPROC_CALLIT(rmtcallargs) = 5;
239 } = 2;
240} = 100000;
241%
242#ifdef RPC_HDR
243%#define PMAPVERS_PROTO ((u_long)2)
244%#define PMAPVERS_ORIG ((u_long)1)
245%
246%#else /* ndef _KERNEL */
247%
248%#include <rpc/pmap_rmt.h>
249%
250%#ifdef __cplusplus
251%extern "C" {
252%#endif
253%
254%#define PMAPPORT 111
255%
256%struct pmap {
257% long unsigned pm_prog;
258% long unsigned pm_vers;
259% long unsigned pm_prot;
260% long unsigned pm_port;
261%};
262%typedef struct pmap PMAP;
263%extern bool_t xdr_pmap (XDR *, struct pmap *);
264%
265%struct pmaplist {
266% struct pmap pml_map;
267% struct pmaplist *pml_next;
268%};
269%typedef struct pmaplist PMAPLIST;
270%typedef struct pmaplist *pmaplist_ptr;
271%
272%
273%#ifdef __cplusplus
274%}
275%#endif
276%
277%#endif /* ndef _KERNEL */
278#endif
279
40%
41%#ifndef _KERNEL
42%
43#endif
44
45/*
46 * Port Mapper Protocol Specification (in RPC Language)
47 * derived from RFC 1057
48 */
49
50%/*
51% * Protocol for the local binder service, or pmap.
52% *
53% * Copyright (C) 1984, Sun Microsystems, Inc.
54% *
55% * The following procedures are supported by the protocol:
56% *
57% * PMAPPROC_NULL() returns ()
58% * takes nothing, returns nothing
59% *
60% * PMAPPROC_SET(struct pmap) returns (bool_t)
61% * TRUE is success, FALSE is failure. Registers the tuple
62% * [prog, vers, prot, port].
63% *
64% * PMAPPROC_UNSET(struct pmap) returns (bool_t)
65% * TRUE is success, FALSE is failure. Un-registers pair
66% * [prog, vers]. prot and port are ignored.
67% *
68% * PMAPPROC_GETPORT(struct pmap) returns (long unsigned).
69% * 0 is failure. Otherwise returns the port number where the pair
70% * [prog, vers] is registered. It may lie!
71% *
72% * PMAPPROC_DUMP() RETURNS (struct pmaplist_ptr)
73% *
74% * PMAPPROC_CALLIT(unsigned, unsigned, unsigned, string<>)
75% * RETURNS (port, string<>);
76% * usage: encapsulatedresults = PMAPPROC_CALLIT(prog, vers, proc,
77% * encapsulatedargs);
78% * Calls the procedure on the local machine. If it is not registered,
79% * this procedure is quite; ie it does not return error information!!!
80% * This procedure only is supported on rpc/udp and calls via
81% * rpc/udp. This routine only passes null authentication parameters.
82% * This file has no interface to xdr routines for PMAPPROC_CALLIT.
83% *
84% * The service supports remote procedure calls on udp/ip or tcp/ip socket 111.
85% */
86%
87const PMAPPORT = 111; /* portmapper port number */
88%
89%
90%/*
91% * A mapping of (program, version, protocol) to port number
92% */
93
94struct pmap {
95 unsigned long pm_prog;
96 unsigned long pm_vers;
97 unsigned long pm_prot;
98 unsigned long pm_port;
99};
100#ifdef RPC_HDR
101%
102%typedef pmap PMAP;
103%
104#endif
105%
106%/*
107% * Supported values for the "prot" field
108% */
109%
110const PMAP_IPPROTO_TCP = 6; /* protocol number for TCP/IP */
111const PMAP_IPPROTO_UDP = 17; /* protocol number for UDP/IP */
112%
113%
114%/*
115% * A list of mappings
116% *
117% * Below are two definitions for the pmaplist structure. This is done because
118% * xdr_pmaplist() is specified to take a struct pmaplist **, rather than a
119% * struct pmaplist * that rpcgen would produce. One version of the pmaplist
120% * structure (actually called pm__list) is used with rpcgen, and the other is
121% * defined only in the header file for compatibility with the specified
122% * interface.
123% */
124
125struct pm__list {
126 pmap pml_map;
127 struct pm__list *pml_next;
128};
129
130typedef pm__list *pmaplist_ptr; /* results of PMAPPROC_DUMP */
131
132#ifdef RPC_HDR
133%
134%typedef struct pm__list pmaplist;
135%typedef struct pm__list PMAPLIST;
136%
137%#ifndef __cplusplus
138%struct pmaplist {
139% PMAP pml_map;
140% struct pmaplist *pml_next;
141%};
142%#endif
143%
144%#ifdef __cplusplus
145%extern "C" {
146%#endif
147%extern bool_t xdr_pmaplist(XDR *, pmaplist**);
148%#ifdef __cplusplus
149%}
150%#endif
151%
152#endif
153
154%
155%/*
156% * Arguments to callit
157% */
158
159struct rmtcallargs {
160 unsigned long prog;
161 unsigned long vers;
162 unsigned long proc;
163 opaque args<>;
164};
165#ifdef RPC_HDR
166%
167%/*
168% * Client-side only representation of rmtcallargs structure.
169% *
170% * The routine that XDRs the rmtcallargs structure must deal with the
171% * opaque arguments in the "args" structure. xdr_rmtcall_args() needs to be
172% * passed the XDR routine that knows the args' structure. This routine
173% * doesn't need to go over-the-wire (and it wouldn't make sense anyway) since
174% * the application being called knows the args structure already. So we use a
175% * different "XDR" structure on the client side, p_rmtcallargs, which includes
176% * the args' XDR routine.
177% */
178%struct p_rmtcallargs {
179% u_long prog;
180% u_long vers;
181% u_long proc;
182% struct {
183% u_int args_len;
184% char *args_val;
185% } args;
186% xdrproc_t xdr_args; /* encodes args */
187%};
188%
189#endif /* def RPC_HDR */
190%
191%
192%/*
193% * Results of callit
194% */
195
196struct rmtcallres {
197 unsigned long port;
198 opaque res<>;
199};
200#ifdef RPC_HDR
201%
202%/*
203% * Client-side only representation of rmtcallres structure.
204% */
205%struct p_rmtcallres {
206% u_long port;
207% struct {
208% u_int res_len;
209% char *res_val;
210% } res;
211% xdrproc_t xdr_res; /* decodes res */
212%};
213%
214#endif /* def RPC_HDR */
215
216/*
217 * Port mapper procedures
218 */
219
220program PMAPPROG {
221 version PMAPVERS {
222 void
223 PMAPPROC_NULL(void) = 0;
224
225 bool
226 PMAPPROC_SET(pmap) = 1;
227
228 bool
229 PMAPPROC_UNSET(pmap) = 2;
230
231 unsigned long
232 PMAPPROC_GETPORT(pmap) = 3;
233
234 pmaplist_ptr
235 PMAPPROC_DUMP(void) = 4;
236
237 rmtcallres
238 PMAPPROC_CALLIT(rmtcallargs) = 5;
239 } = 2;
240} = 100000;
241%
242#ifdef RPC_HDR
243%#define PMAPVERS_PROTO ((u_long)2)
244%#define PMAPVERS_ORIG ((u_long)1)
245%
246%#else /* ndef _KERNEL */
247%
248%#include <rpc/pmap_rmt.h>
249%
250%#ifdef __cplusplus
251%extern "C" {
252%#endif
253%
254%#define PMAPPORT 111
255%
256%struct pmap {
257% long unsigned pm_prog;
258% long unsigned pm_vers;
259% long unsigned pm_prot;
260% long unsigned pm_port;
261%};
262%typedef struct pmap PMAP;
263%extern bool_t xdr_pmap (XDR *, struct pmap *);
264%
265%struct pmaplist {
266% struct pmap pml_map;
267% struct pmaplist *pml_next;
268%};
269%typedef struct pmaplist PMAPLIST;
270%typedef struct pmaplist *pmaplist_ptr;
271%
272%
273%#ifdef __cplusplus
274%}
275%#endif
276%
277%#endif /* ndef _KERNEL */
278#endif
279