xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/rpcsvc/yp_prot.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  * This file contains symbols and structures defining the rpc protocol
3*53ee8cc1Swenshuai.xi  * between the NIS clients and the NIS servers.  The servers
4*53ee8cc1Swenshuai.xi  * are the NIS database servers, and the NIS binders.
5*53ee8cc1Swenshuai.xi  */
6*53ee8cc1Swenshuai.xi 
7*53ee8cc1Swenshuai.xi #ifndef _RPCSVC_YP_PROT_H
8*53ee8cc1Swenshuai.xi #define _RPCSVC_YP_PROT_H
9*53ee8cc1Swenshuai.xi 
10*53ee8cc1Swenshuai.xi #include <features.h>
11*53ee8cc1Swenshuai.xi 
12*53ee8cc1Swenshuai.xi #include <rpc/rpc.h>
13*53ee8cc1Swenshuai.xi #include <rpcsvc/ypclnt.h>
14*53ee8cc1Swenshuai.xi 
15*53ee8cc1Swenshuai.xi __BEGIN_DECLS
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi /*
18*53ee8cc1Swenshuai.xi  * The following procedures are supported by the protocol:
19*53ee8cc1Swenshuai.xi  *
20*53ee8cc1Swenshuai.xi  * YPPROC_NULL() returns () takes nothing, returns nothing.  This indicates
21*53ee8cc1Swenshuai.xi  * that the NIS server is alive.
22*53ee8cc1Swenshuai.xi  *
23*53ee8cc1Swenshuai.xi  * YPPROC_DOMAIN (char *) returns (bool_t) TRUE.  Indicates that the
24*53ee8cc1Swenshuai.xi  * responding NIS server does serve the named domain; FALSE indicates no
25*53ee8cc1Swenshuai.xi  * support.
26*53ee8cc1Swenshuai.xi  *
27*53ee8cc1Swenshuai.xi  * YPPROC_DOMAIN_NONACK (char *) returns (TRUE) if the NIS server does serve
28*53ee8cc1Swenshuai.xi  * the named domain, otherwise does not return.  Used in the broadcast case.
29*53ee8cc1Swenshuai.xi  *
30*53ee8cc1Swenshuai.xi  * YPPROC_MATCH (struct ypreq_key) returns (struct ypresp_val).  Returns the
31*53ee8cc1Swenshuai.xi  * right-hand value for a passed left-hand key, within a named map and
32*53ee8cc1Swenshuai.xi  * domain.
33*53ee8cc1Swenshuai.xi  *
34*53ee8cc1Swenshuai.xi  * YPPROC_FIRST (struct ypreq_nokey) returns (struct ypresp_key_val).
35*53ee8cc1Swenshuai.xi  * Returns the first key-value pair from a named domain and map.
36*53ee8cc1Swenshuai.xi  *
37*53ee8cc1Swenshuai.xi  * YPPROC_NEXT (struct ypreq_key) returns (struct ypresp_key_val).  Returns
38*53ee8cc1Swenshuai.xi  * the key-value pair following a passed key-value pair within a named
39*53ee8cc1Swenshuai.xi  * domain and map.
40*53ee8cc1Swenshuai.xi  *
41*53ee8cc1Swenshuai.xi  * YPPROC_XFR (struct ypreq_xfr) returns nothing.  Indicates to a server that
42*53ee8cc1Swenshuai.xi  * a map should be updated.
43*53ee8cc1Swenshuai.xi  *
44*53ee8cc1Swenshuai.xi  * YPPROC_CLEAR	takes nothing, returns nothing.  Instructs a NIS server to
45*53ee8cc1Swenshuai.xi  * close the current map, so that old versions of the disk file don't get
46*53ee8cc1Swenshuai.xi  * held open.
47*53ee8cc1Swenshuai.xi  *
48*53ee8cc1Swenshuai.xi  * YPPROC_ALL (struct ypreq_nokey), returns
49*53ee8cc1Swenshuai.xi  * 	union switch (bool_t more) {
50*53ee8cc1Swenshuai.xi  *		TRUE:	(struct ypresp_key_val);
51*53ee8cc1Swenshuai.xi  *		FALSE:	(struct) {};
52*53ee8cc1Swenshuai.xi  *	}
53*53ee8cc1Swenshuai.xi  *
54*53ee8cc1Swenshuai.xi  * YPPROC_MASTER (struct ypreq_nokey), returns (ypresp_master)
55*53ee8cc1Swenshuai.xi  *
56*53ee8cc1Swenshuai.xi  * YPPROC_ORDER (struct ypreq_nokey), returns (ypresp_order)
57*53ee8cc1Swenshuai.xi  *
58*53ee8cc1Swenshuai.xi  * YPPROC_MAPLIST (char *), returns (struct ypmaplist *)
59*53ee8cc1Swenshuai.xi  */
60*53ee8cc1Swenshuai.xi 
61*53ee8cc1Swenshuai.xi /* Program and version symbols, magic numbers */
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi #define YPPROG		100004
64*53ee8cc1Swenshuai.xi #define YPVERS		2
65*53ee8cc1Swenshuai.xi #define YPVERS_ORIG	1
66*53ee8cc1Swenshuai.xi #define YPMAXRECORD	1024
67*53ee8cc1Swenshuai.xi #define YPMAXDOMAIN	64 /* XXX orig. yp_prot.h defines 256 */
68*53ee8cc1Swenshuai.xi #define YPMAXMAP	64
69*53ee8cc1Swenshuai.xi #define YPMAXPEER	64 /* XXX orig. yp_prot.h defines 256 */
70*53ee8cc1Swenshuai.xi 
71*53ee8cc1Swenshuai.xi /* byte size of a large NIS packet */
72*53ee8cc1Swenshuai.xi #define YPMSGSZ		1600
73*53ee8cc1Swenshuai.xi 
74*53ee8cc1Swenshuai.xi typedef struct {
75*53ee8cc1Swenshuai.xi   u_int keydat_len;
76*53ee8cc1Swenshuai.xi   char *keydat_val;
77*53ee8cc1Swenshuai.xi } keydat_t;
78*53ee8cc1Swenshuai.xi 
79*53ee8cc1Swenshuai.xi typedef struct {
80*53ee8cc1Swenshuai.xi   u_int valdat_len;
81*53ee8cc1Swenshuai.xi   char *valdat_val;
82*53ee8cc1Swenshuai.xi } valdat_t;
83*53ee8cc1Swenshuai.xi 
84*53ee8cc1Swenshuai.xi struct ypmap_parms {
85*53ee8cc1Swenshuai.xi   char *domain;			/* Null string means not available */
86*53ee8cc1Swenshuai.xi   char *map;			/* Null string means not available */
87*53ee8cc1Swenshuai.xi   unsigned int ordernum;	/* 0 means not available */
88*53ee8cc1Swenshuai.xi   char *owner;			/* Null string means not available */
89*53ee8cc1Swenshuai.xi };
90*53ee8cc1Swenshuai.xi 
91*53ee8cc1Swenshuai.xi /*
92*53ee8cc1Swenshuai.xi  * Request parameter structures
93*53ee8cc1Swenshuai.xi  */
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi struct ypreq_key {
96*53ee8cc1Swenshuai.xi   const char *domain;
97*53ee8cc1Swenshuai.xi   const char *map;
98*53ee8cc1Swenshuai.xi   keydat_t keydat;
99*53ee8cc1Swenshuai.xi };
100*53ee8cc1Swenshuai.xi 
101*53ee8cc1Swenshuai.xi struct ypreq_nokey {
102*53ee8cc1Swenshuai.xi   char *domain;
103*53ee8cc1Swenshuai.xi   char *map;
104*53ee8cc1Swenshuai.xi };
105*53ee8cc1Swenshuai.xi 
106*53ee8cc1Swenshuai.xi struct ypreq_xfr {
107*53ee8cc1Swenshuai.xi   struct ypmap_parms map_parms;
108*53ee8cc1Swenshuai.xi   u_int transid;
109*53ee8cc1Swenshuai.xi   u_int proto;
110*53ee8cc1Swenshuai.xi   u_int port;
111*53ee8cc1Swenshuai.xi };
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi #define ypxfr_domain map_parms.domain
114*53ee8cc1Swenshuai.xi #define ypxfr_map map_parms.map
115*53ee8cc1Swenshuai.xi #define ypxfr_ordernum map_parms.ordernum
116*53ee8cc1Swenshuai.xi #define ypxfr_owner map_parms.owner
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi /* Return status values */
119*53ee8cc1Swenshuai.xi 
120*53ee8cc1Swenshuai.xi enum ypstat {
121*53ee8cc1Swenshuai.xi   YP_TRUE = 1,		/* General purpose success code */
122*53ee8cc1Swenshuai.xi #define YP_TRUE YP_TRUE
123*53ee8cc1Swenshuai.xi   YP_NOMORE = 2,	/* No more entries in map */
124*53ee8cc1Swenshuai.xi #define YP_NOMORE YP_NOMORE
125*53ee8cc1Swenshuai.xi   YP_FALSE = 0,		/* General purpose failure code */
126*53ee8cc1Swenshuai.xi #define YP_FALSE YP_FALSE
127*53ee8cc1Swenshuai.xi   YP_NOMAP = -1,	/* No such map in domain */
128*53ee8cc1Swenshuai.xi #define YP_NOMAP YP_NOMAP
129*53ee8cc1Swenshuai.xi   YP_NODOM = -2,	/* Domain not supported */
130*53ee8cc1Swenshuai.xi #define YP_NODOM YP_NODOM
131*53ee8cc1Swenshuai.xi   YP_NOKEY = -3,	/* No such key in map */
132*53ee8cc1Swenshuai.xi #define YP_NOKEY YP_NOKEY
133*53ee8cc1Swenshuai.xi   YP_BADOP = -4,	/* Invalid operation */
134*53ee8cc1Swenshuai.xi #define YP_BADOP YP_BADOP
135*53ee8cc1Swenshuai.xi   YP_BADDB = -5,	/* Server data base is bad */
136*53ee8cc1Swenshuai.xi #define YP_BADDB YP_BADDB
137*53ee8cc1Swenshuai.xi   YP_YPERR = -6,	/* NIS server error */
138*53ee8cc1Swenshuai.xi #define YP_YPERR YP_YPERR
139*53ee8cc1Swenshuai.xi   YP_BADARGS = -7,	/* Request arguments bad */
140*53ee8cc1Swenshuai.xi #define YP_BADARGS YP_BADARGS
141*53ee8cc1Swenshuai.xi   YP_VERS = -8,		/* NIS server version mismatch - server can't supply
142*53ee8cc1Swenshuai.xi 			   requested service. */
143*53ee8cc1Swenshuai.xi #define YP_VERS YP_VERS
144*53ee8cc1Swenshuai.xi };
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi /*
147*53ee8cc1Swenshuai.xi  * Response parameter structures
148*53ee8cc1Swenshuai.xi  */
149*53ee8cc1Swenshuai.xi 
150*53ee8cc1Swenshuai.xi typedef enum ypstat ypstat;
151*53ee8cc1Swenshuai.xi 
152*53ee8cc1Swenshuai.xi struct ypresp_val {
153*53ee8cc1Swenshuai.xi   ypstat status;
154*53ee8cc1Swenshuai.xi   valdat_t valdat;
155*53ee8cc1Swenshuai.xi };
156*53ee8cc1Swenshuai.xi 
157*53ee8cc1Swenshuai.xi struct ypresp_key_val {
158*53ee8cc1Swenshuai.xi   ypstat status;
159*53ee8cc1Swenshuai.xi #ifdef STUPID_SUN_BUG
160*53ee8cc1Swenshuai.xi   /* This is the form as distributed by Sun.  But even the Sun NIS
161*53ee8cc1Swenshuai.xi      servers expect the values in the other order.  So their
162*53ee8cc1Swenshuai.xi      implementation somehow must change the order internally.  We
163*53ee8cc1Swenshuai.xi      don't want to follow this bad example since the user should be
164*53ee8cc1Swenshuai.xi      able to use rpcgen on this file.  */
165*53ee8cc1Swenshuai.xi   keydat_t keydat;
166*53ee8cc1Swenshuai.xi   valdat_t valdat;
167*53ee8cc1Swenshuai.xi #else
168*53ee8cc1Swenshuai.xi   valdat_t valdat;
169*53ee8cc1Swenshuai.xi   keydat_t keydat;
170*53ee8cc1Swenshuai.xi #endif
171*53ee8cc1Swenshuai.xi };
172*53ee8cc1Swenshuai.xi 
173*53ee8cc1Swenshuai.xi struct ypresp_master {
174*53ee8cc1Swenshuai.xi   ypstat status;
175*53ee8cc1Swenshuai.xi   char *master;
176*53ee8cc1Swenshuai.xi };
177*53ee8cc1Swenshuai.xi 
178*53ee8cc1Swenshuai.xi struct ypresp_order {
179*53ee8cc1Swenshuai.xi   ypstat status;
180*53ee8cc1Swenshuai.xi   u_int ordernum;
181*53ee8cc1Swenshuai.xi };
182*53ee8cc1Swenshuai.xi 
183*53ee8cc1Swenshuai.xi struct ypmaplist {
184*53ee8cc1Swenshuai.xi   char *map;
185*53ee8cc1Swenshuai.xi #define ypml_name map
186*53ee8cc1Swenshuai.xi   struct ypmaplist *next;
187*53ee8cc1Swenshuai.xi #define ypml_next next
188*53ee8cc1Swenshuai.xi };
189*53ee8cc1Swenshuai.xi 
190*53ee8cc1Swenshuai.xi struct ypresp_maplist {
191*53ee8cc1Swenshuai.xi   ypstat status;
192*53ee8cc1Swenshuai.xi   struct ypmaplist *list;
193*53ee8cc1Swenshuai.xi };
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi /*
196*53ee8cc1Swenshuai.xi  * Procedure symbols.  YPPROC_NULL, YPPROC_DOMAIN, and YPPROC_DOMAIN_NONACK
197*53ee8cc1Swenshuai.xi  * must keep the same values (0, 1, and 2) that they had in the first version
198*53ee8cc1Swenshuai.xi  * of the protocol.
199*53ee8cc1Swenshuai.xi  */
200*53ee8cc1Swenshuai.xi 
201*53ee8cc1Swenshuai.xi #define YPPROC_NULL	0
202*53ee8cc1Swenshuai.xi #define YPPROC_DOMAIN	1
203*53ee8cc1Swenshuai.xi #define YPPROC_DOMAIN_NONACK 2
204*53ee8cc1Swenshuai.xi #define YPPROC_MATCH	3
205*53ee8cc1Swenshuai.xi #define YPPROC_FIRST	4
206*53ee8cc1Swenshuai.xi #define YPPROC_NEXT	5
207*53ee8cc1Swenshuai.xi #define YPPROC_XFR	6
208*53ee8cc1Swenshuai.xi #define YPPROC_CLEAR	7
209*53ee8cc1Swenshuai.xi #define YPPROC_ALL	8
210*53ee8cc1Swenshuai.xi #define YPPROC_MASTER	9
211*53ee8cc1Swenshuai.xi #define YPPROC_ORDER	10
212*53ee8cc1Swenshuai.xi #define YPPROC_MAPLIST	11
213*53ee8cc1Swenshuai.xi #define	YPPROC_NEWXFR	12
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi /*
216*53ee8cc1Swenshuai.xi  *		Protocol between clients and NIS binder servers
217*53ee8cc1Swenshuai.xi  */
218*53ee8cc1Swenshuai.xi 
219*53ee8cc1Swenshuai.xi /*
220*53ee8cc1Swenshuai.xi  * The following procedures are supported by the protocol:
221*53ee8cc1Swenshuai.xi  *
222*53ee8cc1Swenshuai.xi  * YPBINDPROC_NULL() returns ()
223*53ee8cc1Swenshuai.xi  * 	takes nothing, returns nothing
224*53ee8cc1Swenshuai.xi  *
225*53ee8cc1Swenshuai.xi  * YPBINDPROC_DOMAIN takes (char *) returns (struct ypbind_resp)
226*53ee8cc1Swenshuai.xi  *
227*53ee8cc1Swenshuai.xi  * YPBINDPROC_SETDOM takes (struct ypbind_setdom) returns nothing
228*53ee8cc1Swenshuai.xi  */
229*53ee8cc1Swenshuai.xi 
230*53ee8cc1Swenshuai.xi /* Program and version symbols, magic numbers */
231*53ee8cc1Swenshuai.xi 
232*53ee8cc1Swenshuai.xi #define YPBINDPROG		100007
233*53ee8cc1Swenshuai.xi #define YPBINDVERS		2
234*53ee8cc1Swenshuai.xi #define YPBINDVERS_ORIG		1
235*53ee8cc1Swenshuai.xi 
236*53ee8cc1Swenshuai.xi /* Procedure symbols */
237*53ee8cc1Swenshuai.xi 
238*53ee8cc1Swenshuai.xi #define YPBINDPROC_NULL		0
239*53ee8cc1Swenshuai.xi #define YPBINDPROC_DOMAIN	1
240*53ee8cc1Swenshuai.xi #define YPBINDPROC_SETDOM	2
241*53ee8cc1Swenshuai.xi /*
242*53ee8cc1Swenshuai.xi  * Response structure and overall result status codes.  Success and failure
243*53ee8cc1Swenshuai.xi  * represent two separate response message types.
244*53ee8cc1Swenshuai.xi  */
245*53ee8cc1Swenshuai.xi 
246*53ee8cc1Swenshuai.xi enum ypbind_resptype {YPBIND_SUCC_VAL = 1, YPBIND_FAIL_VAL = 2};
247*53ee8cc1Swenshuai.xi 
248*53ee8cc1Swenshuai.xi struct ypbind_binding {
249*53ee8cc1Swenshuai.xi   struct in_addr ypbind_binding_addr;	        /* In network order */
250*53ee8cc1Swenshuai.xi   unsigned short int ypbind_binding_port;	/* In network order */
251*53ee8cc1Swenshuai.xi };
252*53ee8cc1Swenshuai.xi 
253*53ee8cc1Swenshuai.xi struct ypbind_resp {
254*53ee8cc1Swenshuai.xi   enum ypbind_resptype ypbind_status;
255*53ee8cc1Swenshuai.xi   union {
256*53ee8cc1Swenshuai.xi     u_int ypbind_error;
257*53ee8cc1Swenshuai.xi     struct ypbind_binding ypbind_bindinfo;
258*53ee8cc1Swenshuai.xi   } ypbind_respbody;
259*53ee8cc1Swenshuai.xi };
260*53ee8cc1Swenshuai.xi 
261*53ee8cc1Swenshuai.xi 
262*53ee8cc1Swenshuai.xi /* Detailed failure reason codes for response field ypbind_error*/
263*53ee8cc1Swenshuai.xi 
264*53ee8cc1Swenshuai.xi #define YPBIND_ERR_ERR 1		/* Internal error */
265*53ee8cc1Swenshuai.xi #define YPBIND_ERR_NOSERV 2		/* No bound server for passed domain */
266*53ee8cc1Swenshuai.xi #define YPBIND_ERR_RESC 3		/* System resource allocation failure */
267*53ee8cc1Swenshuai.xi 
268*53ee8cc1Swenshuai.xi /*
269*53ee8cc1Swenshuai.xi  * Request data structure for ypbind "Set domain" procedure.
270*53ee8cc1Swenshuai.xi  */
271*53ee8cc1Swenshuai.xi struct ypbind_setdom {
272*53ee8cc1Swenshuai.xi   char *ypsetdom_domain;
273*53ee8cc1Swenshuai.xi   struct ypbind_binding ypsetdom_binding;
274*53ee8cc1Swenshuai.xi   u_int ypsetdom_vers;
275*53ee8cc1Swenshuai.xi };
276*53ee8cc1Swenshuai.xi #define ypsetdom_addr ypsetdom_binding.ypbind_binding_addr
277*53ee8cc1Swenshuai.xi #define ypsetdom_port ypsetdom_binding.ypbind_binding_port
278*53ee8cc1Swenshuai.xi 
279*53ee8cc1Swenshuai.xi /*
280*53ee8cc1Swenshuai.xi  *		Protocol between clients (ypxfr, only) and yppush
281*53ee8cc1Swenshuai.xi  *		yppush speaks a protocol in the transient range, which
282*53ee8cc1Swenshuai.xi  *		is supplied to ypxfr as a command-line parameter when it
283*53ee8cc1Swenshuai.xi  *		is activated by ypserv.
284*53ee8cc1Swenshuai.xi  */
285*53ee8cc1Swenshuai.xi #define YPPUSHVERS		1
286*53ee8cc1Swenshuai.xi #define YPPUSHVERS_ORIG		1
287*53ee8cc1Swenshuai.xi 
288*53ee8cc1Swenshuai.xi /* Procedure symbols */
289*53ee8cc1Swenshuai.xi 
290*53ee8cc1Swenshuai.xi #define YPPUSHPROC_NULL		0
291*53ee8cc1Swenshuai.xi #define YPPUSHPROC_XFRRESP	1
292*53ee8cc1Swenshuai.xi 
293*53ee8cc1Swenshuai.xi /* Status values for yppushresp_xfr.status */
294*53ee8cc1Swenshuai.xi 
295*53ee8cc1Swenshuai.xi enum yppush_status {
296*53ee8cc1Swenshuai.xi   YPPUSH_SUCC = 1,		/* Success */
297*53ee8cc1Swenshuai.xi #define YPPUSH_SUCC	YPPUSH_SUCC
298*53ee8cc1Swenshuai.xi   YPPUSH_AGE = 2,		/* Master's version not newer */
299*53ee8cc1Swenshuai.xi #define YPPUSH_AGE	YPPUSH_AGE
300*53ee8cc1Swenshuai.xi   YPPUSH_NOMAP = -1,		/* Can't find server for map */
301*53ee8cc1Swenshuai.xi #define YPPUSH_NOMAP 	YPPUSH_NOMAP
302*53ee8cc1Swenshuai.xi   YPPUSH_NODOM = -2,		/* Domain not supported */
303*53ee8cc1Swenshuai.xi #define YPPUSH_NODOM 	YPPUSH_NODOM
304*53ee8cc1Swenshuai.xi   YPPUSH_RSRC = -3,		/* Local resouce alloc failure */
305*53ee8cc1Swenshuai.xi #define YPPUSH_RSRC 	YPPUSH_RSRC
306*53ee8cc1Swenshuai.xi   YPPUSH_RPC = -4,		/* RPC failure talking to server */
307*53ee8cc1Swenshuai.xi #define YPPUSH_RPC 	YPPUSH_RPC
308*53ee8cc1Swenshuai.xi   YPPUSH_MADDR = -5,		/* Can't get master address */
309*53ee8cc1Swenshuai.xi #define YPPUSH_MADDR	YPPUSH_MADDR
310*53ee8cc1Swenshuai.xi   YPPUSH_YPERR = -6,		/* NIS server/map db error */
311*53ee8cc1Swenshuai.xi #define YPPUSH_YPERR 	YPPUSH_YPERR
312*53ee8cc1Swenshuai.xi   YPPUSH_BADARGS = -7,		/* Request arguments bad */
313*53ee8cc1Swenshuai.xi #define YPPUSH_BADARGS 	YPPUSH_BADARGS
314*53ee8cc1Swenshuai.xi   YPPUSH_DBM = -8,		/* Local dbm operation failed */
315*53ee8cc1Swenshuai.xi #define YPPUSH_DBM	YPPUSH_DBM
316*53ee8cc1Swenshuai.xi   YPPUSH_FILE = -9,		/* Local file I/O operation failed */
317*53ee8cc1Swenshuai.xi #define YPPUSH_FILE	YPPUSH_FILE
318*53ee8cc1Swenshuai.xi   YPPUSH_SKEW = -10,		/* Map version skew during transfer */
319*53ee8cc1Swenshuai.xi #define YPPUSH_SKEW	YPPUSH_SKEW
320*53ee8cc1Swenshuai.xi   YPPUSH_CLEAR = -11,		/* Can't send "Clear" req to local ypserv */
321*53ee8cc1Swenshuai.xi #define YPPUSH_CLEAR	YPPUSH_CLEAR
322*53ee8cc1Swenshuai.xi   YPPUSH_FORCE = -12,		/* No local order number in map - use -f flag*/
323*53ee8cc1Swenshuai.xi #define YPPUSH_FORCE	YPPUSH_FORCE
324*53ee8cc1Swenshuai.xi   YPPUSH_XFRERR = -13,		/* ypxfr error */
325*53ee8cc1Swenshuai.xi #define YPPUSH_XFRERR	YPPUSH_XFRERR
326*53ee8cc1Swenshuai.xi   YPPUSH_REFUSED = -14,		/* Transfer request refused by ypserv */
327*53ee8cc1Swenshuai.xi #define YPPUSH_REFUSED	YPPUSH_REFUSED
328*53ee8cc1Swenshuai.xi   YPPUSH_NOALIAS = -15		/* Alias not found for map or domain */
329*53ee8cc1Swenshuai.xi #define	YPPUSH_NOALIAS	YPPUSH_NOALIAS
330*53ee8cc1Swenshuai.xi };
331*53ee8cc1Swenshuai.xi typedef enum yppush_status yppush_status;
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi struct yppushresp_xfr {
334*53ee8cc1Swenshuai.xi   u_int transid;
335*53ee8cc1Swenshuai.xi   yppush_status status;
336*53ee8cc1Swenshuai.xi };
337*53ee8cc1Swenshuai.xi 
338*53ee8cc1Swenshuai.xi struct ypresp_all {
339*53ee8cc1Swenshuai.xi   bool_t more;
340*53ee8cc1Swenshuai.xi   union {
341*53ee8cc1Swenshuai.xi     struct ypresp_key_val val;
342*53ee8cc1Swenshuai.xi   } ypresp_all_u;
343*53ee8cc1Swenshuai.xi };
344*53ee8cc1Swenshuai.xi 
345*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_key (XDR *__xdrs, struct ypreq_key * __objp);
346*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_nokey (XDR *__xdrs, struct ypreq_nokey * __objp);
347*53ee8cc1Swenshuai.xi extern bool_t xdr_ypreq_xfr (XDR *__xdrs, struct ypreq_xfr * __objp);
348*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_val (XDR *__xdrs, struct ypresp_val * __objp);
349*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_key_val (XDR *__xdrs, struct ypresp_key_val * __objp);
350*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_resp (XDR *__xdrs, struct ypbind_resp * __objp);
351*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_setdom (XDR *__xdrs, struct ypbind_setdom * __objp);
352*53ee8cc1Swenshuai.xi extern bool_t xdr_ypmap_parms (XDR *__xdrs, struct ypmap_parms * __objp);
353*53ee8cc1Swenshuai.xi extern bool_t xdr_yppushresp_xfr (XDR *__xdrs, struct yppushresp_xfr * __objp);
354*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_order (XDR *__xdrs, struct ypresp_order  * __objp);
355*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_master (XDR *__xdrs, struct ypresp_master * __objp);
356*53ee8cc1Swenshuai.xi extern bool_t xdr_ypall (XDR *__xdrs, struct ypall_callback * __objp);
357*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_maplist (XDR *__xdrs, struct ypresp_maplist * __objp);
358*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_binding (XDR *__xdrs, struct ypbind_binding * __objp);
359*53ee8cc1Swenshuai.xi extern bool_t xdr_ypbind_resptype (XDR *__xdrs, enum ypbind_resptype * __objp);
360*53ee8cc1Swenshuai.xi extern bool_t xdr_ypstat (XDR *__xdrs, enum ypbind_resptype * __objp);
361*53ee8cc1Swenshuai.xi extern bool_t xdr_ypresp_all (XDR *__xdrs, struct ypresp_all  * __objp);
362*53ee8cc1Swenshuai.xi extern bool_t xdr_domainname (XDR *__xdrs, char ** __objp);
363*53ee8cc1Swenshuai.xi 
364*53ee8cc1Swenshuai.xi __END_DECLS
365*53ee8cc1Swenshuai.xi 
366*53ee8cc1Swenshuai.xi #endif	/* _RPCSVC_YP_PROT_H */
367