| /* |
| * Sun RPC is a product of Sun Microsystems, Inc. and is provided for |
| * unrestricted use provided that this legend is included on all tape |
| * media and as a part of the software program in whole or part. Users |
| * may copy or modify Sun RPC without charge, but are not authorized |
| * to license or distribute it to anyone else except as part of a product or |
| * program developed by the user. |
| * |
| * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE |
| * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. |
| * |
| * Sun RPC is provided with no support and without any obligation on the |
| * part of Sun Microsystems, Inc. to assist in its use, correction, |
| * modification or enhancement. |
| * |
| * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE |
| * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC |
| * OR ANY PART THEREOF. |
| * |
| * In no event will Sun Microsystems, Inc. be liable for any lost revenue |
| * or profits or other special, indirect and consequential damages, even if |
| * Sun has been advised of the possibility of such damages. |
| * |
| * Sun Microsystems, Inc. |
| * 2550 Garcia Avenue |
| * Mountain View, California 94043 |
| */ |
| |
| #ifndef __RPCSVC_YP_H__ |
| #define __RPCSVC_YP_H__ |
| |
| #include <features.h> |
| #include <rpc/rpc.h> |
| |
| #define YPMAXRECORD 1024 |
| #define YPMAXDOMAIN 64 |
| #define YPMAXMAP 64 |
| #define YPMAXPEER 64 |
| |
| enum ypstat { |
| YP_TRUE = 1, |
| YP_NOMORE = 2, |
| YP_FALSE = 0, |
| YP_NOMAP = -1, |
| YP_NODOM = -2, |
| YP_NOKEY = -3, |
| YP_BADOP = -4, |
| YP_BADDB = -5, |
| YP_YPERR = -6, |
| YP_BADARGS = -7, |
| YP_VERS = -8, |
| }; |
| typedef enum ypstat ypstat; |
| |
| enum ypxfrstat { |
| YPXFR_SUCC = 1, |
| YPXFR_AGE = 2, |
| YPXFR_NOMAP = -1, |
| YPXFR_NODOM = -2, |
| YPXFR_RSRC = -3, |
| YPXFR_RPC = -4, |
| YPXFR_MADDR = -5, |
| YPXFR_YPERR = -6, |
| YPXFR_BADARGS = -7, |
| YPXFR_DBM = -8, |
| YPXFR_FILE = -9, |
| YPXFR_SKEW = -10, |
| YPXFR_CLEAR = -11, |
| YPXFR_FORCE = -12, |
| YPXFR_XFRERR = -13, |
| YPXFR_REFUSED = -14, |
| }; |
| typedef enum ypxfrstat ypxfrstat; |
| |
| typedef char *domainname; |
| typedef char *mapname; |
| typedef char *peername; |
| |
| typedef struct { |
| u_int keydat_len; |
| char *keydat_val; |
| } keydat; |
| |
| typedef struct { |
| u_int valdat_len; |
| char *valdat_val; |
| } valdat; |
| |
| struct ypmap_parms { |
| domainname domain; |
| mapname map; |
| u_int ordernum; |
| peername peer; |
| }; |
| typedef struct ypmap_parms ypmap_parms; |
| |
| struct ypreq_key { |
| domainname domain; |
| mapname map; |
| keydat key; |
| }; |
| typedef struct ypreq_key ypreq_key; |
| |
| struct ypreq_nokey { |
| domainname domain; |
| mapname map; |
| }; |
| typedef struct ypreq_nokey ypreq_nokey; |
| |
| struct ypreq_xfr { |
| ypmap_parms map_parms; |
| u_int transid; |
| u_int prog; |
| u_int port; |
| }; |
| typedef struct ypreq_xfr ypreq_xfr; |
| |
| struct ypresp_val { |
| ypstat stat; |
| valdat val; |
| }; |
| typedef struct ypresp_val ypresp_val; |
| |
| struct ypresp_key_val { |
| ypstat stat; |
| #ifdef STUPID_SUN_BUG |
| /* This is the form as distributed by Sun. But even the Sun NIS |
| servers expect the values in the other order. So their |
| implementation somehow must change the order internally. We |
| don't want to follow this bad example since the user should be |
| able to use rpcgen on this file. */ |
| keydat key; |
| valdat val; |
| #else |
| valdat val; |
| keydat key; |
| #endif |
| }; |
| typedef struct ypresp_key_val ypresp_key_val; |
| |
| struct ypresp_master { |
| ypstat stat; |
| peername peer; |
| }; |
| typedef struct ypresp_master ypresp_master; |
| |
| struct ypresp_order { |
| ypstat stat; |
| u_int ordernum; |
| }; |
| typedef struct ypresp_order ypresp_order; |
| |
| struct ypresp_all { |
| bool_t more; |
| union { |
| ypresp_key_val val; |
| } ypresp_all_u; |
| }; |
| typedef struct ypresp_all ypresp_all; |
| |
| struct ypresp_xfr { |
| u_int transid; |
| ypxfrstat xfrstat; |
| }; |
| typedef struct ypresp_xfr ypresp_xfr; |
| |
| struct ypmaplist { |
| mapname map; |
| struct ypmaplist *next; |
| }; |
| typedef struct ypmaplist ypmaplist; |
| |
| struct ypresp_maplist { |
| ypstat stat; |
| ypmaplist *maps; |
| }; |
| typedef struct ypresp_maplist ypresp_maplist; |
| |
| enum yppush_status { |
| YPPUSH_SUCC = 1, |
| YPPUSH_AGE = 2, |
| YPPUSH_NOMAP = -1, |
| YPPUSH_NODOM = -2, |
| YPPUSH_RSRC = -3, |
| YPPUSH_RPC = -4, |
| YPPUSH_MADDR = -5, |
| YPPUSH_YPERR = -6, |
| YPPUSH_BADARGS = -7, |
| YPPUSH_DBM = -8, |
| YPPUSH_FILE = -9, |
| YPPUSH_SKEW = -10, |
| YPPUSH_CLEAR = -11, |
| YPPUSH_FORCE = -12, |
| YPPUSH_XFRERR = -13, |
| YPPUSH_REFUSED = -14, |
| }; |
| typedef enum yppush_status yppush_status; |
| |
| struct yppushresp_xfr { |
| u_int transid; |
| yppush_status status; |
| }; |
| typedef struct yppushresp_xfr yppushresp_xfr; |
| |
| enum ypbind_resptype { |
| YPBIND_SUCC_VAL = 1, |
| YPBIND_FAIL_VAL = 2, |
| }; |
| typedef enum ypbind_resptype ypbind_resptype; |
| |
| struct ypbind_binding { |
| char ypbind_binding_addr[4]; |
| char ypbind_binding_port[2]; |
| }; |
| typedef struct ypbind_binding ypbind_binding; |
| |
| struct ypbind_resp { |
| ypbind_resptype ypbind_status; |
| union { |
| u_int ypbind_error; |
| ypbind_binding ypbind_bindinfo; |
| } ypbind_resp_u; |
| }; |
| typedef struct ypbind_resp ypbind_resp; |
| |
| #define YPBIND_ERR_ERR 1 |
| #define YPBIND_ERR_NOSERV 2 |
| #define YPBIND_ERR_RESC 3 |
| |
| struct ypbind_setdom { |
| domainname ypsetdom_domain; |
| ypbind_binding ypsetdom_binding; |
| u_int ypsetdom_vers; |
| }; |
| typedef struct ypbind_setdom ypbind_setdom; |
| |
| __BEGIN_DECLS |
| |
| #define YPPROG 100004 |
| #define YPVERS 2 |
| |
| #define YPPROC_NULL 0 |
| extern void *ypproc_null_2 (void *, CLIENT *); |
| extern void *ypproc_null_2_svc (void *, struct svc_req *); |
| #define YPPROC_DOMAIN 1 |
| extern bool_t *ypproc_domain_2 (domainname *, CLIENT *); |
| extern bool_t *ypproc_domain_2_svc (domainname *, struct svc_req *); |
| #define YPPROC_DOMAIN_NONACK 2 |
| extern bool_t *ypproc_domain_nonack_2 (domainname *, CLIENT *); |
| extern bool_t *ypproc_domain_nonack_2_svc (domainname *, struct svc_req *); |
| #define YPPROC_MATCH 3 |
| extern ypresp_val *ypproc_match_2 (ypreq_key *, CLIENT *); |
| extern ypresp_val *ypproc_match_2_svc (ypreq_key *, struct svc_req *); |
| #define YPPROC_FIRST 4 |
| extern ypresp_key_val *ypproc_first_2 (ypreq_key *, CLIENT *); |
| extern ypresp_key_val *ypproc_first_2_svc (ypreq_key *, struct svc_req *); |
| #define YPPROC_NEXT 5 |
| extern ypresp_key_val *ypproc_next_2 (ypreq_key *, CLIENT *); |
| extern ypresp_key_val *ypproc_next_2_svc (ypreq_key *, struct svc_req *); |
| #define YPPROC_XFR 6 |
| extern ypresp_xfr *ypproc_xfr_2 (ypreq_xfr *, CLIENT *); |
| extern ypresp_xfr *ypproc_xfr_2_svc (ypreq_xfr *, struct svc_req *); |
| #define YPPROC_CLEAR 7 |
| extern void *ypproc_clear_2 (void *, CLIENT *); |
| extern void *ypproc_clear_2_svc (void *, struct svc_req *); |
| #define YPPROC_ALL 8 |
| extern ypresp_all *ypproc_all_2 (ypreq_nokey *, CLIENT *); |
| extern ypresp_all *ypproc_all_2_svc (ypreq_nokey *, struct svc_req *); |
| #define YPPROC_MASTER 9 |
| extern ypresp_master *ypproc_master_2 (ypreq_nokey *, CLIENT *); |
| extern ypresp_master *ypproc_master_2_svc (ypreq_nokey *, struct svc_req *); |
| #define YPPROC_ORDER 10 |
| extern ypresp_order *ypproc_order_2 (ypreq_nokey *, CLIENT *); |
| extern ypresp_order *ypproc_order_2_svc (ypreq_nokey *, struct svc_req *); |
| #define YPPROC_MAPLIST 11 |
| extern ypresp_maplist *ypproc_maplist_2 (domainname *, CLIENT *); |
| extern ypresp_maplist *ypproc_maplist_2_svc (domainname *, struct svc_req *); |
| extern int ypprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t); |
| |
| |
| #define YPPUSH_XFRRESPPROG (0x40000000) |
| #define YPPUSH_XFRRESPVERS 1 |
| |
| #define YPPUSHPROC_NULL 0 |
| extern void *yppushproc_null_1 (void *, CLIENT *); |
| extern void *yppushproc_null_1_svc (void *, struct svc_req *); |
| #define YPPUSHPROC_XFRRESP 1 |
| extern void *yppushproc_xfrresp_1 (yppushresp_xfr *, CLIENT *); |
| extern void *yppushproc_xfrresp_1_svc (yppushresp_xfr *, struct svc_req *); |
| extern int yppush_xfrrespprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); |
| |
| |
| #define YPBINDPROG 100007 |
| #define YPBINDVERS 2 |
| |
| #define YPBINDPROC_NULL 0 |
| extern void *ypbindproc_null_2 (void *, CLIENT *); |
| extern void *ypbindproc_null_2_svc (void *, struct svc_req *); |
| #define YPBINDPROC_DOMAIN 1 |
| extern ypbind_resp *ypbindproc_domain_2 (domainname *, CLIENT *); |
| extern ypbind_resp *ypbindproc_domain_2_svc (domainname *, struct svc_req *); |
| #define YPBINDPROC_SETDOM 2 |
| extern void *ypbindproc_setdom_2 (ypbind_setdom *, CLIENT *); |
| extern void *ypbindproc_setdom_2_svc (ypbind_setdom *, struct svc_req *); |
| extern int ypbindprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t); |
| |
| |
| extern bool_t xdr_ypstat (XDR *, ypstat*); |
| extern bool_t xdr_ypxfrstat (XDR *, ypxfrstat*); |
| extern bool_t xdr_domainname (XDR *, domainname*); |
| extern bool_t xdr_mapname (XDR *, mapname*); |
| extern bool_t xdr_peername (XDR *, peername*); |
| extern bool_t xdr_keydat (XDR *, keydat*); |
| extern bool_t xdr_valdat (XDR *, valdat*); |
| extern bool_t xdr_ypmap_parms (XDR *, ypmap_parms*); |
| extern bool_t xdr_ypreq_key (XDR *, ypreq_key*); |
| extern bool_t xdr_ypreq_nokey (XDR *, ypreq_nokey*); |
| extern bool_t xdr_ypreq_xfr (XDR *, ypreq_xfr*); |
| extern bool_t xdr_ypresp_val (XDR *, ypresp_val*); |
| extern bool_t xdr_ypresp_key_val (XDR *, ypresp_key_val*); |
| extern bool_t xdr_ypresp_master (XDR *, ypresp_master*); |
| extern bool_t xdr_ypresp_order (XDR *, ypresp_order*); |
| extern bool_t xdr_ypresp_all (XDR *, ypresp_all*); |
| extern bool_t xdr_ypresp_xfr (XDR *, ypresp_xfr*); |
| extern bool_t xdr_ypmaplist (XDR *, ypmaplist*); |
| extern bool_t xdr_ypresp_maplist (XDR *, ypresp_maplist*); |
| extern bool_t xdr_yppush_status (XDR *, yppush_status*); |
| extern bool_t xdr_yppushresp_xfr (XDR *, yppushresp_xfr*); |
| extern bool_t xdr_ypbind_resptype (XDR *, ypbind_resptype*); |
| extern bool_t xdr_ypbind_binding (XDR *, ypbind_binding*); |
| extern bool_t xdr_ypbind_resp (XDR *, ypbind_resp*); |
| extern bool_t xdr_ypbind_setdom (XDR *, ypbind_setdom*); |
| |
| __END_DECLS |
| |
| #endif /* !__RPCSVC_YP_H__ */ |