diff options
Diffstat (limited to 'newlib/libc/sys/linux/include/rpc')
28 files changed, 0 insertions, 4905 deletions
diff --git a/newlib/libc/sys/linux/include/rpc/Makefile b/newlib/libc/sys/linux/include/rpc/Makefile deleted file mode 100644 index 43a762bfc..000000000 --- a/newlib/libc/sys/linux/include/rpc/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# from: @(#)Makefile 2.3 88/08/11 4.0 RPCSRC -# $FreeBSD: src/include/rpc/Makefile,v 1.1 2001/03/19 12:49:46 alfred Exp $ - -.SUFFIXES: .x - -RPCCOM = rpcgen -C - -HDRS= rpcb_prot.h - -XFILES= rpcb_prot.x - -HFILES= auth.h auth_unix.h clnt.h clnt_soc.h clnt_stat.h \ - nettype.h pmap_clnt.h pmap_prot.h pmap_rmt.h raw.h \ - rpc.h rpc_msg.h rpcb_clnt.h rpcent.h rpc_com.h \ - svc.h svc_auth.h svc_soc.h svc_dg.h types.h xdr.h - -# Secure RPC -HFILES+= auth_des.h des.h des_crypt.h - -# Kerberos -HFILES+= auth_kerb.h - -CLEANFILES+= ${HDRS} - -all: ${HDRS} - -beforeinstall: - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ - ${HFILES:S;^;${.CURDIR}/;} \ - ${XFILES:S;^;${.CURDIR}/;} \ - ${HDRS} \ - ${DESTDIR}/usr/include/rpc - -.x.h: - ${RPCCOM} -h -DWANT_NFS3 ${.IMPSRC} -o ${.TARGET} - -.include <bsd.prog.mk> diff --git a/newlib/libc/sys/linux/include/rpc/auth.h b/newlib/libc/sys/linux/include/rpc/auth.h deleted file mode 100644 index 811814740..000000000 --- a/newlib/libc/sys/linux/include/rpc/auth.h +++ /dev/null @@ -1,356 +0,0 @@ -/* $NetBSD: auth.h,v 1.15 2000/06/02 22:57:55 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)auth.h 1.17 88/02/08 SMI - * from: @(#)auth.h 2.3 88/08/07 4.0 RPCSRC - * from: @(#)auth.h 1.43 98/02/02 SMI - * $FreeBSD: src/include/rpc/auth.h,v 1.19 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * auth.h, Authentication interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - * - * The data structures are completely opaque to the client. The client - * is required to pass a AUTH * to routines that create rpc - * "sessions". - */ - -#ifndef _RPC_AUTH_H -#define _RPC_AUTH_H -#include <rpc/xdr.h> -#include <rpc/clnt_stat.h> -#include <sys/cdefs.h> -#include <sys/socket.h> - -#define MAX_AUTH_BYTES 400 -#define MAXNETNAMELEN 255 /* maximum length of network user's name */ - -/* - * Client side authentication/security data - */ - -typedef struct sec_data { - u_int secmod; /* security mode number e.g. in nfssec.conf */ - u_int rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */ - int flags; /* AUTH_F_xxx flags */ - caddr_t data; /* opaque data per flavor */ -} sec_data_t; - -#ifdef _SYSCALL32_IMPL -struct sec_data32 { - uint32_t secmod; /* security mode number e.g. in nfssec.conf */ - uint32_t rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */ - int32_t flags; /* AUTH_F_xxx flags */ - caddr32_t data; /* opaque data per flavor */ -}; -#endif /* _SYSCALL32_IMPL */ - -/* - * AUTH_DES flavor specific data from sec_data opaque data field. - * AUTH_KERB has the same structure. - */ -typedef struct des_clnt_data { - struct netbuf syncaddr; /* time sync addr */ - struct knetconfig *knconf; /* knetconfig info that associated */ - /* with the syncaddr. */ - char *netname; /* server's netname */ - int netnamelen; /* server's netname len */ -} dh_k4_clntdata_t; - -#ifdef _SYSCALL32_IMPL -struct des_clnt_data32 { - struct netbuf32 syncaddr; /* time sync addr */ - caddr32_t knconf; /* knetconfig info that associated */ - /* with the syncaddr. */ - caddr32_t netname; /* server's netname */ - int32_t netnamelen; /* server's netname len */ -}; -#endif /* _SYSCALL32_IMPL */ - -#ifdef KERBEROS -/* - * flavor specific data to hold the data for AUTH_DES/AUTH_KERB(v4) - * in sec_data->data opaque field. - */ -typedef struct krb4_svc_data { - int window; /* window option value */ -} krb4_svcdata_t; - -typedef struct krb4_svc_data des_svcdata_t; -#endif /* KERBEROS */ - -/* - * authentication/security specific flags - */ -#define AUTH_F_RPCTIMESYNC 0x001 /* use RPC to do time sync */ -#define AUTH_F_TRYNONE 0x002 /* allow fall back to AUTH_NONE */ - - -/* - * Status returned from authentication check - */ -enum auth_stat { - AUTH_OK=0, - /* - * failed at remote end - */ - AUTH_BADCRED=1, /* bogus credentials (seal broken) */ - AUTH_REJECTEDCRED=2, /* client should begin new session */ - AUTH_BADVERF=3, /* bogus verifier (seal broken) */ - AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */ - AUTH_TOOWEAK=5, /* rejected due to security reasons */ - /* - * failed locally - */ - AUTH_INVALIDRESP=6, /* bogus response verifier */ - AUTH_FAILED=7 /* some unknown reason */ -#ifdef KERBEROS - /* - * kerberos errors - */ - , - AUTH_KERB_GENERIC = 8, /* kerberos generic error */ - AUTH_TIMEEXPIRE = 9, /* time of credential expired */ - AUTH_TKT_FILE = 10, /* something wrong with ticket file */ - AUTH_DECODE = 11, /* can't decode authenticator */ - AUTH_NET_ADDR = 12 /* wrong net address in ticket */ -#endif /* KERBEROS */ -}; - -union des_block { - struct { - uint32_t high; - uint32_t low; - } key; - char c[8]; -}; -typedef union des_block des_block; -__BEGIN_DECLS -extern bool_t xdr_des_block(XDR *, des_block *); -__END_DECLS - -/* - * Authentication info. Opaque to client. - */ -struct opaque_auth { - enum_t oa_flavor; /* flavor of auth */ - caddr_t oa_base; /* address of more auth stuff */ - u_int oa_length; /* not to exceed MAX_AUTH_BYTES */ -}; - - -/* - * Auth handle, interface to client side authenticators. - */ -typedef struct __auth { - struct opaque_auth ah_cred; - struct opaque_auth ah_verf; - union des_block ah_key; - struct auth_ops { - void (*ah_nextverf) (struct __auth *); - /* nextverf & serialize */ - int (*ah_marshal) (struct __auth *, XDR *); - /* validate verifier */ - int (*ah_validate) (struct __auth *, - struct opaque_auth *); - /* refresh credentials */ - int (*ah_refresh) (struct __auth *, void *); - /* destroy this structure */ - void (*ah_destroy) (struct __auth *); - } *ah_ops; - void *ah_private; -} AUTH; - - -/* - * Authentication ops. - * The ops and the auth handle provide the interface to the authenticators. - * - * AUTH *auth; - * XDR *xdrs; - * struct opaque_auth verf; - */ -#define AUTH_NEXTVERF(auth) \ - ((*((auth)->ah_ops->ah_nextverf))(auth)) -#define auth_nextverf(auth) \ - ((*((auth)->ah_ops->ah_nextverf))(auth)) - -#define AUTH_MARSHALL(auth, xdrs) \ - ((*((auth)->ah_ops->ah_marshal))(auth, xdrs)) -#define auth_marshall(auth, xdrs) \ - ((*((auth)->ah_ops->ah_marshal))(auth, xdrs)) - -#define AUTH_VALIDATE(auth, verfp) \ - ((*((auth)->ah_ops->ah_validate))((auth), verfp)) -#define auth_validate(auth, verfp) \ - ((*((auth)->ah_ops->ah_validate))((auth), verfp)) - -#define AUTH_REFRESH(auth, msg) \ - ((*((auth)->ah_ops->ah_refresh))(auth, msg)) -#define auth_refresh(auth, msg) \ - ((*((auth)->ah_ops->ah_refresh))(auth, msg)) - -#define AUTH_DESTROY(auth) \ - ((*((auth)->ah_ops->ah_destroy))(auth)) -#define auth_destroy(auth) \ - ((*((auth)->ah_ops->ah_destroy))(auth)) - - -__BEGIN_DECLS -extern struct opaque_auth _null_auth; -__END_DECLS - -/* - * These are the various implementations of client side authenticators. - */ - -/* - * System style authentication - * AUTH *authunix_create(machname, uid, gid, len, aup_gids) - * char *machname; - * int uid; - * int gid; - * int len; - * int *aup_gids; - */ -__BEGIN_DECLS -extern AUTH *authunix_create(char *, int, int, int, - int *); -extern AUTH *authunix_create_default(void); /* takes no parameters */ -extern AUTH *authnone_create(void); /* takes no parameters */ -__END_DECLS -/* - * DES style authentication - * AUTH *authsecdes_create(servername, window, timehost, ckey) - * char *servername; - network name of server - * u_int window; - time to live - * const char *timehost; - optional hostname to sync with - * des_block *ckey; - optional conversation key to use - */ -__BEGIN_DECLS -extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *); -extern AUTH *authdes_seccreate (const char *, const u_int, const char *, - const des_block *); -__END_DECLS - -__BEGIN_DECLS -extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); -__END_DECLS - -#define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip)) -#define authsys_create_default() authunix_create_default() - -/* - * Netname manipulation routines. - */ -__BEGIN_DECLS -extern int getnetname(char *); -extern int host2netname(char *, const char *, const char *); -extern int user2netname(char *, const uid_t, const char *); -extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *); -extern int netname2host(char *, char *, const int); -extern void passwd2des ( char *, char * ); -__END_DECLS - -/* - * - * These routines interface to the keyserv daemon - * - */ -__BEGIN_DECLS -extern int key_decryptsession(const char *, des_block *); -extern int key_encryptsession(const char *, des_block *); -extern int key_gendes(des_block *); -extern int key_setsecret(const char *); -extern int key_secretkey_is_set(void); -__END_DECLS - -/* - * Publickey routines. - */ -__BEGIN_DECLS -extern int getpublickey (const char *, char *); -extern int getpublicandprivatekey (char *, char *); -extern int getsecretkey (char *, char *, char *); -__END_DECLS - -#ifdef KERBEROS -/* - * Kerberos style authentication - * AUTH *authkerb_seccreate(service, srv_inst, realm, window, timehost, status) - * const char *service; - service name - * const char *srv_inst; - server instance - * const char *realm; - server realm - * const u_int window; - time to live - * const char *timehost; - optional hostname to sync with - * int *status; - kerberos status returned - */ -__BEGIN_DECLS -extern AUTH *authkerb_seccreate(const char *, const char *, const char *, - const u_int, const char *, int *); -__END_DECLS - -/* - * Map a kerberos credential into a unix cred. - * - * authkerb_getucred(rqst, uid, gid, grouplen, groups) - * const struct svc_req *rqst; - request pointer - * uid_t *uid; - * gid_t *gid; - * short *grouplen; - * int *groups; - * - */ -__BEGIN_DECLS -extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *, - short *, int * */); -__END_DECLS -#endif /* KERBEROS */ - -__BEGIN_DECLS -struct svc_req; -struct rpc_msg; -enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *); -enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *); -enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *); -__END_DECLS - -#define AUTH_NONE 0 /* no authentication */ -#define AUTH_NULL 0 /* backward compatibility */ -#define AUTH_SYS 1 /* unix style (uid, gids) */ -#define AUTH_UNIX AUTH_SYS -#define AUTH_SHORT 2 /* short hand unix style */ -#define AUTH_DH 3 /* for Diffie-Hellman mechanism */ -#define AUTH_DES AUTH_DH /* for backward compatibility */ -#define AUTH_KERB 4 /* kerberos style */ - -#endif /* !_RPC_AUTH_H */ diff --git a/newlib/libc/sys/linux/include/rpc/auth_des.h b/newlib/libc/sys/linux/include/rpc/auth_des.h deleted file mode 100644 index 24ef5d344..000000000 --- a/newlib/libc/sys/linux/include/rpc/auth_des.h +++ /dev/null @@ -1,126 +0,0 @@ -/* @(#)auth_des.h 2.2 88/07/29 4.0 RPCSRC; from 1.3 88/02/08 SMI */ -/* $FreeBSD: src/include/rpc/auth_des.h,v 1.3 2002/03/23 17:24:55 imp Exp $ */ -/* - * 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 - * - * from: @(#)auth_des.h 2.2 88/07/29 4.0 RPCSRC - * from: @(#)auth_des.h 1.14 94/04/25 SMI - */ - -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * auth_des.h, Protocol for DES style authentication for RPC - */ - -#ifndef _AUTH_DES_ -#define _AUTH_DES_ - -/* - * There are two kinds of "names": fullnames and nicknames - */ -enum authdes_namekind { - ADN_FULLNAME, - ADN_NICKNAME -}; - -/* - * A fullname contains the network name of the client, - * a conversation key and the window - */ -struct authdes_fullname { - char *name; /* network name of client, up to MAXNETNAMELEN */ - des_block key; /* conversation key */ - u_long window; /* associated window */ -}; - - -/* - * A credential - */ -struct authdes_cred { - enum authdes_namekind adc_namekind; - struct authdes_fullname adc_fullname; - u_long adc_nickname; -}; - - - -/* - * A des authentication verifier - */ -struct authdes_verf { - union { - struct timeval adv_ctime; /* clear time */ - des_block adv_xtime; /* crypt time */ - } adv_time_u; - u_long adv_int_u; -}; - -/* - * des authentication verifier: client variety - * - * adv_timestamp is the current time. - * adv_winverf is the credential window + 1. - * Both are encrypted using the conversation key. - */ -#define adv_timestamp adv_time_u.adv_ctime -#define adv_xtimestamp adv_time_u.adv_xtime -#define adv_winverf adv_int_u - -/* - * des authentication verifier: server variety - * - * adv_timeverf is the client's timestamp + client's window - * adv_nickname is the server's nickname for the client. - * adv_timeverf is encrypted using the conversation key. - */ -#define adv_timeverf adv_time_u.adv_ctime -#define adv_xtimeverf adv_time_u.adv_xtime -#define adv_nickname adv_int_u - -/* - * Map a des credential into a unix cred. - * - */ -__BEGIN_DECLS -extern int authdes_getucred( struct authdes_cred *, uid_t *, gid_t *, int *, gid_t * ); -__END_DECLS - -__BEGIN_DECLS -extern bool_t xdr_authdes_cred(XDR *, struct authdes_cred *); -extern bool_t xdr_authdes_verf(XDR *, struct authdes_verf *); -extern int rtime(dev_t, struct netbuf *, int, struct timeval *, - struct timeval *); -extern void kgetnetname(char *); -extern enum auth_stat _svcauth_des(struct svc_req *, struct rpc_msg *); -__END_DECLS - -#endif /* ndef _AUTH_DES_ */ diff --git a/newlib/libc/sys/linux/include/rpc/auth_kerb.h b/newlib/libc/sys/linux/include/rpc/auth_kerb.h deleted file mode 100644 index b686b7883..000000000 --- a/newlib/libc/sys/linux/include/rpc/auth_kerb.h +++ /dev/null @@ -1,143 +0,0 @@ -/* $FreeBSD: src/include/rpc/auth_kerb.h,v 1.1 2001/03/19 12:49:46 alfred Exp $ */ -/* - * 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 - */ -/* - * auth_kerb.h, Protocol for Kerberos style authentication for RPC - * - * Copyright (C) 1986, Sun Microsystems, Inc. - */ - -#ifndef _RPC_AUTH_KERB_H -#define _RPC_AUTH_KERB_H - -#ifdef KERBEROS - -#pragma ident "@(#)auth_kerb.h 1.10 94/04/25 SMI" - -#include <kerberos/krb.h> -#include <sys/socket.h> -#include <sys/t_kuser.h> -#include <netinet/in.h> -#include <rpc/svc.h> - -/* - * There are two kinds of "names": fullnames and nicknames - */ -enum authkerb_namekind { - AKN_FULLNAME, - AKN_NICKNAME -}; -/* - * A fullname contains the ticket and the window - */ -struct authkerb_fullname { - KTEXT_ST ticket; - u_long window; /* associated window */ -}; - -/* - * cooked credential stored in rq_clntcred - */ -struct authkerb_clnt_cred { - /* start of AUTH_DAT */ - unsigned char k_flags; /* Flags from ticket */ - char pname[ANAME_SZ]; /* Principal's name */ - char pinst[INST_SZ]; /* His Instance */ - char prealm[REALM_SZ]; /* His Realm */ - unsigned long checksum; /* Data checksum (opt) */ - C_Block session; /* Session Key */ - int life; /* Life of ticket */ - unsigned long time_sec; /* Time ticket issued */ - unsigned long address; /* Address in ticket */ - /* KTEXT_ST reply; Auth reply (opt) */ - /* end of AUTH_DAT */ - unsigned long expiry; /* time the ticket is expiring */ - u_long nickname; /* Nickname into cache */ - u_long window; /* associated window */ -}; - -typedef struct authkerb_clnt_cred authkerb_clnt_cred; - -/* - * A credential - */ -struct authkerb_cred { - enum authkerb_namekind akc_namekind; - struct authkerb_fullname akc_fullname; - u_long akc_nickname; -}; - -/* - * A kerb authentication verifier - */ -struct authkerb_verf { - union { - struct timeval akv_ctime; /* clear time */ - des_block akv_xtime; /* crypt time */ - } akv_time_u; - u_long akv_int_u; -}; - -/* - * des authentication verifier: client variety - * - * akv_timestamp is the current time. - * akv_winverf is the credential window + 1. - * Both are encrypted using the conversation key. - */ -#ifndef akv_timestamp -#define akv_timestamp akv_time_u.akv_ctime -#define akv_xtimestamp akv_time_u.akv_xtime -#define akv_winverf akv_int_u -#endif -/* - * des authentication verifier: server variety - * - * akv_timeverf is the client's timestamp + client's window - * akv_nickname is the server's nickname for the client. - * akv_timeverf is encrypted using the conversation key. - */ -#ifndef akv_timeverf -#define akv_timeverf akv_time_u.akv_ctime -#define akv_xtimeverf akv_time_u.akv_xtime -#define akv_nickname akv_int_u -#endif - -/* - * Register the service name, instance and realm. - */ -extern int authkerb_create(char *, char *, char *, u_int, - struct netbuf *, int *, dev_t, int, AUTH **); -extern bool_t xdr_authkerb_cred(XDR *, struct authkerb_cred *); -extern bool_t xdr_authkerb_verf(XDR *, struct authkerb_verf *); -extern int svc_kerb_reg(SVCXPRT *, char *, char *, char *); -extern enum auth_stat _svcauth_kerb(struct svc_req *, struct rpc_msg *); - -#endif KERBEROS -#endif /* !_RPC_AUTH_KERB_H */ diff --git a/newlib/libc/sys/linux/include/rpc/auth_unix.h b/newlib/libc/sys/linux/include/rpc/auth_unix.h deleted file mode 100644 index 721a5c942..000000000 --- a/newlib/libc/sys/linux/include/rpc/auth_unix.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)auth_unix.h 1.8 88/02/08 SMI - * from: @(#)auth_unix.h 2.2 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/auth_unix.h,v 1.11 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * auth_unix.h, Protocol for UNIX style authentication parameters for RPC - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -/* - * The system is very weak. The client uses no encryption for it - * credentials and only sends null verifiers. The server sends backs - * null verifiers or optionally a verifier that suggests a new short hand - * for the credentials. - */ - -#ifndef _RPC_AUTH_UNIX_H -#define _RPC_AUTH_UNIX_H -#include <sys/cdefs.h> - -/* The machine name is part of a credential; it may not exceed 255 bytes */ -#define MAX_MACHINE_NAME 255 - -/* gids compose part of a credential; there may not be more than 16 of them */ -#define NGRPS 16 - -/* - * Unix style credentials. - */ -struct authunix_parms { - u_long aup_time; - char *aup_machname; - int aup_uid; - int aup_gid; - u_int aup_len; - int *aup_gids; -}; - -#define authsys_parms authunix_parms - -__BEGIN_DECLS -extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *); -__END_DECLS - -/* - * If a response verifier has flavor AUTH_SHORT, - * then the body of the response verifier encapsulates the following structure; - * again it is serialized in the obvious fashion. - */ -struct short_hand_verf { - struct opaque_auth new_cred; -}; - -#endif /* !_RPC_AUTH_UNIX_H */ diff --git a/newlib/libc/sys/linux/include/rpc/clnt.h b/newlib/libc/sys/linux/include/rpc/clnt.h deleted file mode 100644 index 9a23404c3..000000000 --- a/newlib/libc/sys/linux/include/rpc/clnt.h +++ /dev/null @@ -1,504 +0,0 @@ -/* $NetBSD: clnt.h,v 1.14 2000/06/02 22:57:55 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)clnt.h 1.31 94/04/29 SMI - * from: @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/clnt.h,v 1.17 2002/04/28 15:18:45 des Exp $ - */ - -/* - * clnt.h - Client side remote procedure call interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_CLNT_H_ -#define _RPC_CLNT_H_ -#include <rpc/clnt_stat.h> -#include <sys/cdefs.h> -#include <netconfig.h> -#include <sys/un.h> - -/* - * Well-known IPV6 RPC broadcast address. - */ -#define RPCB_MULTICAST_ADDR "ff02::202" - -/* - * the following errors are in general unrecoverable. The caller - * should give up rather than retry. - */ -#define IS_UNRECOVERABLE_RPC(s) (((s) == RPC_AUTHERROR) || \ - ((s) == RPC_CANTENCODEARGS) || \ - ((s) == RPC_CANTDECODERES) || \ - ((s) == RPC_VERSMISMATCH) || \ - ((s) == RPC_PROCUNAVAIL) || \ - ((s) == RPC_PROGUNAVAIL) || \ - ((s) == RPC_PROGVERSMISMATCH) || \ - ((s) == RPC_CANTDECODEARGS)) - -/* - * Error info. - */ -struct rpc_err { - enum clnt_stat re_status; - union { - int RE_errno; /* related system error */ - enum auth_stat RE_why; /* why the auth error occurred */ - struct { - rpcvers_t low; /* lowest version supported */ - rpcvers_t high; /* highest version supported */ - } RE_vers; - struct { /* maybe meaningful if RPC_FAILED */ - int32_t s1; - int32_t s2; - } RE_lb; /* life boot & debugging only */ - } ru; -#define re_errno ru.RE_errno -#define re_why ru.RE_why -#define re_vers ru.RE_vers -#define re_lb ru.RE_lb -}; - - -/* - * Client rpc handle. - * Created by individual implementations - * Client is responsible for initializing auth, see e.g. auth_none.c. - */ -typedef struct __rpc_client { - AUTH *cl_auth; /* authenticator */ - struct clnt_ops { - /* call remote procedure */ - enum clnt_stat (*cl_call)(struct __rpc_client *, - rpcproc_t, xdrproc_t, void *, xdrproc_t, - void *, struct timeval); - /* abort a call */ - void (*cl_abort)(struct __rpc_client *); - /* get specific error code */ - void (*cl_geterr)(struct __rpc_client *, - struct rpc_err *); - /* frees results */ - bool_t (*cl_freeres)(struct __rpc_client *, - xdrproc_t, void *); - /* destroy this structure */ - void (*cl_destroy)(struct __rpc_client *); - /* the ioctl() of rpc */ - bool_t (*cl_control)(struct __rpc_client *, u_int, - void *); - } *cl_ops; - void *cl_private; /* private stuff */ - char *cl_netid; /* network token */ - char *cl_tp; /* device name */ -} CLIENT; - - -/* - * Timers used for the pseudo-transport protocol when using datagrams - */ -struct rpc_timers { - u_short rt_srtt; /* smoothed round-trip time */ - u_short rt_deviate; /* estimated deviation */ - u_long rt_rtxcur; /* current (backed-off) rto */ -}; - -/* - * Feedback values used for possible congestion and rate control - */ -#define FEEDBACK_REXMIT1 1 /* first retransmit */ -#define FEEDBACK_OK 2 /* no retransmits */ - -/* Used to set version of portmapper used in broadcast */ - -#define CLCR_SET_LOWVERS 3 -#define CLCR_GET_LOWVERS 4 - -#define RPCSMALLMSGSIZE 400 /* a more reasonable packet size */ - -/* - * client side rpc interface ops - * - * Parameter types are: - * - */ - -/* - * enum clnt_stat - * CLNT_CALL(rh, proc, xargs, argsp, xres, resp, timeout) - * CLIENT *rh; - * rpcproc_t proc; - * xdrproc_t xargs; - * void *argsp; - * xdrproc_t xres; - * void *resp; - * struct timeval timeout; - */ -#define CLNT_CALL(rh, proc, xargs, argsp, xres, resp, secs) \ - ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, \ - argsp, xres, resp, secs)) -#define clnt_call(rh, proc, xargs, argsp, xres, resp, secs) \ - ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, \ - argsp, xres, resp, secs)) - -/* - * void - * CLNT_ABORT(rh); - * CLIENT *rh; - */ -#define CLNT_ABORT(rh) ((*(rh)->cl_ops->cl_abort)(rh)) -#define clnt_abort(rh) ((*(rh)->cl_ops->cl_abort)(rh)) - -/* - * struct rpc_err - * CLNT_GETERR(rh); - * CLIENT *rh; - */ -#define CLNT_GETERR(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp)) -#define clnt_geterr(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp)) - - -/* - * bool_t - * CLNT_FREERES(rh, xres, resp); - * CLIENT *rh; - * xdrproc_t xres; - * void *resp; - */ -#define CLNT_FREERES(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp)) -#define clnt_freeres(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp)) - -/* - * bool_t - * CLNT_CONTROL(cl, request, info) - * CLIENT *cl; - * u_int request; - * char *info; - */ -#define CLNT_CONTROL(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in)) -#define clnt_control(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in)) - -/* - * control operations that apply to both udp and tcp transports - */ -#define CLSET_TIMEOUT 1 /* set timeout (timeval) */ -#define CLGET_TIMEOUT 2 /* get timeout (timeval) */ -#define CLGET_SERVER_ADDR 3 /* get server's address (sockaddr) */ -#define CLGET_FD 6 /* get connections file descriptor */ -#define CLGET_SVC_ADDR 7 /* get server's address (netbuf) */ -#define CLSET_FD_CLOSE 8 /* close fd while clnt_destroy */ -#define CLSET_FD_NCLOSE 9 /* Do not close fd while clnt_destroy */ -#define CLGET_XID 10 /* Get xid */ -#define CLSET_XID 11 /* Set xid */ -#define CLGET_VERS 12 /* Get version number */ -#define CLSET_VERS 13 /* Set version number */ -#define CLGET_PROG 14 /* Get program number */ -#define CLSET_PROG 15 /* Set program number */ -#define CLSET_SVC_ADDR 16 /* get server's address (netbuf) */ -#define CLSET_PUSH_TIMOD 17 /* push timod if not already present */ -#define CLSET_POP_TIMOD 18 /* pop timod */ -/* - * Connectionless only control operations - */ -#define CLSET_RETRY_TIMEOUT 4 /* set retry timeout (timeval) */ -#define CLGET_RETRY_TIMEOUT 5 /* get retry timeout (timeval) */ -#define CLSET_ASYNC 19 -#define CLSET_CONNECT 20 /* Use connect() for UDP. (int) */ - -/* - * void - * CLNT_DESTROY(rh); - * CLIENT *rh; - */ -#define CLNT_DESTROY(rh) ((*(rh)->cl_ops->cl_destroy)(rh)) -#define clnt_destroy(rh) ((*(rh)->cl_ops->cl_destroy)(rh)) - - -/* - * RPCTEST is a test program which is accessible on every rpc - * transport/port. It is used for testing, performance evaluation, - * and network administration. - */ - -#define RPCTEST_PROGRAM ((rpcprog_t)1) -#define RPCTEST_VERSION ((rpcvers_t)1) -#define RPCTEST_NULL_PROC ((rpcproc_t)2) -#define RPCTEST_NULL_BATCH_PROC ((rpcproc_t)3) - -/* - * By convention, procedure 0 takes null arguments and returns them - */ - -#define NULLPROC ((rpcproc_t)0) - -/* - * Below are the client handle creation routines for the various - * implementations of client side rpc. They can return NULL if a - * creation failure occurs. - */ - -/* - * Generic client creation routine. Supported protocols are those that - * belong to the nettype namespace (/etc/netconfig). - * CLIENT * - * clnt_create(host, prog, vers, prot); - * const char *host; -- hostname - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const char *prot; -- protocol - */ -__BEGIN_DECLS -extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t, - const char *); -/* - * - * const char *hostname; -- hostname - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const char *nettype; -- network type - */ - -/* - * Generic client creation routine. Supported protocols are which belong - * to the nettype name space. - */ -extern CLIENT *clnt_create_vers(const char *, const rpcprog_t, rpcvers_t *, - const rpcvers_t, const rpcvers_t, - const char *); -/* - * const char *host; -- hostname - * const rpcprog_t prog; -- program number - * rpcvers_t *vers_out; -- servers highest available version - * const rpcvers_t vers_low; -- low version number - * const rpcvers_t vers_high; -- high version number - * const char *nettype; -- network type - */ - - -/* - * Generic client creation routine. It takes a netconfig structure - * instead of nettype - */ -extern CLIENT *clnt_tp_create(const char *, const rpcprog_t, - const rpcvers_t, const struct netconfig *); -/* - * const char *hostname; -- hostname - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const struct netconfig *netconf; -- network config structure - */ - -/* - * Generic TLI create routine. Only provided for compatibility. - */ - -extern CLIENT *clnt_tli_create(const int, const struct netconfig *, - const struct netbuf *, const rpcprog_t, - const rpcvers_t, const u_int, const u_int); -/* - * const register int fd; -- fd - * const struct netconfig *nconf; -- netconfig structure - * const struct netbuf *svcaddr; -- servers address - * const u_long prog; -- program number - * const u_long vers; -- version number - * const u_int sendsz; -- send size - * const u_int recvsz; -- recv size - */ - -/* - * Low level clnt create routine for connectionful transports, e.g. tcp. - */ -extern CLIENT *clnt_vc_create(const int, const struct netbuf *, - const rpcprog_t, const rpcvers_t, - const u_int, const u_int); -/* - * Added for compatibility to old rpc 4.0. Obsoleted by clnt_vc_create(). - */ -extern CLIENT *clntunix_create(struct sockaddr_un *, - u_long, u_long, int *, u_int, u_int); -/* - * const int fd; -- open file descriptor - * const struct netbuf *svcaddr; -- servers address - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const u_int sendsz; -- buffer recv size - * const u_int recvsz; -- buffer send size - */ - -/* - * Low level clnt create routine for connectionless transports, e.g. udp. - */ -extern CLIENT *clnt_dg_create(const int, const struct netbuf *, - const rpcprog_t, const rpcvers_t, - const u_int, const u_int); -/* - * const int fd; -- open file descriptor - * const struct netbuf *svcaddr; -- servers address - * const rpcprog_t program; -- program number - * const rpcvers_t version; -- version number - * const u_int sendsz; -- buffer recv size - * const u_int recvsz; -- buffer send size - */ - -/* - * Memory based rpc (for speed check and testing) - * CLIENT * - * clnt_raw_create(prog, vers) - * u_long prog; - * u_long vers; - */ -extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t); - -__END_DECLS - - -/* - * Print why creation failed - */ -__BEGIN_DECLS -extern void clnt_pcreateerror(const char *); /* stderr */ -extern char *clnt_spcreateerror(const char *); /* string */ -__END_DECLS - -/* - * Like clnt_perror(), but is more verbose in its output - */ -__BEGIN_DECLS -extern void clnt_perrno(enum clnt_stat); /* stderr */ -extern char *clnt_sperrno(enum clnt_stat); /* string */ -__END_DECLS - -/* - * Print an English error message, given the client error code - */ -__BEGIN_DECLS -extern void clnt_perror(CLIENT *, const char *); /* stderr */ -extern char *clnt_sperror(CLIENT *, const char *); /* string */ -__END_DECLS - - -/* - * If a creation fails, the following allows the user to figure out why. - */ -struct rpc_createerr { - enum clnt_stat cf_stat; - struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */ -}; - -#ifdef _THREAD_SAFE -__BEGIN_DECLS -extern struct rpc_createerr *__rpc_createerr(void); -__END_DECLS -#define rpc_createerr (*(__rpc_createerr())) -#else -extern struct rpc_createerr rpc_createerr; -#endif /* _THREAD_SAFE */ - -/* - * The simplified interface: - * enum clnt_stat - * rpc_call(host, prognum, versnum, procnum, inproc, in, outproc, out, nettype) - * const char *host; - * const rpcprog_t prognum; - * const rpcvers_t versnum; - * const rpcproc_t procnum; - * const xdrproc_t inproc, outproc; - * const char *in; - * char *out; - * const char *nettype; - */ -__BEGIN_DECLS -extern enum clnt_stat rpc_call(const char *, const rpcprog_t, - const rpcvers_t, const rpcproc_t, - const xdrproc_t, const char *, - const xdrproc_t, char *, const char *); -__END_DECLS - -/* - * RPC broadcast interface - * The call is broadcasted to all locally connected nets. - * - * extern enum clnt_stat - * rpc_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, - * eachresult, nettype) - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const rpcproc_t proc; -- procedure number - * const xdrproc_t xargs; -- xdr routine for args - * caddr_t argsp; -- pointer to args - * const xdrproc_t xresults; -- xdr routine for results - * caddr_t resultsp; -- pointer to results - * const resultproc_t eachresult; -- call with each result - * const char *nettype; -- Transport type - * - * For each valid response received, the procedure eachresult is called. - * Its form is: - * done = eachresult(resp, raddr, nconf) - * bool_t done; - * caddr_t resp; - * struct netbuf *raddr; - * struct netconfig *nconf; - * where resp points to the results of the call and raddr is the - * address if the responder to the broadcast. nconf is the transport - * on which the response was received. - * - * extern enum clnt_stat - * rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, - * eachresult, inittime, waittime, nettype) - * const rpcprog_t prog; -- program number - * const rpcvers_t vers; -- version number - * const rpcproc_t proc; -- procedure number - * const xdrproc_t xargs; -- xdr routine for args - * caddr_t argsp; -- pointer to args - * const xdrproc_t xresults; -- xdr routine for results - * caddr_t resultsp; -- pointer to results - * const resultproc_t eachresult; -- call with each result - * const int inittime; -- how long to wait initially - * const int waittime; -- maximum time to wait - * const char *nettype; -- Transport type - */ - -typedef bool_t (*resultproc_t)(caddr_t, ...); - -__BEGIN_DECLS -extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t, - const rpcproc_t, const xdrproc_t, - caddr_t, const xdrproc_t, caddr_t, - const resultproc_t, const char *); -extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t, - const rpcproc_t, const xdrproc_t, - caddr_t, const xdrproc_t, caddr_t, - const resultproc_t, const int, - const int, const char *); -__END_DECLS - -/* For backward compatibility */ -#include <rpc/clnt_soc.h> - -#endif /* !_RPC_CLNT_H_ */ diff --git a/newlib/libc/sys/linux/include/rpc/clnt_soc.h b/newlib/libc/sys/linux/include/rpc/clnt_soc.h deleted file mode 100644 index 338d28fbd..000000000 --- a/newlib/libc/sys/linux/include/rpc/clnt_soc.h +++ /dev/null @@ -1,106 +0,0 @@ -/* $NetBSD: clnt_soc.h,v 1.1 2000/06/02 22:57:55 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/clnt_soc.h,v 1.2 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1984 - 1991 by Sun Microsystems, Inc. - */ - -/* - * clnt.h - Client side remote procedure call interface. - */ - -#ifndef _RPC_CLNT_SOC_H -#define _RPC_CLNT_SOC_H - -/* derived from clnt_soc.h 1.3 88/12/17 SMI */ - -/* - * All the following declarations are only for backward compatibility - * with TS-RPC. - */ - -#include <sys/cdefs.h> - -#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ - -/* - * TCP based rpc - * CLIENT * - * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz) - * struct sockaddr_in *raddr; - * u_long prog; - * u_long version; - * register int *sockp; - * u_int sendsz; - * u_int recvsz; - */ -__BEGIN_DECLS -extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *, - u_int, u_int); -__END_DECLS - -/* - * Raw (memory) rpc. - */ -__BEGIN_DECLS -extern CLIENT *clntraw_create(u_long, u_long); -__END_DECLS - - -/* - * UDP based rpc. - * CLIENT * - * clntudp_create(raddr, program, version, wait, sockp) - * struct sockaddr_in *raddr; - * u_long program; - * u_long version; - * struct timeval wait; - * int *sockp; - * - * Same as above, but you specify max packet sizes. - * CLIENT * - * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz) - * struct sockaddr_in *raddr; - * u_long program; - * u_long version; - * struct timeval wait; - * int *sockp; - * u_int sendsz; - * u_int recvsz; - */ -__BEGIN_DECLS -extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long, - struct timeval, int *); -extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long, - struct timeval, int *, u_int, u_int); -__END_DECLS - -#endif /* _RPC_CLNT_SOC_H */ diff --git a/newlib/libc/sys/linux/include/rpc/clnt_stat.h b/newlib/libc/sys/linux/include/rpc/clnt_stat.h deleted file mode 100644 index 397bdbc59..000000000 --- a/newlib/libc/sys/linux/include/rpc/clnt_stat.h +++ /dev/null @@ -1,83 +0,0 @@ -/* $FreeBSD: src/include/rpc/clnt_stat.h,v 1.2 2001/03/20 08:20:50 alfred Exp $ */ -/* - * Copyright (c) 1986 - 1991, 1994, 1996, 1997 by Sun Microsystems, Inc. - * All rights reserved. - */ - -/* - * clnt_stat.h - Client side remote procedure call enum - * - */ - -#ifndef _RPC_CLNT_STAT_H -#define _RPC_CLNT_STAT_H - -/* #pragma ident "@(#)clnt_stat.h 1.2 97/04/28 SMI" */ - -#ifdef __cplusplus -extern "C" { -#endif - -enum clnt_stat { - RPC_SUCCESS = 0, /* call succeeded */ - /* - * local errors - */ - RPC_CANTENCODEARGS = 1, /* can't encode arguments */ - RPC_CANTDECODERES = 2, /* can't decode results */ - RPC_CANTSEND = 3, /* failure in sending call */ - RPC_CANTRECV = 4, - /* failure in receiving result */ - RPC_TIMEDOUT = 5, /* call timed out */ - RPC_INTR = 18, /* call interrupted */ - RPC_UDERROR = 23, /* recv got uderr indication */ - /* - * remote errors - */ - RPC_VERSMISMATCH = 6, /* rpc versions not compatible */ - RPC_AUTHERROR = 7, /* authentication error */ - RPC_PROGUNAVAIL = 8, /* program not available */ - RPC_PROGVERSMISMATCH = 9, /* program version mismatched */ - RPC_PROCUNAVAIL = 10, /* procedure unavailable */ - RPC_CANTDECODEARGS = 11, /* decode arguments error */ - RPC_SYSTEMERROR = 12, /* generic "other problem" */ - - /* - * rpc_call & clnt_create errors - */ - RPC_UNKNOWNHOST = 13, /* unknown host name */ - RPC_UNKNOWNPROTO = 17, /* unknown protocol */ - RPC_UNKNOWNADDR = 19, /* Remote address unknown */ - RPC_NOBROADCAST = 21, /* Broadcasting not supported */ - - /* - * rpcbind errors - */ - RPC_RPCBFAILURE = 14, /* the pmapper failed in its call */ -#define RPC_PMAPFAILURE RPC_RPCBFAILURE - RPC_PROGNOTREGISTERED = 15, /* remote program is not registered */ - RPC_N2AXLATEFAILURE = 22, - /* Name to address translation failed */ - /* - * Misc error in the TLI library - */ - RPC_TLIERROR = 20, - /* - * unspecified error - */ - RPC_FAILED = 16, - /* - * asynchronous errors - */ - RPC_INPROGRESS = 24, - RPC_STALERACHANDLE = 25, - RPC_CANTCONNECT = 26, /* couldn't make connection (cots) */ - RPC_XPRTFAILED = 27, /* received discon from remote (cots) */ - RPC_CANTCREATESTREAM = 28 /* can't push rpc module (cots) */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPC_CLNT_STAT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/des.h b/newlib/libc/sys/linux/include/rpc/des.h deleted file mode 100644 index 385afde07..000000000 --- a/newlib/libc/sys/linux/include/rpc/des.h +++ /dev/null @@ -1,83 +0,0 @@ -/* @(#)des.h 2.2 88/08/10 4.0 RPCSRC; from 2.7 88/02/08 SMI */ -/* $FreeBSD: src/include/rpc/des.h,v 1.4 2002/03/23 17:24:55 imp Exp $ */ -/* - * 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 - */ -/* - * Generic DES driver interface - * Keep this file hardware independent! - * Copyright (c) 1986 by Sun Microsystems, Inc. - */ - -#define DES_MAXLEN 65536 /* maximum # of bytes to encrypt */ -#define DES_QUICKLEN 16 /* maximum # of bytes to encrypt quickly */ - -enum desdir { ENCRYPT, DECRYPT }; -enum desmode { CBC, ECB }; - -/* - * parameters to ioctl call - */ -struct desparams { - u_char des_key[8]; /* key (with low bit parity) */ - enum desdir des_dir; /* direction */ - enum desmode des_mode; /* mode */ - u_char des_ivec[8]; /* input vector */ - unsigned des_len; /* number of bytes to crypt */ - union { - u_char UDES_data[DES_QUICKLEN]; - u_char *UDES_buf; - } UDES; -# define des_data UDES.UDES_data /* direct data here if quick */ -# define des_buf UDES.UDES_buf /* otherwise, pointer to data */ -}; - -#ifdef notdef - -/* - * These ioctls are only implemented in SunOS. Maybe someday - * if somebody writes a driver for DES hardware that works - * with FreeBSD, we can being that back. - */ - -/* - * Encrypt an arbitrary sized buffer - */ -#define DESIOCBLOCK _IOWR('d', 6, struct desparams) - -/* - * Encrypt of small amount of data, quickly - */ -#define DESIOCQUICK _IOWR('d', 7, struct desparams) - -#endif - -/* - * Software DES. - */ -extern int _des_crypt( char *, int, struct desparams * ); diff --git a/newlib/libc/sys/linux/include/rpc/des_crypt.h b/newlib/libc/sys/linux/include/rpc/des_crypt.h deleted file mode 100644 index eb166eded..000000000 --- a/newlib/libc/sys/linux/include/rpc/des_crypt.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * @(#)des_crypt.h 2.1 88/08/11 4.0 RPCSRC; from 1.4 88/02/08 (C) 1986 SMI - * $FreeBSD: src/include/rpc/des_crypt.h,v 1.4 2002/03/23 17:24:55 imp Exp $ - * - * des_crypt.h, des library routine interface - * Copyright (C) 1986, Sun Microsystems, Inc. - */ -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * des_crypt.h, des library routine interface - */ - -#ifndef _DES_DES_CRYPT_H -#define _DES_DES_CRYPT_H - -#include <sys/cdefs.h> -#include <rpc/rpc.h> - -#define DES_MAXDATA 8192 /* max bytes encrypted in one call */ -#define DES_DIRMASK (1 << 0) -#define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */ -#define DES_DECRYPT (1*DES_DIRMASK) /* Decrypt */ - - -#define DES_DEVMASK (1 << 1) -#define DES_HW (0*DES_DEVMASK) /* Use hardware device */ -#define DES_SW (1*DES_DEVMASK) /* Use software device */ - - -#define DESERR_NONE 0 /* succeeded */ -#define DESERR_NOHWDEVICE 1 /* succeeded, but hw device not available */ -#define DESERR_HWERROR 2 /* failed, hardware/driver error */ -#define DESERR_BADPARAM 3 /* failed, bad parameter to call */ - -#define DES_FAILED(err) \ - ((err) > DESERR_NOHWDEVICE) - -/* - * cbc_crypt() - * ecb_crypt() - * - * Encrypt (or decrypt) len bytes of a buffer buf. - * The length must be a multiple of eight. - * The key should have odd parity in the low bit of each byte. - * ivec is the input vector, and is updated to the new one (cbc only). - * The mode is created by oring together the appropriate parameters. - * DESERR_NOHWDEVICE is returned if DES_HW was specified but - * there was no hardware to do it on (the data will still be - * encrypted though, in software). - */ - - -/* - * Cipher Block Chaining mode - */ -__BEGIN_DECLS -int cbc_crypt( char *, char *, unsigned int, unsigned int, char *); -__END_DECLS - -/* - * Electronic Code Book mode - */ -__BEGIN_DECLS -int ecb_crypt( char *, char *, unsigned int, unsigned int ); -__END_DECLS - -/* - * Set des parity for a key. - * DES parity is odd and in the low bit of each byte - */ -__BEGIN_DECLS -void des_setparity( char *); -__END_DECLS - -#endif /* _DES_DES_CRYPT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/nettype.h b/newlib/libc/sys/linux/include/rpc/nettype.h deleted file mode 100644 index b18dc49fe..000000000 --- a/newlib/libc/sys/linux/include/rpc/nettype.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $NetBSD: nettype.h,v 1.2 2000/07/06 03:17:19 christos Exp $ */ -/* $FreeBSD: src/include/rpc/nettype.h,v 1.2 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * nettype.h, Nettype definitions. - * All for the topmost layer of rpc - * - */ - -#ifndef _RPC_NETTYPE_H -#define _RPC_NETTYPE_H - -#include <netconfig.h> - -#define _RPC_NONE 0 -#define _RPC_NETPATH 1 -#define _RPC_VISIBLE 2 -#define _RPC_CIRCUIT_V 3 -#define _RPC_DATAGRAM_V 4 -#define _RPC_CIRCUIT_N 5 -#define _RPC_DATAGRAM_N 6 -#define _RPC_TCP 7 -#define _RPC_UDP 8 - -__BEGIN_DECLS -extern void *__rpc_setconf(const char *); -extern void __rpc_endconf(void *); -extern struct netconfig *__rpc_getconf(void *); -extern struct netconfig *__rpc_getconfip(const char *); -__END_DECLS - -#endif /* !_RPC_NETTYPE_H */ diff --git a/newlib/libc/sys/linux/include/rpc/pmap_clnt.h b/newlib/libc/sys/linux/include/rpc/pmap_clnt.h deleted file mode 100644 index e6333c7c7..000000000 --- a/newlib/libc/sys/linux/include/rpc/pmap_clnt.h +++ /dev/null @@ -1,86 +0,0 @@ -/* $NetBSD: pmap_clnt.h,v 1.9 2000/06/02 22:57:55 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)pmap_clnt.h 1.11 88/02/08 SMI - * from: @(#)pmap_clnt.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/pmap_clnt.h,v 1.14 2002/04/28 15:18:45 des Exp $ - */ - -/* - * pmap_clnt.h - * Supplies C routines to get to portmap services. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -/* - * Usage: - * success = pmap_set(program, version, protocol, port); - * success = pmap_unset(program, version); - * port = pmap_getport(address, program, version, protocol); - * head = pmap_getmaps(address); - * clnt_stat = pmap_rmtcall(address, program, version, procedure, - * xdrargs, argsp, xdrres, resp, tout, port_ptr) - * (works for udp only.) - * clnt_stat = clnt_broadcast(program, version, procedure, - * xdrargs, argsp, xdrres, resp, eachresult) - * (like pmap_rmtcall, except the call is broadcasted to all - * locally connected nets. For each valid response received, - * the procedure eachresult is called. Its form is: - * done = eachresult(resp, raddr) - * bool_t done; - * caddr_t resp; - * struct sockaddr_in raddr; - * where resp points to the results of the call and raddr is the - * address if the responder to the broadcast. - */ - -#ifndef _RPC_PMAP_CLNT_H_ -#define _RPC_PMAP_CLNT_H_ -#include <sys/cdefs.h> - -__BEGIN_DECLS -extern bool_t pmap_set(u_long, u_long, int, int); -extern bool_t pmap_unset(u_long, u_long); -extern struct pmaplist *pmap_getmaps(struct sockaddr_in *); -extern enum clnt_stat pmap_rmtcall(struct sockaddr_in *, - u_long, u_long, u_long, - xdrproc_t, caddr_t, - xdrproc_t, caddr_t, - struct timeval, u_long *); -extern enum clnt_stat clnt_broadcast(u_long, u_long, u_long, - xdrproc_t, void *, - xdrproc_t, void *, - resultproc_t); -extern u_short pmap_getport(struct sockaddr_in *, - u_long, u_long, u_int); -__END_DECLS - -#endif /* !_RPC_PMAP_CLNT_H_ */ diff --git a/newlib/libc/sys/linux/include/rpc/pmap_prot.h b/newlib/libc/sys/linux/include/rpc/pmap_prot.h deleted file mode 100644 index d83049943..000000000 --- a/newlib/libc/sys/linux/include/rpc/pmap_prot.h +++ /dev/null @@ -1,107 +0,0 @@ -/* $NetBSD: pmap_prot.h,v 1.8 2000/06/02 22:57:55 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)pmap_prot.h 1.14 88/02/08 SMI - * from: @(#)pmap_prot.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/pmap_prot.h,v 1.12 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * pmap_prot.h - * Protocol for the local binder service, or pmap. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - * - * The following procedures are supported by the protocol: - * - * PMAPPROC_NULL() returns () - * takes nothing, returns nothing - * - * PMAPPROC_SET(struct pmap) returns (bool_t) - * TRUE is success, FALSE is failure. Registers the tuple - * [prog, vers, prot, port]. - * - * PMAPPROC_UNSET(struct pmap) returns (bool_t) - * TRUE is success, FALSE is failure. Un-registers pair - * [prog, vers]. prot and port are ignored. - * - * PMAPPROC_GETPORT(struct pmap) returns (long unsigned). - * 0 is failure. Otherwise returns the port number where the pair - * [prog, vers] is registered. It may lie! - * - * PMAPPROC_DUMP() RETURNS (struct pmaplist *) - * - * PMAPPROC_CALLIT(unsigned, unsigned, unsigned, string<>) - * RETURNS (port, string<>); - * usage: encapsulatedresults = PMAPPROC_CALLIT(prog, vers, proc, encapsulatedargs); - * Calls the procedure on the local machine. If it is not registered, - * this procedure is quite; ie it does not return error information!!! - * This procedure only is supported on rpc/udp and calls via - * rpc/udp. This routine only passes null authentication parameters. - * This file has no interface to xdr routines for PMAPPROC_CALLIT. - * - * The service supports remote procedure calls on udp/ip or tcp/ip socket 111. - */ - -#ifndef _RPC_PMAP_PROT_H -#define _RPC_PMAP_PROT_H -#include <sys/cdefs.h> - -#define PMAPPORT ((u_short)111) -#define PMAPPROG ((u_long)100000) -#define PMAPVERS ((u_long)2) -#define PMAPVERS_PROTO ((u_long)2) -#define PMAPVERS_ORIG ((u_long)1) -#define PMAPPROC_NULL ((u_long)0) -#define PMAPPROC_SET ((u_long)1) -#define PMAPPROC_UNSET ((u_long)2) -#define PMAPPROC_GETPORT ((u_long)3) -#define PMAPPROC_DUMP ((u_long)4) -#define PMAPPROC_CALLIT ((u_long)5) - -struct pmap { - long unsigned pm_prog; - long unsigned pm_vers; - long unsigned pm_prot; - long unsigned pm_port; -}; - -struct pmaplist { - struct pmap pml_map; - struct pmaplist *pml_next; -}; - -__BEGIN_DECLS -extern bool_t xdr_pmap(XDR *, struct pmap *); -extern bool_t xdr_pmaplist(XDR *, struct pmaplist **); -extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *); -__END_DECLS - -#endif /* !_RPC_PMAP_PROT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/pmap_rmt.h b/newlib/libc/sys/linux/include/rpc/pmap_rmt.h deleted file mode 100644 index 3e069e785..000000000 --- a/newlib/libc/sys/linux/include/rpc/pmap_rmt.h +++ /dev/null @@ -1,65 +0,0 @@ -/* $NetBSD: pmap_rmt.h,v 1.7 1998/02/11 23:01:23 lukem Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)pmap_rmt.h 1.2 88/02/08 SMI - * from: @(#)pmap_rmt.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/pmap_rmt.h,v 1.12 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * Structures and XDR routines for parameters to and replies from - * the portmapper remote-call-service. - * - * Copyright (C) 1986, Sun Microsystems, Inc. - */ - -#ifndef _RPC_PMAP_RMT_H -#define _RPC_PMAP_RMT_H -#include <sys/cdefs.h> - -struct rmtcallargs { - u_long prog, vers, proc, arglen; - caddr_t args_ptr; - xdrproc_t xdr_args; -}; - -struct rmtcallres { - u_long *port_ptr; - u_long resultslen; - caddr_t results_ptr; - xdrproc_t xdr_results; -}; - -__BEGIN_DECLS -extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *); -extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); -__END_DECLS - -#endif /* !_RPC_PMAP_RMT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/raw.h b/newlib/libc/sys/linux/include/rpc/raw.h deleted file mode 100644 index d418bf41e..000000000 --- a/newlib/libc/sys/linux/include/rpc/raw.h +++ /dev/null @@ -1,58 +0,0 @@ -/* $NetBSD: raw.h,v 1.1 2000/06/02 22:57:56 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/raw.h,v 1.1 2001/03/19 12:49:47 alfred Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -#ifndef _RPC_RAW_H -#define _RPC_RAW_H - -/* from: @(#)raw.h 1.11 94/04/25 SMI */ -/* from: @(#)raw.h 1.2 88/10/25 SMI */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * raw.h - * - * Raw interface - * The common memory area over which they will communicate - */ -extern char *__rpc_rawcombuf; - -#ifdef __cplusplus -} -#endif - -#endif /* _RPC_RAW_H */ diff --git a/newlib/libc/sys/linux/include/rpc/rpc.h b/newlib/libc/sys/linux/include/rpc/rpc.h deleted file mode 100644 index 72a717c05..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpc.h +++ /dev/null @@ -1,108 +0,0 @@ -/* $NetBSD: rpc.h,v 1.13 2000/06/02 22:57:56 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)rpc.h 1.9 88/02/08 SMI - * from: @(#)rpc.h 2.4 89/07/11 4.0 RPCSRC - * $FreeBSD: src/include/rpc/rpc.h,v 1.17 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * rpc.h, Just includes the billions of rpc header files necessary to - * do remote procedure calling. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ -#ifndef _RPC_RPC_H -#define _RPC_RPC_H - -#include <rpc/types.h> /* some typedefs */ -#include <sys/socket.h> -#include <netinet/in.h> - -/* external data representation interfaces */ -#include <rpc/xdr.h> /* generic (de)serializer */ - -/* Client side only authentication */ -#include <rpc/auth.h> /* generic authenticator (client side) */ - -/* Client side (mostly) remote procedure call */ -#include <rpc/clnt.h> /* generic rpc stuff */ - -/* semi-private protocol headers */ -#include <rpc/rpc_msg.h> /* protocol for rpc messages */ -#include <rpc/auth_unix.h> /* protocol for unix style cred */ -/* - * Uncomment-out the next line if you are building the rpc library with - * DES Authentication (see the README file in the secure_rpc/ directory). - */ -#include <rpc/auth_des.h> /* protocol for des style cred */ - -/* Server side only remote procedure callee */ -#include <rpc/svc.h> /* service manager and multiplexer */ -#include <rpc/svc_auth.h> /* service side authenticator */ - -/* Portmapper client, server, and protocol headers */ -#include <rpc/pmap_clnt.h> -#include <rpc/pmap_prot.h> - -#ifndef _KERNEL -#include <rpc/rpcb_clnt.h> /* rpcbind interface functions */ -#endif - -#include <rpc/rpcent.h> - -__BEGIN_DECLS -extern int get_myaddress(struct sockaddr_in *); -extern int bindresvport(int, struct sockaddr_in *); -extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]), - xdrproc_t, xdrproc_t); -extern int callrpc(const char *, int, int, int, xdrproc_t, void *, - xdrproc_t , void *); -extern int getrpcport(char *, int, int, int); - -char *taddr2uaddr(const struct netconfig *, const struct netbuf *); -struct netbuf *uaddr2taddr(const struct netconfig *, const char *); - -struct sockaddr; -extern int bindresvport_sa(int, struct sockaddr *); -__END_DECLS - -/* - * The following are not exported interfaces, they are for internal library - * and rpcbind use only. Do not use, they may change without notice. - */ -__BEGIN_DECLS -int __rpc_nconf2fd(const struct netconfig *); -int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *); -int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *); -u_int __rpc_get_t_size(int, int, int); -__END_DECLS - -#endif /* !_RPC_RPC_H */ diff --git a/newlib/libc/sys/linux/include/rpc/rpc_com.h b/newlib/libc/sys/linux/include/rpc/rpc_com.h deleted file mode 100644 index 8c6a26e3e..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpc_com.h +++ /dev/null @@ -1,83 +0,0 @@ -/* $NetBSD: rpc_com.h,v 1.3 2000/12/10 04:10:08 christos Exp $ */ -/* $FreeBSD: src/include/rpc/rpc_com.h,v 1.5 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * rpc_com.h, Common definitions for both the server and client side. - * All for the topmost layer of rpc - * - */ - -#ifndef _RPC_RPCCOM_H -#define _RPC_RPCCOM_H - -#include <sys/cdefs.h> - -/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ - -/* - * The max size of the transport, if the size cannot be determined - * by other means. - */ -#define RPC_MAXDATASIZE 9000 -#define RPC_MAXADDRSIZE 1024 - -#define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \ - (u_int32_t)(now)->tv_usec) - -__BEGIN_DECLS -extern u_int __rpc_get_a_size(int); -extern int __rpc_dtbsize(void); -extern int _rpc_dtablesize(void); -extern struct netconfig * __rpcgettp(int); -extern int __rpc_get_default_domain(char **); - -char *__rpc_taddr2uaddr_af(int, const struct netbuf *); -struct netbuf *__rpc_uaddr2taddr_af(int, const char *); -int __rpc_fixup_addr(struct netbuf *, const struct netbuf *); -int __rpc_sockinfo2netid(struct __rpc_sockinfo *, const char **); -int __rpc_seman2socktype(int); -int __rpc_socktype2seman(int); -void *rpc_nullproc(CLIENT *); -int __rpc_sockisbound(int); - -struct netbuf *__rpcb_findaddr(rpcprog_t, rpcvers_t, const struct netconfig *, - const char *, CLIENT **); -bool_t __rpc_control(int,void *); - -char *_get_next_token(char *, int); - -__END_DECLS - -#endif /* _RPC_RPCCOM_H */ diff --git a/newlib/libc/sys/linux/include/rpc/rpc_msg.h b/newlib/libc/sys/linux/include/rpc/rpc_msg.h deleted file mode 100644 index 6cb229c21..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpc_msg.h +++ /dev/null @@ -1,214 +0,0 @@ -/* $NetBSD: rpc_msg.h,v 1.11 2000/06/02 22:57:56 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)rpc_msg.h 1.7 86/07/16 SMI - * from: @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/rpc_msg.h,v 1.14 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * rpc_msg.h - * rpc message definition - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_RPC_MSG_H -#define _RPC_RPC_MSG_H - -#define RPC_MSG_VERSION ((u_int32_t) 2) -#define RPC_SERVICE_PORT ((u_short) 2048) - -/* - * Bottom up definition of an rpc message. - * NOTE: call and reply use the same overall stuct but - * different parts of unions within it. - */ - -enum msg_type { - CALL=0, - REPLY=1 -}; - -enum reply_stat { - MSG_ACCEPTED=0, - MSG_DENIED=1 -}; - -enum accept_stat { - SUCCESS=0, - PROG_UNAVAIL=1, - PROG_MISMATCH=2, - PROC_UNAVAIL=3, - GARBAGE_ARGS=4, - SYSTEM_ERR=5 -}; - -enum reject_stat { - RPC_MISMATCH=0, - AUTH_ERROR=1 -}; - -/* - * Reply part of an rpc exchange - */ - -/* - * Reply to an rpc request that was accepted by the server. - * Note: there could be an error even though the request was - * accepted. - */ -struct accepted_reply { - struct opaque_auth ar_verf; - enum accept_stat ar_stat; - union { - struct { - rpcvers_t low; - rpcvers_t high; - } AR_versions; - struct { - caddr_t where; - xdrproc_t proc; - } AR_results; - /* and many other null cases */ - } ru; -#define ar_results ru.AR_results -#define ar_vers ru.AR_versions -}; - -/* - * Reply to an rpc request that was rejected by the server. - */ -struct rejected_reply { - enum reject_stat rj_stat; - union { - struct { - rpcvers_t low; - rpcvers_t high; - } RJ_versions; - enum auth_stat RJ_why; /* why authentication did not work */ - } ru; -#define rj_vers ru.RJ_versions -#define rj_why ru.RJ_why -}; - -/* - * Body of a reply to an rpc request. - */ -struct reply_body { - enum reply_stat rp_stat; - union { - struct accepted_reply RP_ar; - struct rejected_reply RP_dr; - } ru; -#define rp_acpt ru.RP_ar -#define rp_rjct ru.RP_dr -}; - -/* - * Body of an rpc request call. - */ -struct call_body { - rpcvers_t cb_rpcvers; /* must be equal to two */ - rpcprog_t cb_prog; - rpcvers_t cb_vers; - rpcproc_t cb_proc; - struct opaque_auth cb_cred; - struct opaque_auth cb_verf; /* protocol specific - provided by client */ -}; - -/* - * The rpc message - */ -struct rpc_msg { - u_int32_t rm_xid; - enum msg_type rm_direction; - union { - struct call_body RM_cmb; - struct reply_body RM_rmb; - } ru; -#define rm_call ru.RM_cmb -#define rm_reply ru.RM_rmb -}; -#define acpted_rply ru.RM_rmb.ru.RP_ar -#define rjcted_rply ru.RM_rmb.ru.RP_dr - -__BEGIN_DECLS -/* - * XDR routine to handle a rpc message. - * xdr_callmsg(xdrs, cmsg) - * XDR *xdrs; - * struct rpc_msg *cmsg; - */ -extern bool_t xdr_callmsg(XDR *, struct rpc_msg *); - -/* - * XDR routine to pre-serialize the static part of a rpc message. - * xdr_callhdr(xdrs, cmsg) - * XDR *xdrs; - * struct rpc_msg *cmsg; - */ -extern bool_t xdr_callhdr(XDR *, struct rpc_msg *); - -/* - * XDR routine to handle a rpc reply. - * xdr_replymsg(xdrs, rmsg) - * XDR *xdrs; - * struct rpc_msg *rmsg; - */ -extern bool_t xdr_replymsg(XDR *, struct rpc_msg *); - - -/* - * XDR routine to handle a accepted rpc reply. - * xdr_accepted_reply(xdrs, rej) - * XDR *xdrs; - * struct accepted_reply *rej; - */ -extern bool_t xdr_accepted_reply(XDR *, struct accepted_reply *); - -/* - * XDR routine to handle a rejected rpc reply. - * xdr_rejected_reply(xdrs, rej) - * XDR *xdrs; - * struct rejected_reply *rej; - */ -extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *); - -/* - * Fills in the error part of a reply message. - * _seterr_reply(msg, error) - * struct rpc_msg *msg; - * struct rpc_err *error; - */ -extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); -__END_DECLS - -#endif /* !_RPC_RPC_MSG_H */ diff --git a/newlib/libc/sys/linux/include/rpc/rpcb_clnt.h b/newlib/libc/sys/linux/include/rpc/rpcb_clnt.h deleted file mode 100644 index 3b9966b3b..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpcb_clnt.h +++ /dev/null @@ -1,85 +0,0 @@ -/* $NetBSD: rpcb_clnt.h,v 1.1 2000/06/02 22:57:56 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/rpcb_clnt.h,v 1.2 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * rpcb_clnt.h - * Supplies C routines to get to rpcbid services. - * - */ - -/* - * Usage: - * success = rpcb_set(program, version, nconf, address); - * success = rpcb_unset(program, version, nconf); - * success = rpcb_getaddr(program, version, nconf, host); - * head = rpcb_getmaps(nconf, host); - * clnt_stat = rpcb_rmtcall(nconf, host, program, version, procedure, - * xdrargs, argsp, xdrres, resp, tout, addr_ptr) - * success = rpcb_gettime(host, timep) - * uaddr = rpcb_taddr2uaddr(nconf, taddr); - * taddr = rpcb_uaddr2uaddr(nconf, uaddr); - */ - -#ifndef _RPC_RPCB_CLNT_H -#define _RPC_RPCB_CLNT_H - -/* #pragma ident "@(#)rpcb_clnt.h 1.13 94/04/25 SMI" */ -/* rpcb_clnt.h 1.3 88/12/05 SMI */ - -#include <rpc/types.h> -#include <rpc/rpcb_prot.h> - -__BEGIN_DECLS -extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, - const struct netconfig *, const struct netbuf *); -extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t, - const struct netconfig *); -extern rpcblist *rpcb_getmaps(const struct netconfig *, const char *); -extern enum clnt_stat rpcb_rmtcall(const struct netconfig *, - const char *, const rpcprog_t, - const rpcvers_t, const rpcproc_t, - const xdrproc_t, const caddr_t, - const xdrproc_t, const caddr_t, - const struct timeval, - const struct netbuf *); -extern bool_t rpcb_getaddr(const rpcprog_t, const rpcvers_t, - const struct netconfig *, struct netbuf *, - const char *); -extern bool_t rpcb_gettime(const char *, time_t *); -extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *); -extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); -__END_DECLS - -#endif /* !_RPC_RPCB_CLNT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/rpcb_prot.h b/newlib/libc/sys/linux/include/rpc/rpcb_prot.h deleted file mode 100644 index 1442603ee..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpcb_prot.h +++ /dev/null @@ -1,660 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _RPCB_PROT_H_RPCGEN -#define _RPCB_PROT_H_RPCGEN - -#include <rpc/rpc.h> - - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * $FreeBSD: src/include/rpc/rpcb_prot.x,v 1.3 2002/03/13 10:29:06 obrien Exp $ - * - * 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 - */ -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. - */ -/* from rpcb_prot.x */ - -/* #pragma ident "@(#)rpcb_prot.x 1.5 94/04/29 SMI" */ - -#ifndef _KERNEL - - -/* - * The following procedures are supported by the protocol in version 3: - * - * RPCBPROC_NULL() returns () - * takes nothing, returns nothing - * - * RPCBPROC_SET(rpcb) returns (bool_t) - * TRUE is success, FALSE is failure. Registers the tuple - * [prog, vers, address, owner, netid]. - * Finds out owner and netid information on its own. - * - * RPCBPROC_UNSET(rpcb) returns (bool_t) - * TRUE is success, FALSE is failure. Un-registers tuple - * [prog, vers, netid]. addresses is ignored. - * If netid is NULL, unregister all. - * - * RPCBPROC_GETADDR(rpcb) returns (string). - * 0 is failure. Otherwise returns the universal address where the - * triple [prog, vers, netid] is registered. Ignore address and owner. - * - * RPCBPROC_DUMP() RETURNS (rpcblist_ptr) - * used to dump the entire rpcbind maps - * - * RPCBPROC_CALLIT(rpcb_rmtcallargs) - * RETURNS (rpcb_rmtcallres); - * Calls the procedure on the remote machine. If it is not registered, - * this procedure is quiet; i.e. it does not return error information!!! - * This routine only passes null authentication parameters. - * It has no interface to xdr routines for RPCBPROC_CALLIT. - * - * RPCBPROC_GETTIME() returns (int). - * Gets the remote machines time - * - * RPCBPROC_UADDR2TADDR(strint) RETURNS (struct netbuf) - * Returns the netbuf address from universal address. - * - * RPCBPROC_TADDR2UADDR(struct netbuf) RETURNS (string) - * Returns the universal address from netbuf address. - * - * END OF RPCBIND VERSION 3 PROCEDURES - */ -/* - * Except for RPCBPROC_CALLIT, the procedures above are carried over to - * rpcbind version 4. Those below are added or modified for version 4. - * NOTE: RPCBPROC_BCAST HAS THE SAME FUNCTIONALITY AND PROCEDURE NUMBER - * AS RPCBPROC_CALLIT. - * - * RPCBPROC_BCAST(rpcb_rmtcallargs) - * RETURNS (rpcb_rmtcallres); - * Calls the procedure on the remote machine. If it is not registered, - * this procedure IS quiet; i.e. it DOES NOT return error information!!! - * This routine should be used for broadcasting and nothing else. - * - * RPCBPROC_GETVERSADDR(rpcb) returns (string). - * 0 is failure. Otherwise returns the universal address where the - * triple [prog, vers, netid] is registered. Ignore address and owner. - * Same as RPCBPROC_GETADDR except that if the given version number - * is not available, the address is not returned. - * - * RPCBPROC_INDIRECT(rpcb_rmtcallargs) - * RETURNS (rpcb_rmtcallres); - * Calls the procedure on the remote machine. If it is not registered, - * this procedure is NOT quiet; i.e. it DOES return error information!!! - * as any normal application would expect. - * - * RPCBPROC_GETADDRLIST(rpcb) returns (rpcb_entry_list_ptr). - * Same as RPCBPROC_GETADDR except that it returns a list of all the - * addresses registered for the combination (prog, vers) (for all - * transports). - * - * RPCBPROC_GETSTAT(void) returns (rpcb_stat_byvers) - * Returns the statistics about the kind of requests received by rpcbind. - */ - -/* - * A mapping of (program, version, network ID) to address - */ - -struct rpcb { - rpcprog_t r_prog; - rpcvers_t r_vers; - char *r_netid; - char *r_addr; - char *r_owner; -}; -typedef struct rpcb rpcb; - -typedef rpcb RPCB; - - -/* - * A list of mappings - * - * Below are two definitions for the rpcblist structure. This is done because - * xdr_rpcblist() is specified to take a struct rpcblist **, rather than a - * struct rpcblist * that rpcgen would produce. One version of the rpcblist - * structure (actually called rp__list) is used with rpcgen, and the other is - * defined only in the header file for compatibility with the specified - * interface. - */ - -struct rp__list { - rpcb rpcb_map; - struct rp__list *rpcb_next; -}; -typedef struct rp__list rp__list; - -typedef rp__list *rpcblist_ptr; - -typedef struct rp__list rpcblist; -typedef struct rp__list RPCBLIST; - -#ifndef __cplusplus -struct rpcblist { - RPCB rpcb_map; - struct rpcblist *rpcb_next; -}; -#endif - -#ifdef __cplusplus -extern "C" { -#endif -extern bool_t xdr_rpcblist(XDR *, rpcblist**); -#ifdef __cplusplus -} -#endif - - -/* - * Arguments of remote calls - */ - -struct rpcb_rmtcallargs { - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - struct { - u_int args_len; - char *args_val; - } args; -}; -typedef struct rpcb_rmtcallargs rpcb_rmtcallargs; - -/* - * Client-side only representation of rpcb_rmtcallargs structure. - * - * The routine that XDRs the rpcb_rmtcallargs structure must deal with the - * opaque arguments in the "args" structure. xdr_rpcb_rmtcallargs() needs to - * be passed the XDR routine that knows the args' structure. This routine - * doesn't need to go over-the-wire (and it wouldn't make sense anyway) since - * the application being called already knows the args structure. So we use a - * different "XDR" structure on the client side, r_rpcb_rmtcallargs, which - * includes the args' XDR routine. - */ -struct r_rpcb_rmtcallargs { - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - struct { - u_int args_len; - char *args_val; - } args; - xdrproc_t xdr_args; /* encodes args */ -}; - - -/* - * Results of the remote call - */ - -struct rpcb_rmtcallres { - char *addr; - struct { - u_int results_len; - char *results_val; - } results; -}; -typedef struct rpcb_rmtcallres rpcb_rmtcallres; - -/* - * Client-side only representation of rpcb_rmtcallres structure. - */ -struct r_rpcb_rmtcallres { - char *addr; - struct { - u_int32_t results_len; - char *results_val; - } results; - xdrproc_t xdr_res; /* decodes results */ -}; - -/* - * rpcb_entry contains a merged address of a service on a particular - * transport, plus associated netconfig information. A list of rpcb_entrys - * is returned by RPCBPROC_GETADDRLIST. See netconfig.h for values used - * in r_nc_* fields. - */ - -struct rpcb_entry { - char *r_maddr; - char *r_nc_netid; - u_int r_nc_semantics; - char *r_nc_protofmly; - char *r_nc_proto; -}; -typedef struct rpcb_entry rpcb_entry; - -/* - * A list of addresses supported by a service. - */ - -struct rpcb_entry_list { - rpcb_entry rpcb_entry_map; - struct rpcb_entry_list *rpcb_entry_next; -}; -typedef struct rpcb_entry_list rpcb_entry_list; - -typedef rpcb_entry_list *rpcb_entry_list_ptr; - -/* - * rpcbind statistics - */ - -#define rpcb_highproc_2 RPCBPROC_CALLIT -#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR -#define rpcb_highproc_4 RPCBPROC_GETSTAT -#define RPCBSTAT_HIGHPROC 13 -#define RPCBVERS_STAT 3 -#define RPCBVERS_4_STAT 2 -#define RPCBVERS_3_STAT 1 -#define RPCBVERS_2_STAT 0 - -/* Link list of all the stats about getport and getaddr */ - -struct rpcbs_addrlist { - rpcprog_t prog; - rpcvers_t vers; - int success; - int failure; - char *netid; - struct rpcbs_addrlist *next; -}; -typedef struct rpcbs_addrlist rpcbs_addrlist; - -/* Link list of all the stats about rmtcall */ - -struct rpcbs_rmtcalllist { - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - int success; - int failure; - int indirect; - char *netid; - struct rpcbs_rmtcalllist *next; -}; -typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist; - -typedef int rpcbs_proc[RPCBSTAT_HIGHPROC]; - -typedef rpcbs_addrlist *rpcbs_addrlist_ptr; - -typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr; - -struct rpcb_stat { - rpcbs_proc info; - int setinfo; - int unsetinfo; - rpcbs_addrlist_ptr addrinfo; - rpcbs_rmtcalllist_ptr rmtinfo; -}; -typedef struct rpcb_stat rpcb_stat; - -/* - * One rpcb_stat structure is returned for each version of rpcbind - * being monitored. - */ - -typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT]; - -/* - * We don't define netbuf in RPCL, since it would contain structure member - * names that would conflict with the definition of struct netbuf in - * <tiuser.h>. Instead we merely declare the XDR routine xdr_netbuf() here, - * and implement it ourselves in rpc/rpcb_prot.c. - */ -#ifdef __cplusplus -extern "C" bool_t xdr_netbuf(XDR *, struct netbuf *); - -#else /* __STDC__ */ -extern bool_t xdr_netbuf(XDR *, struct netbuf *); - -#endif - -#define RPCBVERS_3 RPCBVERS -#define RPCBVERS_4 RPCBVERS4 - -#define _PATH_RPCBINDSOCK "/var/run/rpcbind.sock" - -#else /* ndef _KERNEL */ -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A mapping of (program, version, network ID) to address - */ -struct rpcb { - rpcprog_t r_prog; /* program number */ - rpcvers_t r_vers; /* version number */ - char *r_netid; /* network id */ - char *r_addr; /* universal address */ - char *r_owner; /* owner of the mapping */ -}; -typedef struct rpcb RPCB; - -/* - * A list of mappings - */ -struct rpcblist { - RPCB rpcb_map; - struct rpcblist *rpcb_next; -}; -typedef struct rpcblist RPCBLIST; -typedef struct rpcblist *rpcblist_ptr; - -/* - * Remote calls arguments - */ -struct rpcb_rmtcallargs { - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - rpcproc_t proc; /* procedure number */ - u_int32_t arglen; /* arg len */ - caddr_t args_ptr; /* argument */ - xdrproc_t xdr_args; /* XDR routine for argument */ -}; -typedef struct rpcb_rmtcallargs rpcb_rmtcallargs; - -/* - * Remote calls results - */ -struct rpcb_rmtcallres { - char *addr_ptr; /* remote universal address */ - u_int32_t resultslen; /* results length */ - caddr_t results_ptr; /* results */ - xdrproc_t xdr_results; /* XDR routine for result */ -}; -typedef struct rpcb_rmtcallres rpcb_rmtcallres; - -struct rpcb_entry { - char *r_maddr; - char *r_nc_netid; - unsigned int r_nc_semantics; - char *r_nc_protofmly; - char *r_nc_proto; -}; -typedef struct rpcb_entry rpcb_entry; - -/* - * A list of addresses supported by a service. - */ - -struct rpcb_entry_list { - rpcb_entry rpcb_entry_map; - struct rpcb_entry_list *rpcb_entry_next; -}; -typedef struct rpcb_entry_list rpcb_entry_list; - -typedef rpcb_entry_list *rpcb_entry_list_ptr; - -/* - * rpcbind statistics - */ - -#define rpcb_highproc_2 RPCBPROC_CALLIT -#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR -#define rpcb_highproc_4 RPCBPROC_GETSTAT -#define RPCBSTAT_HIGHPROC 13 -#define RPCBVERS_STAT 3 -#define RPCBVERS_4_STAT 2 -#define RPCBVERS_3_STAT 1 -#define RPCBVERS_2_STAT 0 - -/* Link list of all the stats about getport and getaddr */ - -struct rpcbs_addrlist { - rpcprog_t prog; - rpcvers_t vers; - int success; - int failure; - char *netid; - struct rpcbs_addrlist *next; -}; -typedef struct rpcbs_addrlist rpcbs_addrlist; - -/* Link list of all the stats about rmtcall */ - -struct rpcbs_rmtcalllist { - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - int success; - int failure; - int indirect; - char *netid; - struct rpcbs_rmtcalllist *next; -}; -typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist; - -typedef int rpcbs_proc[RPCBSTAT_HIGHPROC]; - -typedef rpcbs_addrlist *rpcbs_addrlist_ptr; - -typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr; - -struct rpcb_stat { - rpcbs_proc info; - int setinfo; - int unsetinfo; - rpcbs_addrlist_ptr addrinfo; - rpcbs_rmtcalllist_ptr rmtinfo; -}; -typedef struct rpcb_stat rpcb_stat; - -/* - * One rpcb_stat structure is returned for each version of rpcbind - * being monitored. - */ - -typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT]; - -#ifdef __cplusplus -} -#endif - -#endif /* ndef _KERNEL */ - -#define RPCBPROG 100000 -#define RPCBVERS 3 - -#if defined(__STDC__) || defined(__cplusplus) -#define RPCBPROC_SET 1 -extern bool_t * rpcbproc_set_3(rpcb *, CLIENT *); -extern bool_t * rpcbproc_set_3_svc(rpcb *, struct svc_req *); -#define RPCBPROC_UNSET 2 -extern bool_t * rpcbproc_unset_3(rpcb *, CLIENT *); -extern bool_t * rpcbproc_unset_3_svc(rpcb *, struct svc_req *); -#define RPCBPROC_GETADDR 3 -extern char ** rpcbproc_getaddr_3(rpcb *, CLIENT *); -extern char ** rpcbproc_getaddr_3_svc(rpcb *, struct svc_req *); -#define RPCBPROC_DUMP 4 -extern rpcblist_ptr * rpcbproc_dump_3(void *, CLIENT *); -extern rpcblist_ptr * rpcbproc_dump_3_svc(void *, struct svc_req *); -#define RPCBPROC_CALLIT 5 -extern rpcb_rmtcallres * rpcbproc_callit_3(rpcb_rmtcallargs *, CLIENT *); -extern rpcb_rmtcallres * rpcbproc_callit_3_svc(rpcb_rmtcallargs *, struct svc_req *); -#define RPCBPROC_GETTIME 6 -extern u_int * rpcbproc_gettime_3(void *, CLIENT *); -extern u_int * rpcbproc_gettime_3_svc(void *, struct svc_req *); -#define RPCBPROC_UADDR2TADDR 7 -extern struct netbuf * rpcbproc_uaddr2taddr_3(char **, CLIENT *); -extern struct netbuf * rpcbproc_uaddr2taddr_3_svc(char **, struct svc_req *); -#define RPCBPROC_TADDR2UADDR 8 -extern char ** rpcbproc_taddr2uaddr_3(struct netbuf *, CLIENT *); -extern char ** rpcbproc_taddr2uaddr_3_svc(struct netbuf *, struct svc_req *); -extern int rpcbprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define RPCBPROC_SET 1 -extern bool_t * rpcbproc_set_3(); -extern bool_t * rpcbproc_set_3_svc(); -#define RPCBPROC_UNSET 2 -extern bool_t * rpcbproc_unset_3(); -extern bool_t * rpcbproc_unset_3_svc(); -#define RPCBPROC_GETADDR 3 -extern char ** rpcbproc_getaddr_3(); -extern char ** rpcbproc_getaddr_3_svc(); -#define RPCBPROC_DUMP 4 -extern rpcblist_ptr * rpcbproc_dump_3(); -extern rpcblist_ptr * rpcbproc_dump_3_svc(); -#define RPCBPROC_CALLIT 5 -extern rpcb_rmtcallres * rpcbproc_callit_3(); -extern rpcb_rmtcallres * rpcbproc_callit_3_svc(); -#define RPCBPROC_GETTIME 6 -extern u_int * rpcbproc_gettime_3(); -extern u_int * rpcbproc_gettime_3_svc(); -#define RPCBPROC_UADDR2TADDR 7 -extern struct netbuf * rpcbproc_uaddr2taddr_3(); -extern struct netbuf * rpcbproc_uaddr2taddr_3_svc(); -#define RPCBPROC_TADDR2UADDR 8 -extern char ** rpcbproc_taddr2uaddr_3(); -extern char ** rpcbproc_taddr2uaddr_3_svc(); -extern int rpcbprog_3_freeresult (); -#endif /* K&R C */ -#define RPCBVERS4 4 - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t * rpcbproc_set_4(rpcb *, CLIENT *); -extern bool_t * rpcbproc_set_4_svc(rpcb *, struct svc_req *); -extern bool_t * rpcbproc_unset_4(rpcb *, CLIENT *); -extern bool_t * rpcbproc_unset_4_svc(rpcb *, struct svc_req *); -extern char ** rpcbproc_getaddr_4(rpcb *, CLIENT *); -extern char ** rpcbproc_getaddr_4_svc(rpcb *, struct svc_req *); -extern rpcblist_ptr * rpcbproc_dump_4(void *, CLIENT *); -extern rpcblist_ptr * rpcbproc_dump_4_svc(void *, struct svc_req *); -#define RPCBPROC_BCAST RPCBPROC_CALLIT -extern rpcb_rmtcallres * rpcbproc_bcast_4(rpcb_rmtcallargs *, CLIENT *); -extern rpcb_rmtcallres * rpcbproc_bcast_4_svc(rpcb_rmtcallargs *, struct svc_req *); -extern u_int * rpcbproc_gettime_4(void *, CLIENT *); -extern u_int * rpcbproc_gettime_4_svc(void *, struct svc_req *); -extern struct netbuf * rpcbproc_uaddr2taddr_4(char **, CLIENT *); -extern struct netbuf * rpcbproc_uaddr2taddr_4_svc(char **, struct svc_req *); -extern char ** rpcbproc_taddr2uaddr_4(struct netbuf *, CLIENT *); -extern char ** rpcbproc_taddr2uaddr_4_svc(struct netbuf *, struct svc_req *); -#define RPCBPROC_GETVERSADDR 9 -extern char ** rpcbproc_getversaddr_4(rpcb *, CLIENT *); -extern char ** rpcbproc_getversaddr_4_svc(rpcb *, struct svc_req *); -#define RPCBPROC_INDIRECT 10 -extern rpcb_rmtcallres * rpcbproc_indirect_4(rpcb_rmtcallargs *, CLIENT *); -extern rpcb_rmtcallres * rpcbproc_indirect_4_svc(rpcb_rmtcallargs *, struct svc_req *); -#define RPCBPROC_GETADDRLIST 11 -extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(rpcb *, CLIENT *); -extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(rpcb *, struct svc_req *); -#define RPCBPROC_GETSTAT 12 -extern rpcb_stat * rpcbproc_getstat_4(void *, CLIENT *); -extern rpcb_stat * rpcbproc_getstat_4_svc(void *, struct svc_req *); -extern int rpcbprog_4_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -extern bool_t * rpcbproc_set_4(); -extern bool_t * rpcbproc_set_4_svc(); -extern bool_t * rpcbproc_unset_4(); -extern bool_t * rpcbproc_unset_4_svc(); -extern char ** rpcbproc_getaddr_4(); -extern char ** rpcbproc_getaddr_4_svc(); -extern rpcblist_ptr * rpcbproc_dump_4(); -extern rpcblist_ptr * rpcbproc_dump_4_svc(); -#define RPCBPROC_BCAST RPCBPROC_CALLIT -extern rpcb_rmtcallres * rpcbproc_bcast_4(); -extern rpcb_rmtcallres * rpcbproc_bcast_4_svc(); -extern u_int * rpcbproc_gettime_4(); -extern u_int * rpcbproc_gettime_4_svc(); -extern struct netbuf * rpcbproc_uaddr2taddr_4(); -extern struct netbuf * rpcbproc_uaddr2taddr_4_svc(); -extern char ** rpcbproc_taddr2uaddr_4(); -extern char ** rpcbproc_taddr2uaddr_4_svc(); -#define RPCBPROC_GETVERSADDR 9 -extern char ** rpcbproc_getversaddr_4(); -extern char ** rpcbproc_getversaddr_4_svc(); -#define RPCBPROC_INDIRECT 10 -extern rpcb_rmtcallres * rpcbproc_indirect_4(); -extern rpcb_rmtcallres * rpcbproc_indirect_4_svc(); -#define RPCBPROC_GETADDRLIST 11 -extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(); -extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(); -#define RPCBPROC_GETSTAT 12 -extern rpcb_stat * rpcbproc_getstat_4(); -extern rpcb_stat * rpcbproc_getstat_4_svc(); -extern int rpcbprog_4_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_rpcb (XDR *, rpcb*); -extern bool_t xdr_rp__list (XDR *, rp__list*); -extern bool_t xdr_rpcblist_ptr (XDR *, rpcblist_ptr*); -extern bool_t xdr_rpcb_rmtcallargs (XDR *, rpcb_rmtcallargs*); -extern bool_t xdr_rpcb_rmtcallres (XDR *, rpcb_rmtcallres*); -extern bool_t xdr_rpcb_entry (XDR *, rpcb_entry*); -extern bool_t xdr_rpcb_entry_list (XDR *, rpcb_entry_list*); -extern bool_t xdr_rpcb_entry_list_ptr (XDR *, rpcb_entry_list_ptr*); -extern bool_t xdr_rpcbs_addrlist (XDR *, rpcbs_addrlist*); -extern bool_t xdr_rpcbs_rmtcalllist (XDR *, rpcbs_rmtcalllist*); -extern bool_t xdr_rpcbs_proc (XDR *, rpcbs_proc); -extern bool_t xdr_rpcbs_addrlist_ptr (XDR *, rpcbs_addrlist_ptr*); -extern bool_t xdr_rpcbs_rmtcalllist_ptr (XDR *, rpcbs_rmtcalllist_ptr*); -extern bool_t xdr_rpcb_stat (XDR *, rpcb_stat*); -extern bool_t xdr_rpcb_stat_byvers (XDR *, rpcb_stat_byvers); - -#else /* K&R C */ -extern bool_t xdr_rpcb (); -extern bool_t xdr_rp__list (); -extern bool_t xdr_rpcblist_ptr (); -extern bool_t xdr_rpcb_rmtcallargs (); -extern bool_t xdr_rpcb_rmtcallres (); -extern bool_t xdr_rpcb_entry (); -extern bool_t xdr_rpcb_entry_list (); -extern bool_t xdr_rpcb_entry_list_ptr (); -extern bool_t xdr_rpcbs_addrlist (); -extern bool_t xdr_rpcbs_rmtcalllist (); -extern bool_t xdr_rpcbs_proc (); -extern bool_t xdr_rpcbs_addrlist_ptr (); -extern bool_t xdr_rpcbs_rmtcalllist_ptr (); -extern bool_t xdr_rpcb_stat (); -extern bool_t xdr_rpcb_stat_byvers (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_RPCB_PROT_H_RPCGEN */ diff --git a/newlib/libc/sys/linux/include/rpc/rpcb_prot.x b/newlib/libc/sys/linux/include/rpc/rpcb_prot.x deleted file mode 100644 index 39f162776..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpcb_prot.x +++ /dev/null @@ -1,554 +0,0 @@ -%/* -% * $FreeBSD: src/include/rpc/rpcb_prot.x,v 1.3 2002/03/13 10:29:06 obrien Exp $ -% * -% * 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 -% */ -%/* -% * Copyright (c) 1988 by Sun Microsystems, Inc. -% */ - -%/* from rpcb_prot.x */ - -#ifdef RPC_HDR -% -%/* #pragma ident "@(#)rpcb_prot.x 1.5 94/04/29 SMI" */ -% -%#ifndef _KERNEL -% -#endif - -/* - * rpcb_prot.x - * rpcbind protocol, versions 3 and 4, in RPC Language - */ -% -%/* -% * The following procedures are supported by the protocol in version 3: -% * -% * RPCBPROC_NULL() returns () -% * takes nothing, returns nothing -% * -% * RPCBPROC_SET(rpcb) returns (bool_t) -% * TRUE is success, FALSE is failure. Registers the tuple -% * [prog, vers, address, owner, netid]. -% * Finds out owner and netid information on its own. -% * -% * RPCBPROC_UNSET(rpcb) returns (bool_t) -% * TRUE is success, FALSE is failure. Un-registers tuple -% * [prog, vers, netid]. addresses is ignored. -% * If netid is NULL, unregister all. -% * -% * RPCBPROC_GETADDR(rpcb) returns (string). -% * 0 is failure. Otherwise returns the universal address where the -% * triple [prog, vers, netid] is registered. Ignore address and owner. -% * -% * RPCBPROC_DUMP() RETURNS (rpcblist_ptr) -% * used to dump the entire rpcbind maps -% * -% * RPCBPROC_CALLIT(rpcb_rmtcallargs) -% * RETURNS (rpcb_rmtcallres); -% * Calls the procedure on the remote machine. If it is not registered, -% * this procedure is quiet; i.e. it does not return error information!!! -% * This routine only passes null authentication parameters. -% * It has no interface to xdr routines for RPCBPROC_CALLIT. -% * -% * RPCBPROC_GETTIME() returns (int). -% * Gets the remote machines time -% * -% * RPCBPROC_UADDR2TADDR(strint) RETURNS (struct netbuf) -% * Returns the netbuf address from universal address. -% * -% * RPCBPROC_TADDR2UADDR(struct netbuf) RETURNS (string) -% * Returns the universal address from netbuf address. -% * -% * END OF RPCBIND VERSION 3 PROCEDURES -% */ -%/* -% * Except for RPCBPROC_CALLIT, the procedures above are carried over to -% * rpcbind version 4. Those below are added or modified for version 4. -% * NOTE: RPCBPROC_BCAST HAS THE SAME FUNCTIONALITY AND PROCEDURE NUMBER -% * AS RPCBPROC_CALLIT. -% * -% * RPCBPROC_BCAST(rpcb_rmtcallargs) -% * RETURNS (rpcb_rmtcallres); -% * Calls the procedure on the remote machine. If it is not registered, -% * this procedure IS quiet; i.e. it DOES NOT return error information!!! -% * This routine should be used for broadcasting and nothing else. -% * -% * RPCBPROC_GETVERSADDR(rpcb) returns (string). -% * 0 is failure. Otherwise returns the universal address where the -% * triple [prog, vers, netid] is registered. Ignore address and owner. -% * Same as RPCBPROC_GETADDR except that if the given version number -% * is not available, the address is not returned. -% * -% * RPCBPROC_INDIRECT(rpcb_rmtcallargs) -% * RETURNS (rpcb_rmtcallres); -% * Calls the procedure on the remote machine. If it is not registered, -% * this procedure is NOT quiet; i.e. it DOES return error information!!! -% * as any normal application would expect. -% * -% * RPCBPROC_GETADDRLIST(rpcb) returns (rpcb_entry_list_ptr). -% * Same as RPCBPROC_GETADDR except that it returns a list of all the -% * addresses registered for the combination (prog, vers) (for all -% * transports). -% * -% * RPCBPROC_GETSTAT(void) returns (rpcb_stat_byvers) -% * Returns the statistics about the kind of requests received by rpcbind. -% */ -% -%/* -% * A mapping of (program, version, network ID) to address -% */ -struct rpcb { - rpcprog_t r_prog; /* program number */ - rpcvers_t r_vers; /* version number */ - string r_netid<>; /* network id */ - string r_addr<>; /* universal address */ - string r_owner<>; /* owner of this service */ -}; -#ifdef RPC_HDR -% -%typedef rpcb RPCB; -% -#endif -% -%/* -% * A list of mappings -% * -% * Below are two definitions for the rpcblist structure. This is done because -% * xdr_rpcblist() is specified to take a struct rpcblist **, rather than a -% * struct rpcblist * that rpcgen would produce. One version of the rpcblist -% * structure (actually called rp__list) is used with rpcgen, and the other is -% * defined only in the header file for compatibility with the specified -% * interface. -% */ - -struct rp__list { - rpcb rpcb_map; - struct rp__list *rpcb_next; -}; - -typedef rp__list *rpcblist_ptr; /* results of RPCBPROC_DUMP */ - -#ifdef RPC_HDR -% -%typedef struct rp__list rpcblist; -%typedef struct rp__list RPCBLIST; -% -%#ifndef __cplusplus -%struct rpcblist { -% RPCB rpcb_map; -% struct rpcblist *rpcb_next; -%}; -%#endif -% -%#ifdef __cplusplus -%extern "C" { -%#endif -%extern bool_t xdr_rpcblist(XDR *, rpcblist**); -%#ifdef __cplusplus -%} -%#endif -% -#endif - -% -%/* -% * Arguments of remote calls -% */ -struct rpcb_rmtcallargs { - rpcprog_t prog; /* program number */ - rpcvers_t vers; /* version number */ - rpcproc_t proc; /* procedure number */ - opaque args<>; /* argument */ -}; -#ifdef RPC_HDR -% -%/* -% * Client-side only representation of rpcb_rmtcallargs structure. -% * -% * The routine that XDRs the rpcb_rmtcallargs structure must deal with the -% * opaque arguments in the "args" structure. xdr_rpcb_rmtcallargs() needs to -% * be passed the XDR routine that knows the args' structure. This routine -% * doesn't need to go over-the-wire (and it wouldn't make sense anyway) since -% * the application being called already knows the args structure. So we use a -% * different "XDR" structure on the client side, r_rpcb_rmtcallargs, which -% * includes the args' XDR routine. -% */ -%struct r_rpcb_rmtcallargs { -% rpcprog_t prog; -% rpcvers_t vers; -% rpcproc_t proc; -% struct { -% u_int args_len; -% char *args_val; -% } args; -% xdrproc_t xdr_args; /* encodes args */ -%}; -% -#endif /* def RPC_HDR */ -% -%/* -% * Results of the remote call -% */ -struct rpcb_rmtcallres { - string addr<>; /* remote universal address */ - opaque results<>; /* result */ -}; -#ifdef RPC_HDR -% -%/* -% * Client-side only representation of rpcb_rmtcallres structure. -% */ -%struct r_rpcb_rmtcallres { -% char *addr; -% struct { -% u_int32_t results_len; -% char *results_val; -% } results; -% xdrproc_t xdr_res; /* decodes results */ -%}; -#endif /* RPC_HDR */ -% -%/* -% * rpcb_entry contains a merged address of a service on a particular -% * transport, plus associated netconfig information. A list of rpcb_entrys -% * is returned by RPCBPROC_GETADDRLIST. See netconfig.h for values used -% * in r_nc_* fields. -% */ -struct rpcb_entry { - string r_maddr<>; /* merged address of service */ - string r_nc_netid<>; /* netid field */ - unsigned int r_nc_semantics; /* semantics of transport */ - string r_nc_protofmly<>; /* protocol family */ - string r_nc_proto<>; /* protocol name */ -}; -% -%/* -% * A list of addresses supported by a service. -% */ -struct rpcb_entry_list { - rpcb_entry rpcb_entry_map; - struct rpcb_entry_list *rpcb_entry_next; -}; - -typedef rpcb_entry_list *rpcb_entry_list_ptr; - -% -%/* -% * rpcbind statistics -% */ -% -const rpcb_highproc_2 = RPCBPROC_CALLIT; -const rpcb_highproc_3 = RPCBPROC_TADDR2UADDR; -const rpcb_highproc_4 = RPCBPROC_GETSTAT; - -const RPCBSTAT_HIGHPROC = 13; /* # of procs in rpcbind V4 plus one */ -const RPCBVERS_STAT = 3; /* provide only for rpcbind V2, V3 and V4 */ -const RPCBVERS_4_STAT = 2; -const RPCBVERS_3_STAT = 1; -const RPCBVERS_2_STAT = 0; -% -%/* Link list of all the stats about getport and getaddr */ -struct rpcbs_addrlist { - rpcprog_t prog; - rpcvers_t vers; - int success; - int failure; - string netid<>; - struct rpcbs_addrlist *next; -}; -% -%/* Link list of all the stats about rmtcall */ -struct rpcbs_rmtcalllist { - rpcprog_t prog; - rpcvers_t vers; - rpcproc_t proc; - int success; - int failure; - int indirect; /* whether callit or indirect */ - string netid<>; - struct rpcbs_rmtcalllist *next; -}; - -typedef int rpcbs_proc[RPCBSTAT_HIGHPROC]; -typedef rpcbs_addrlist *rpcbs_addrlist_ptr; -typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr; - -struct rpcb_stat { - rpcbs_proc info; - int setinfo; - int unsetinfo; - rpcbs_addrlist_ptr addrinfo; - rpcbs_rmtcalllist_ptr rmtinfo; -}; -% -%/* -% * One rpcb_stat structure is returned for each version of rpcbind -% * being monitored. -% */ - -typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT]; - -#ifdef RPC_HDR -% -%/* -% * We don't define netbuf in RPCL, since it would contain structure member -% * names that would conflict with the definition of struct netbuf in -% * <tiuser.h>. Instead we merely declare the XDR routine xdr_netbuf() here, -% * and implement it ourselves in rpc/rpcb_prot.c. -% */ -%#ifdef __cplusplus -%extern "C" bool_t xdr_netbuf(XDR *, struct netbuf *); -% -%#else /* __STDC__ */ -%extern bool_t xdr_netbuf(XDR *, struct netbuf *); -% -%#endif -#endif /* def RPC_HDR */ - -/* - * rpcbind procedures - */ -program RPCBPROG { - version RPCBVERS { - bool - RPCBPROC_SET(rpcb) = 1; - - bool - RPCBPROC_UNSET(rpcb) = 2; - - string - RPCBPROC_GETADDR(rpcb) = 3; - - rpcblist_ptr - RPCBPROC_DUMP(void) = 4; - - rpcb_rmtcallres - RPCBPROC_CALLIT(rpcb_rmtcallargs) = 5; - - unsigned int - RPCBPROC_GETTIME(void) = 6; - - struct netbuf - RPCBPROC_UADDR2TADDR(string) = 7; - - string - RPCBPROC_TADDR2UADDR(struct netbuf) = 8; - } = 3; - - version RPCBVERS4 { - bool - RPCBPROC_SET(rpcb) = 1; - - bool - RPCBPROC_UNSET(rpcb) = 2; - - string - RPCBPROC_GETADDR(rpcb) = 3; - - rpcblist_ptr - RPCBPROC_DUMP(void) = 4; - - /* - * NOTE: RPCBPROC_BCAST has the same functionality as CALLIT; - * the new name is intended to indicate that this - * procedure should be used for broadcast RPC, and - * RPCBPROC_INDIRECT should be used for indirect calls. - */ - rpcb_rmtcallres - RPCBPROC_BCAST(rpcb_rmtcallargs) = RPCBPROC_CALLIT; - - unsigned int - RPCBPROC_GETTIME(void) = 6; - - struct netbuf - RPCBPROC_UADDR2TADDR(string) = 7; - - string - RPCBPROC_TADDR2UADDR(struct netbuf) = 8; - - string - RPCBPROC_GETVERSADDR(rpcb) = 9; - - rpcb_rmtcallres - RPCBPROC_INDIRECT(rpcb_rmtcallargs) = 10; - - rpcb_entry_list_ptr - RPCBPROC_GETADDRLIST(rpcb) = 11; - - rpcb_stat_byvers - RPCBPROC_GETSTAT(void) = 12; - } = 4; -} = 100000; -#ifdef RPC_HDR -% -%#define RPCBVERS_3 RPCBVERS -%#define RPCBVERS_4 RPCBVERS4 -% -%#define _PATH_RPCBINDSOCK "/var/run/rpcbind.sock" -% -%#else /* ndef _KERNEL */ -%#ifdef __cplusplus -%extern "C" { -%#endif -% -%/* -% * A mapping of (program, version, network ID) to address -% */ -%struct rpcb { -% rpcprog_t r_prog; /* program number */ -% rpcvers_t r_vers; /* version number */ -% char *r_netid; /* network id */ -% char *r_addr; /* universal address */ -% char *r_owner; /* owner of the mapping */ -%}; -%typedef struct rpcb RPCB; -% -%/* -% * A list of mappings -% */ -%struct rpcblist { -% RPCB rpcb_map; -% struct rpcblist *rpcb_next; -%}; -%typedef struct rpcblist RPCBLIST; -%typedef struct rpcblist *rpcblist_ptr; -% -%/* -% * Remote calls arguments -% */ -%struct rpcb_rmtcallargs { -% rpcprog_t prog; /* program number */ -% rpcvers_t vers; /* version number */ -% rpcproc_t proc; /* procedure number */ -% u_int32_t arglen; /* arg len */ -% caddr_t args_ptr; /* argument */ -% xdrproc_t xdr_args; /* XDR routine for argument */ -%}; -%typedef struct rpcb_rmtcallargs rpcb_rmtcallargs; -% -%/* -% * Remote calls results -% */ -%struct rpcb_rmtcallres { -% char *addr_ptr; /* remote universal address */ -% u_int32_t resultslen; /* results length */ -% caddr_t results_ptr; /* results */ -% xdrproc_t xdr_results; /* XDR routine for result */ -%}; -%typedef struct rpcb_rmtcallres rpcb_rmtcallres; -% -%struct rpcb_entry { -% char *r_maddr; -% char *r_nc_netid; -% unsigned int r_nc_semantics; -% char *r_nc_protofmly; -% char *r_nc_proto; -%}; -%typedef struct rpcb_entry rpcb_entry; -% -%/* -% * A list of addresses supported by a service. -% */ -% -%struct rpcb_entry_list { -% rpcb_entry rpcb_entry_map; -% struct rpcb_entry_list *rpcb_entry_next; -%}; -%typedef struct rpcb_entry_list rpcb_entry_list; -% -%typedef rpcb_entry_list *rpcb_entry_list_ptr; -% -%/* -% * rpcbind statistics -% */ -% -%#define rpcb_highproc_2 RPCBPROC_CALLIT -%#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR -%#define rpcb_highproc_4 RPCBPROC_GETSTAT -%#define RPCBSTAT_HIGHPROC 13 -%#define RPCBVERS_STAT 3 -%#define RPCBVERS_4_STAT 2 -%#define RPCBVERS_3_STAT 1 -%#define RPCBVERS_2_STAT 0 -% -%/* Link list of all the stats about getport and getaddr */ -% -%struct rpcbs_addrlist { -% rpcprog_t prog; -% rpcvers_t vers; -% int success; -% int failure; -% char *netid; -% struct rpcbs_addrlist *next; -%}; -%typedef struct rpcbs_addrlist rpcbs_addrlist; -% -%/* Link list of all the stats about rmtcall */ -% -%struct rpcbs_rmtcalllist { -% rpcprog_t prog; -% rpcvers_t vers; -% rpcproc_t proc; -% int success; -% int failure; -% int indirect; -% char *netid; -% struct rpcbs_rmtcalllist *next; -%}; -%typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist; -% -%typedef int rpcbs_proc[RPCBSTAT_HIGHPROC]; -% -%typedef rpcbs_addrlist *rpcbs_addrlist_ptr; -% -%typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr; -% -%struct rpcb_stat { -% rpcbs_proc info; -% int setinfo; -% int unsetinfo; -% rpcbs_addrlist_ptr addrinfo; -% rpcbs_rmtcalllist_ptr rmtinfo; -%}; -%typedef struct rpcb_stat rpcb_stat; -% -%/* -% * One rpcb_stat structure is returned for each version of rpcbind -% * being monitored. -% */ -% -%typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT]; -% -%#ifdef __cplusplus -%} -%#endif -% -%#endif /* ndef _KERNEL */ -#endif /* RPC_HDR */ diff --git a/newlib/libc/sys/linux/include/rpc/rpcent.h b/newlib/libc/sys/linux/include/rpc/rpcent.h deleted file mode 100644 index dbc8b0e5f..000000000 --- a/newlib/libc/sys/linux/include/rpc/rpcent.h +++ /dev/null @@ -1,69 +0,0 @@ -/* $NetBSD: rpcent.h,v 1.1 2000/06/02 22:57:56 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/rpcent.h,v 1.2 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * rpcent.h, - * For converting rpc program numbers to names etc. - * - */ - -#ifndef _RPC_RPCENT_H -#define _RPC_RPCENT_H - -/* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ -/* @(#)rpcent.h 1.1 88/12/06 SMI */ - - -struct rpcent { - char *r_name; /* name of server for this rpc program */ - char **r_aliases; /* alias list */ - int r_number; /* rpc program number */ -}; - -__BEGIN_DECLS -extern struct rpcent *getrpcbyname_r(const char *, struct rpcent *, - char *, int); -extern struct rpcent *getrpcbynumber_r(int, struct rpcent *, char *, int); -extern struct rpcent *getrpcent_r(struct rpcent *, char *, int); - -/* Old interfaces that return a pointer to a static area; MT-unsafe */ -extern struct rpcent *getrpcbyname(char *); -extern struct rpcent *getrpcbynumber(int); -extern struct rpcent *getrpcent(void); -extern void setrpcent(int); -extern void endrpcent(void); -__END_DECLS - -#endif /* !_RPC_CENT_H */ diff --git a/newlib/libc/sys/linux/include/rpc/svc.h b/newlib/libc/sys/linux/include/rpc/svc.h deleted file mode 100644 index 6a8997bda..000000000 --- a/newlib/libc/sys/linux/include/rpc/svc.h +++ /dev/null @@ -1,429 +0,0 @@ -/* $NetBSD: svc.h,v 1.17 2000/06/02 22:57:56 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)svc.h 1.35 88/12/17 SMI - * from: @(#)svc.h 1.27 94/04/25 SMI - * $FreeBSD: src/include/rpc/svc.h,v 1.22 2002/04/28 15:18:45 des Exp $ - */ - -/* - * svc.h, Server-side remote procedure call interface. - * - * Copyright (C) 1986-1993 by Sun Microsystems, Inc. - */ - -#ifndef _RPC_SVC_H -#define _RPC_SVC_H -#include <sys/cdefs.h> - -/* - * This interface must manage two items concerning remote procedure calling: - * - * 1) An arbitrary number of transport connections upon which rpc requests - * are received. The two most notable transports are TCP and UDP; they are - * created and registered by routines in svc_tcp.c and svc_udp.c, respectively; - * they in turn call xprt_register and xprt_unregister. - * - * 2) An arbitrary number of locally registered services. Services are - * described by the following four data: program number, version number, - * "service dispatch" function, a transport handle, and a boolean that - * indicates whether or not the exported program should be registered with a - * local binder service; if true the program's number and version and the - * port number from the transport handle are registered with the binder. - * These data are registered with the rpc svc system via svc_register. - * - * A service's dispatch function is called whenever an rpc request comes in - * on a transport. The request's program and version numbers must match - * those of the registered service. The dispatch function is passed two - * parameters, struct svc_req * and SVCXPRT *, defined below. - */ - -/* - * Service control requests - */ -#define SVCGET_VERSQUIET 1 -#define SVCSET_VERSQUIET 2 - - -enum xprt_stat { - XPRT_DIED, - XPRT_MOREREQS, - XPRT_IDLE -}; - -/* - * Server side transport handle - */ -typedef struct __rpc_svcxprt { - int xp_fd; - u_short xp_port; /* associated port number */ - const struct xp_ops { - /* receive incoming requests */ - bool_t (*xp_recv)(struct __rpc_svcxprt *, struct rpc_msg *); - /* get transport status */ - enum xprt_stat (*xp_stat)(struct __rpc_svcxprt *); - /* get arguments */ - bool_t (*xp_getargs)(struct __rpc_svcxprt *, xdrproc_t, - void *); - /* send reply */ - bool_t (*xp_reply)(struct __rpc_svcxprt *, struct rpc_msg *); - /* free mem allocated for args */ - bool_t (*xp_freeargs)(struct __rpc_svcxprt *, xdrproc_t, - void *); - /* destroy this struct */ - void (*xp_destroy)(struct __rpc_svcxprt *); - } *xp_ops; - int xp_addrlen; /* length of remote address */ - struct sockaddr_in xp_raddr; /* remote addr. (backward ABI compat) */ - /* XXX - fvdl stick this here for ABI backward compat reasons */ - const struct xp_ops2 { - /* catch-all function */ - bool_t (*xp_control)(struct __rpc_svcxprt *, const u_int, - void *); - } *xp_ops2; - char *xp_tp; /* transport provider device name */ - char *xp_netid; /* network token */ - struct netbuf xp_ltaddr; /* local transport address */ - struct netbuf xp_rtaddr; /* remote transport address */ - struct opaque_auth xp_verf; /* raw response verifier */ - void *xp_p1; /* private: for use by svc ops */ - void *xp_p2; /* private: for use by svc ops */ - void *xp_p3; /* private: for use by svc lib */ - int xp_type; /* transport type */ -} SVCXPRT; - -/* - * Service request - */ -struct svc_req { - u_int32_t rq_prog; /* service program number */ - u_int32_t rq_vers; /* service protocol version */ - u_int32_t rq_proc; /* the desired procedure */ - struct opaque_auth rq_cred; /* raw creds from the wire */ - void *rq_clntcred; /* read only cooked cred */ - SVCXPRT *rq_xprt; /* associated transport */ -}; - -/* - * Approved way of getting address of caller - */ -#define svc_getrpccaller(x) (&(x)->xp_rtaddr) - -/* - * FreeBSD-only definition to get the creds of the caller (AF_LOCAL). - */ -#define __svc_getcallercreds(x) ((struct cmsgcred *)(x)->xp_p2) - -/* - * Operations defined on an SVCXPRT handle - * - * SVCXPRT *xprt; - * struct rpc_msg *msg; - * xdrproc_t xargs; - * void * argsp; - */ -#define SVC_RECV(xprt, msg) \ - (*(xprt)->xp_ops->xp_recv)((xprt), (msg)) -#define svc_recv(xprt, msg) \ - (*(xprt)->xp_ops->xp_recv)((xprt), (msg)) - -#define SVC_STAT(xprt) \ - (*(xprt)->xp_ops->xp_stat)(xprt) -#define svc_stat(xprt) \ - (*(xprt)->xp_ops->xp_stat)(xprt) - -#define SVC_GETARGS(xprt, xargs, argsp) \ - (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp)) -#define svc_getargs(xprt, xargs, argsp) \ - (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp)) - -#define SVC_REPLY(xprt, msg) \ - (*(xprt)->xp_ops->xp_reply) ((xprt), (msg)) -#define svc_reply(xprt, msg) \ - (*(xprt)->xp_ops->xp_reply) ((xprt), (msg)) - -#define SVC_FREEARGS(xprt, xargs, argsp) \ - (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp)) -#define svc_freeargs(xprt, xargs, argsp) \ - (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp)) - -#define SVC_DESTROY(xprt) \ - (*(xprt)->xp_ops->xp_destroy)(xprt) -#define svc_destroy(xprt) \ - (*(xprt)->xp_ops->xp_destroy)(xprt) - -#define SVC_CONTROL(xprt, rq, in) \ - (*(xprt)->xp_ops2->xp_control)((xprt), (rq), (in)) - -/* - * Service registration - * - * svc_reg(xprt, prog, vers, dispatch, nconf) - * const SVCXPRT *xprt; - * const rpcprog_t prog; - * const rpcvers_t vers; - * const void (*dispatch)(); - * const struct netconfig *nconf; - */ - -__BEGIN_DECLS -extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t, - void (*)(struct svc_req *, SVCXPRT *), - const struct netconfig *); -__END_DECLS - -/* - * Service un-registration - * - * svc_unreg(prog, vers) - * const rpcprog_t prog; - * const rpcvers_t vers; - */ - -__BEGIN_DECLS -extern void svc_unreg(const rpcprog_t, const rpcvers_t); -__END_DECLS - -/* - * Transport registration. - * - * xprt_register(xprt) - * SVCXPRT *xprt; - */ -__BEGIN_DECLS -extern void xprt_register(SVCXPRT *); -__END_DECLS - -/* - * Transport un-register - * - * xprt_unregister(xprt) - * SVCXPRT *xprt; - */ -__BEGIN_DECLS -extern void xprt_unregister(SVCXPRT *); -__END_DECLS - - -/* - * When the service routine is called, it must first check to see if it - * knows about the procedure; if not, it should call svcerr_noproc - * and return. If so, it should deserialize its arguments via - * SVC_GETARGS (defined above). If the deserialization does not work, - * svcerr_decode should be called followed by a return. Successful - * decoding of the arguments should be followed the execution of the - * procedure's code and a call to svc_sendreply. - * - * Also, if the service refuses to execute the procedure due to too- - * weak authentication parameters, svcerr_weakauth should be called. - * Note: do not confuse access-control failure with weak authentication! - * - * NB: In pure implementations of rpc, the caller always waits for a reply - * msg. This message is sent when svc_sendreply is called. - * Therefore pure service implementations should always call - * svc_sendreply even if the function logically returns void; use - * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows - * for the abuse of pure rpc via batched calling or pipelining. In the - * case of a batched call, svc_sendreply should NOT be called since - * this would send a return message, which is what batching tries to avoid. - * It is the service/protocol writer's responsibility to know which calls are - * batched and which are not. Warning: responding to batch calls may - * deadlock the caller and server processes! - */ - -__BEGIN_DECLS -extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *); -extern void svcerr_decode(SVCXPRT *); -extern void svcerr_weakauth(SVCXPRT *); -extern void svcerr_noproc(SVCXPRT *); -extern void svcerr_progvers(SVCXPRT *, rpcvers_t, rpcvers_t); -extern void svcerr_auth(SVCXPRT *, enum auth_stat); -extern void svcerr_noprog(SVCXPRT *); -extern void svcerr_systemerr(SVCXPRT *); -extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t, - char *(*)(char *), xdrproc_t, xdrproc_t, - char *); -__END_DECLS - -/* - * Lowest level dispatching -OR- who owns this process anyway. - * Somebody has to wait for incoming requests and then call the correct - * service routine. The routine svc_run does infinite waiting; i.e., - * svc_run never returns. - * Since another (co-existant) package may wish to selectively wait for - * incoming calls or other events outside of the rpc architecture, the - * routine svc_getreq is provided. It must be passed readfds, the - * "in-place" results of a select system call (see select, section 2). - */ - -/* - * Global keeper of rpc service descriptors in use - * dynamic; must be inspected before each call to select - */ -extern int svc_maxfd; -#ifdef FD_SETSIZE -extern fd_set svc_fdset; -#define svc_fds svc_fdset.fds_bits[0] /* compatibility */ -#else -extern int svc_fds; -#endif /* def FD_SETSIZE */ - -/* - * a small program implemented by the svc_rpc implementation itself; - * also see clnt.h for protocol numbers. - */ -__BEGIN_DECLS -extern void rpctest_service(void); -__END_DECLS - -__BEGIN_DECLS -extern void svc_getreq(int); -extern void svc_getreqset(fd_set *); -extern void svc_getreq_common(int); -struct pollfd; -extern void svc_getreq_poll(struct pollfd *, int); - -extern void svc_run(void); -extern void svc_exit(void); -__END_DECLS - -/* - * Socket to use on svcxxx_create call to get default socket - */ -#define RPC_ANYSOCK -1 -#define RPC_ANYFD RPC_ANYSOCK - -/* - * These are the existing service side transport implementations - */ - -__BEGIN_DECLS -/* - * Transport independent svc_create routine. - */ -extern int svc_create(void (*)(struct svc_req *, SVCXPRT *), - const rpcprog_t, const rpcvers_t, const char *); -/* - * void (*dispatch)(); -- dispatch routine - * const rpcprog_t prognum; -- program number - * const rpcvers_t versnum; -- version number - * const char *nettype; -- network type - */ - - -/* - * Generic server creation routine. It takes a netconfig structure - * instead of a nettype. - */ - -extern SVCXPRT *svc_tp_create(void (*)(struct svc_req *, SVCXPRT *), - const rpcprog_t, const rpcvers_t, - const struct netconfig *); - /* - * void (*dispatch)(); -- dispatch routine - * const rpcprog_t prognum; -- program number - * const rpcvers_t versnum; -- version number - * const struct netconfig *nconf; -- netconfig structure - */ - - -/* - * Generic TLI create routine - */ -extern SVCXPRT *svc_tli_create(const int, const struct netconfig *, - const struct t_bind *, const u_int, - const u_int); -/* - * const int fd; -- connection end point - * const struct netconfig *nconf; -- netconfig structure for network - * const struct t_bind *bindaddr; -- local bind address - * const u_int sendsz; -- max sendsize - * const u_int recvsz; -- max recvsize - */ - -/* - * Connectionless and connectionful create routines - */ - -extern SVCXPRT *svc_vc_create(const int, const u_int, const u_int); -/* - * const int fd; -- open connection end point - * const u_int sendsize; -- max send size - * const u_int recvsize; -- max recv size - */ - -/* - * Added for compatibility to old rpc 4.0. Obsoleted by svc_vc_create(). - */ -extern SVCXPRT *svcunix_create(int, u_int, u_int, char *); - -extern SVCXPRT *svc_dg_create(const int, const u_int, const u_int); - /* - * const int fd; -- open connection - * const u_int sendsize; -- max send size - * const u_int recvsize; -- max recv size - */ - - -/* - * the routine takes any *open* connection - * descriptor as its first input and is used for open connections. - */ -extern SVCXPRT *svc_fd_create(const int, const u_int, const u_int); -/* - * const int fd; -- open connection end point - * const u_int sendsize; -- max send size - * const u_int recvsize; -- max recv size - */ - -/* - * Added for compatibility to old rpc 4.0. Obsoleted by svc_fd_create(). - */ -extern SVCXPRT *svcunixfd_create(int, u_int, u_int); - -/* - * Memory based rpc (for speed check and testing) - */ -extern SVCXPRT *svc_raw_create(void); - -/* - * svc_dg_enable_cache() enables the cache on dg transports. - */ -int svc_dg_enablecache(SVCXPRT *, const u_int); - -int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid); - -__END_DECLS - - -/* for backward compatibility */ -#include <rpc/svc_soc.h> - -#endif /* !_RPC_SVC_H */ diff --git a/newlib/libc/sys/linux/include/rpc/svc_auth.h b/newlib/libc/sys/linux/include/rpc/svc_auth.h deleted file mode 100644 index 366f752d9..000000000 --- a/newlib/libc/sys/linux/include/rpc/svc_auth.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $NetBSD: svc_auth.h,v 1.8 2000/06/02 22:57:57 fvdl Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)svc_auth.h 1.6 86/07/16 SMI - * @(#)svc_auth.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/svc_auth.h,v 1.14 2002/03/23 17:24:55 imp Exp $ - */ - -/* - * svc_auth.h, Service side of rpc authentication. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_SVC_AUTH_H -#define _RPC_SVC_AUTH_H - -/* - * Server side authenticator - */ -__BEGIN_DECLS -extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *); -extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *, - struct rpc_msg *)); - -__END_DECLS - -#endif /* !_RPC_SVC_AUTH_H */ diff --git a/newlib/libc/sys/linux/include/rpc/svc_dg.h b/newlib/libc/sys/linux/include/rpc/svc_dg.h deleted file mode 100644 index 67d25643b..000000000 --- a/newlib/libc/sys/linux/include/rpc/svc_dg.h +++ /dev/null @@ -1,51 +0,0 @@ -/* $NetBSD: svc_dg.h,v 1.1 2000/06/02 23:11:16 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/svc_dg.h,v 1.1 2001/03/19 12:49:47 alfred Exp $ */ - -/* - * 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 - */ - -/* - * XXX - this file exists only so that the rpcbind code can pull it in. - * This should go away. It should only be include by svc_dg.c and - * rpcb_svc_com.c in the rpcbind code. - */ - -/* - * kept in xprt->xp_p2 - */ -struct svc_dg_data { - /* XXX: optbuf should be the first field, used by ti_opts.c code */ - size_t su_iosz; /* size of send.recv buffer */ - u_int32_t su_xid; /* transaction id */ - XDR su_xdrs; /* XDR handle */ - char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */ - void *su_cache; /* cached data, NULL if none */ -}; - -#define __rpcb_get_dg_xidp(x) (&((struct svc_dg_data *)(x)->xp_p2)->su_xid) diff --git a/newlib/libc/sys/linux/include/rpc/svc_soc.h b/newlib/libc/sys/linux/include/rpc/svc_soc.h deleted file mode 100644 index ceb4392c7..000000000 --- a/newlib/libc/sys/linux/include/rpc/svc_soc.h +++ /dev/null @@ -1,116 +0,0 @@ -/* $NetBSD: svc_soc.h,v 1.1 2000/06/02 22:57:57 fvdl Exp $ */ -/* $FreeBSD: src/include/rpc/svc_soc.h,v 1.2 2002/03/23 17:24:55 imp Exp $ */ - -/* - * 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 - */ -/* - * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc. - */ - -/* - * svc.h, Server-side remote procedure call interface. - */ - -#ifndef _RPC_SVC_SOC_H -#define _RPC_SVC_SOC_H -#include <sys/cdefs.h> - -/* #pragma ident "@(#)svc_soc.h 1.11 94/04/25 SMI" */ -/* svc_soc.h 1.8 89/05/01 SMI */ - -/* - * All the following declarations are only for backward compatibility - * with TS-RPC - */ - -/* - * Approved way of getting address of caller - */ -#define svc_getcaller(x) (&(x)->xp_raddr) - -/* - * Service registration - * - * svc_register(xprt, prog, vers, dispatch, protocol) - * SVCXPRT *xprt; - * u_long prog; - * u_long vers; - * void (*dispatch)(); - * int protocol; like TCP or UDP, zero means do not register - */ -__BEGIN_DECLS -extern bool_t svc_register(SVCXPRT *, u_long, u_long, - void (*)(struct svc_req *, SVCXPRT *), int); -__END_DECLS - -/* - * Service un-registration - * - * svc_unregister(prog, vers) - * u_long prog; - * u_long vers; - */ -__BEGIN_DECLS -extern void svc_unregister(u_long, u_long); -__END_DECLS - - -/* - * Memory based rpc for testing and timing. - */ -__BEGIN_DECLS -extern SVCXPRT *svcraw_create(void); -__END_DECLS - - -/* - * Udp based rpc. - */ -__BEGIN_DECLS -extern SVCXPRT *svcudp_create(int); -extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int); -extern int svcudp_enablecache(SVCXPRT *, u_long); -__END_DECLS - - -/* - * Tcp based rpc. - */ -__BEGIN_DECLS -extern SVCXPRT *svctcp_create(int, u_int, u_int); -__END_DECLS - -/* - * Fd based rpc. - */ -__BEGIN_DECLS -extern SVCXPRT *svcfd_create(int, u_int, u_int); -__END_DECLS - -#endif /* !_RPC_SVC_SOC_H */ diff --git a/newlib/libc/sys/linux/include/rpc/types.h b/newlib/libc/sys/linux/include/rpc/types.h deleted file mode 100644 index 259127c00..000000000 --- a/newlib/libc/sys/linux/include/rpc/types.h +++ /dev/null @@ -1,108 +0,0 @@ -/* $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)types.h 1.18 87/07/24 SMI - * from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC - * $FreeBSD: src/include/rpc/types.h,v 1.10 2001/03/19 12:49:47 alfred Exp $ - */ - -/* - * Rpc additions to <sys/types.h> - */ -#ifndef _RPC_TYPES_H -#define _RPC_TYPES_H - -#include <sys/types.h> - -typedef int32_t bool_t; -typedef int32_t enum_t; - -typedef u_int32_t rpcprog_t; -typedef u_int32_t rpcvers_t; -typedef u_int32_t rpcproc_t; -typedef u_int32_t rpcprot_t; -typedef u_int32_t rpcport_t; -typedef int32_t rpc_inline_t; - -#define __dontcare__ -1 - -#ifndef FALSE -# define FALSE (0) -#endif -#ifndef TRUE -# define TRUE (1) -#endif -#ifndef NULL -# define NULL 0 -#endif - -#define mem_alloc(bsize) calloc(1, bsize) -#define mem_free(ptr, bsize) free(ptr) - -#include <sys/time.h> -#include <netconfig.h> - -/* - * The netbuf structure is defined here, because FreeBSD / NetBSD only use - * it inside the RPC code. It's in <xti.h> on SVR4, but it would be confusing - * to have an xti.h, since FreeBSD / NetBSD does not support XTI/TLI. - */ - -/* - * The netbuf structure is used for transport-independent address storage. - */ -struct netbuf { - unsigned int maxlen; - unsigned int len; - void *buf; -}; - -/* - * The format of the addres and options arguments of the XTI t_bind call. - * Only provided for compatibility, it should not be used. - */ - -struct t_bind { - struct netbuf addr; - unsigned int qlen; -}; - -/* - * Internal library and rpcbind use. This is not an exported interface, do - * not use. - */ -struct __rpc_sockinfo { - int si_af; - int si_proto; - int si_socktype; - int si_alen; -}; - -#endif /* !_RPC_TYPES_H */ diff --git a/newlib/libc/sys/linux/include/rpc/xdr.h b/newlib/libc/sys/linux/include/rpc/xdr.h deleted file mode 100644 index 678dbe417..000000000 --- a/newlib/libc/sys/linux/include/rpc/xdr.h +++ /dev/null @@ -1,365 +0,0 @@ -/* $NetBSD: xdr.h,v 1.19 2000/07/17 05:00:45 matt Exp $ */ - -/* - * 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, MERCHANTABILITY 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 - * - * from: @(#)xdr.h 1.19 87/04/22 SMI - * from: @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/xdr.h,v 1.21 2002/04/28 15:18:45 des Exp $ - */ - -/* - * xdr.h, External Data Representation Serialization Routines. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#ifndef _RPC_XDR_H -#define _RPC_XDR_H -#include <sys/cdefs.h> - -/* - * XDR provides a conventional way for converting between C data - * types and an external bit-string representation. Library supplied - * routines provide for the conversion on built-in C data types. These - * routines and utility routines defined here are used to help implement - * a type encode/decode routine for each user-defined type. - * - * Each data type provides a single procedure which takes two arguments: - * - * bool_t - * xdrproc(xdrs, argresp) - * XDR *xdrs; - * <type> *argresp; - * - * xdrs is an instance of a XDR handle, to which or from which the data - * type is to be converted. argresp is a pointer to the structure to be - * converted. The XDR handle contains an operation field which indicates - * which of the operations (ENCODE, DECODE * or FREE) is to be performed. - * - * XDR_DECODE may allocate space if the pointer argresp is null. This - * data can be freed with the XDR_FREE operation. - * - * We write only one procedure per data type to make it easy - * to keep the encode and decode procedures for a data type consistent. - * In many cases the same code performs all operations on a user defined type, - * because all the hard work is done in the component type routines. - * decode as a series of calls on the nested data types. - */ - -/* - * Xdr operations. XDR_ENCODE causes the type to be encoded into the - * stream. XDR_DECODE causes the type to be extracted from the stream. - * XDR_FREE can be used to release the space allocated by an XDR_DECODE - * request. - */ -enum xdr_op { - XDR_ENCODE=0, - XDR_DECODE=1, - XDR_FREE=2 -}; - -/* - * This is the number of bytes per unit of external data. - */ -#define BYTES_PER_XDR_UNIT (4) -#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \ - * BYTES_PER_XDR_UNIT) - -/* - * The XDR handle. - * Contains operation which is being applied to the stream, - * an operations vector for the particular implementation (e.g. see xdr_mem.c), - * and two private fields for the use of the particular implementation. - */ -typedef struct __rpc_xdr { - enum xdr_op x_op; /* operation; fast additional param */ - const struct xdr_ops { - /* get a long from underlying stream */ - bool_t (*x_getlong)(struct __rpc_xdr *, long *); - /* put a long to " */ - bool_t (*x_putlong)(struct __rpc_xdr *, const long *); - /* get some bytes from " */ - bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); - /* put some bytes to " */ - bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); - /* returns bytes off from beginning */ - u_int (*x_getpostn)(struct __rpc_xdr *); - /* lets you reposition the stream */ - bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); - /* buf quick ptr to buffered data */ - int32_t *(*x_inline)(struct __rpc_xdr *, u_int); - /* free privates of this xdr_stream */ - void (*x_destroy)(struct __rpc_xdr *); - bool_t (*x_control)(struct __rpc_xdr *, int, void *); - } *x_ops; - char * x_public; /* users' data */ - void * x_private; /* pointer to private data */ - char * x_base; /* private used for position info */ - int x_handy; /* extra private word */ -} XDR; - -/* - * A xdrproc_t exists for each data type which is to be encoded or decoded. - * - * The second argument to the xdrproc_t is a pointer to an opaque pointer. - * The opaque pointer generally points to a structure of the data type - * to be decoded. If this pointer is 0, then the type routines should - * allocate dynamic storage of the appropriate size and return it. - */ -#ifdef _KERNEL -typedef bool_t (*xdrproc_t)(XDR *, void *, u_int); -#else -/* - * XXX can't actually prototype it, because some take three args!!! - */ -typedef bool_t (*xdrproc_t)(XDR *, ...); -#endif - -/* - * Operations defined on a XDR handle - * - * XDR *xdrs; - * long *longp; - * char * addr; - * u_int len; - * u_int pos; - */ -#define XDR_GETLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) -#define xdr_getlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_getlong)(xdrs, longp) - -#define XDR_PUTLONG(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) -#define xdr_putlong(xdrs, longp) \ - (*(xdrs)->x_ops->x_putlong)(xdrs, longp) - -static __inline int -xdr_getint32(XDR *xdrs, int32_t *ip) -{ - long l; - - if (!xdr_getlong(xdrs, &l)) - return (FALSE); - *ip = (int32_t)l; - return (TRUE); -} - -static __inline int -xdr_putint32(XDR *xdrs, int32_t *ip) -{ - long l; - - l = (long)*ip; - return xdr_putlong(xdrs, &l); -} - -#define XDR_GETINT32(xdrs, int32p) xdr_getint32(xdrs, int32p) -#define XDR_PUTINT32(xdrs, int32p) xdr_putint32(xdrs, int32p) - -#define XDR_GETBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) -#define xdr_getbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len) - -#define XDR_PUTBYTES(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) -#define xdr_putbytes(xdrs, addr, len) \ - (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len) - -#define XDR_GETPOS(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) -#define xdr_getpos(xdrs) \ - (*(xdrs)->x_ops->x_getpostn)(xdrs) - -#define XDR_SETPOS(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) -#define xdr_setpos(xdrs, pos) \ - (*(xdrs)->x_ops->x_setpostn)(xdrs, pos) - -#define XDR_INLINE(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) -#define xdr_inline(xdrs, len) \ - (*(xdrs)->x_ops->x_inline)(xdrs, len) - -#define XDR_DESTROY(xdrs) \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs) -#define xdr_destroy(xdrs) \ - if ((xdrs)->x_ops->x_destroy) \ - (*(xdrs)->x_ops->x_destroy)(xdrs) - -#define XDR_CONTROL(xdrs, req, op) \ - if ((xdrs)->x_ops->x_control) \ - (*(xdrs)->x_ops->x_control)(xdrs, req, op) -#define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op) - -/* - * Solaris strips the '_t' from these types -- not sure why. - * But, let's be compatible. - */ -#define xdr_rpcvers(xdrs, versp) xdr_u_int32(xdrs, versp) -#define xdr_rpcprog(xdrs, progp) xdr_u_int32(xdrs, progp) -#define xdr_rpcproc(xdrs, procp) xdr_u_int32(xdrs, procp) -#define xdr_rpcprot(xdrs, protp) xdr_u_int32(xdrs, protp) -#define xdr_rpcport(xdrs, portp) xdr_u_int32(xdrs, portp) - -/* - * Support struct for discriminated unions. - * You create an array of xdrdiscrim structures, terminated with - * a entry with a null procedure pointer. The xdr_union routine gets - * the discriminant value and then searches the array of structures - * for a matching value. If a match is found the associated xdr routine - * is called to handle that part of the union. If there is - * no match, then a default routine may be called. - * If there is no match and no default routine it is an error. - */ -#define NULL_xdrproc_t ((xdrproc_t)0) -struct xdr_discrim { - int value; - xdrproc_t proc; -}; - -/* - * In-line routines for fast encode/decode of primitive data types. - * Caveat emptor: these use single memory cycles to get the - * data from the underlying buffer, and will fail to operate - * properly if the data is not aligned. The standard way to use these - * is to say: - * if ((buf = XDR_INLINE(xdrs, count)) == NULL) - * return (FALSE); - * <<< macro calls >>> - * where ``count'' is the number of bytes of data occupied - * by the primitive data types. - * - * N.B. and frozen for all time: each data type here uses 4 bytes - * of external representation. - */ -#define IXDR_GET_INT32(buf) ((int32_t)__ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_INT32(buf, v) (*(buf)++ =(int32_t)__htonl((u_int32_t)v)) -#define IXDR_GET_U_INT32(buf) ((u_int32_t)IXDR_GET_INT32(buf)) -#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32((buf), ((int32_t)(v))) - -#define IXDR_GET_LONG(buf) ((long)__ntohl((u_int32_t)*(buf)++)) -#define IXDR_PUT_LONG(buf, v) (*(buf)++ =(int32_t)__htonl((u_int32_t)v)) - -#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf)) -#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf)) -#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf)) -#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf)) -#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf)) - -#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) -#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), (v)) - -/* - * These are the "generic" xdr routines. - */ -__BEGIN_DECLS -extern bool_t xdr_void(void); -extern bool_t xdr_int(XDR *, int *); -extern bool_t xdr_u_int(XDR *, u_int *); -extern bool_t xdr_long(XDR *, long *); -extern bool_t xdr_u_long(XDR *, u_long *); -extern bool_t xdr_short(XDR *, short *); -extern bool_t xdr_u_short(XDR *, u_short *); -extern bool_t xdr_int16_t(XDR *, int16_t *); -extern bool_t xdr_u_int16_t(XDR *, u_int16_t *); -extern bool_t xdr_int32_t(XDR *, int32_t *); -extern bool_t xdr_u_int32_t(XDR *, u_int32_t *); -extern bool_t xdr_int64_t(XDR *, int64_t *); -extern bool_t xdr_u_int64_t(XDR *, u_int64_t *); -extern bool_t xdr_bool(XDR *, bool_t *); -extern bool_t xdr_enum(XDR *, enum_t *); -extern bool_t xdr_array(XDR *, char **, u_int *, u_int, u_int, xdrproc_t); -extern bool_t xdr_bytes(XDR *, char **, u_int *, u_int); -extern bool_t xdr_opaque(XDR *, char *, u_int); -extern bool_t xdr_string(XDR *, char **, u_int); -extern bool_t xdr_union(XDR *, enum_t *, char *, const struct xdr_discrim *, xdrproc_t); -extern bool_t xdr_char(XDR *, char *); -extern bool_t xdr_u_char(XDR *, u_char *); -extern bool_t xdr_vector(XDR *, char *, u_int, u_int, xdrproc_t); -extern bool_t xdr_float(XDR *, float *); -extern bool_t xdr_double(XDR *, double *); -extern bool_t xdr_quadruple(XDR *, long double *); -extern bool_t xdr_reference(XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_pointer(XDR *, char **, u_int, xdrproc_t); -extern bool_t xdr_wrapstring(XDR *, char **); -extern void xdr_free(xdrproc_t, void *); -extern bool_t xdr_hyper(XDR *, long long *); -extern bool_t xdr_u_hyper(XDR *, unsigned long long *); -extern bool_t xdr_longlong_t(XDR *, long long *); -extern bool_t xdr_u_longlong_t(XDR *, unsigned long long *); -__END_DECLS - -/* - * Common opaque bytes objects used by many rpc protocols; - * declared here due to commonality. - */ -#define MAX_NETOBJ_SZ 1024 -struct netobj { - u_int n_len; - char *n_bytes; -}; -typedef struct netobj netobj; -extern bool_t xdr_netobj(XDR *, struct netobj *); - -/* - * These are the public routines for the various implementations of - * xdr streams. - */ -__BEGIN_DECLS -/* XDR using memory buffers */ -extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op); - -/* XDR using stdio library */ -#ifdef _STDIO_H_ -extern void xdrstdio_create(XDR *, FILE *, enum xdr_op); -#endif - -/* XDR pseudo records for tcp */ -extern void xdrrec_create(XDR *, u_int, u_int, void *, - int (*)(void *, void *, int), - int (*)(void *, void *, int)); - -/* make end of xdr record */ -extern bool_t xdrrec_endofrecord(XDR *, int); - -/* move to beginning of next record */ -extern bool_t xdrrec_skiprecord(XDR *); - -/* true if no more input */ -extern bool_t xdrrec_eof(XDR *); -extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); -__END_DECLS - -#endif /* !_RPC_XDR_H */ |