RPC(3): Port to RTEMS

This commit is contained in:
Sebastian Huber
2016-06-09 10:48:05 +02:00
parent 60b1d40751
commit 9880635f2e
9 changed files with 166 additions and 24 deletions

View File

@@ -73,7 +73,8 @@ enum clnt_stat {
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) */
RPC_CANTCREATESTREAM = 28, /* can't push rpc module (cots) */
_CLNT_STAT = 0xffffffff
};
#ifdef __cplusplus

View File

@@ -53,12 +53,14 @@
enum msg_type {
CALL=0,
REPLY=1
REPLY=1,
_MSG_TYPE = 0xffffffff
};
enum reply_stat {
MSG_ACCEPTED=0,
MSG_DENIED=1
MSG_DENIED=1,
_REPLY_STAT = 0xffffffff
};
enum accept_stat {
@@ -67,12 +69,14 @@ enum accept_stat {
PROG_MISMATCH=2,
PROC_UNAVAIL=3,
GARBAGE_ARGS=4,
SYSTEM_ERR=5
SYSTEM_ERR=5,
_ACCEPT_STAT = 0xffffffff
};
enum reject_stat {
RPC_MISMATCH=0,
AUTH_ERROR=1
AUTH_ERROR=1,
_REJECT_STAT = 0xffffffff
};
/*

View File

@@ -81,7 +81,8 @@
enum xprt_stat {
XPRT_DIED,
XPRT_MOREREQS,
XPRT_IDLE
XPRT_IDLE,
_XPRT_STAT = 0xffffffff
};
/*

View File

@@ -69,7 +69,8 @@ enum db_status {
DB_BADOBJECT = 5,
DB_MEMORY_LIMIT = 6,
DB_STORAGE_LIMIT = 7,
DB_INTERNAL_ERROR = 8
DB_INTERNAL_ERROR = 8,
_DB_STATUS = 0xffffffff
};
typedef enum db_status db_status;
@@ -80,7 +81,8 @@ enum db_action {
DB_FIRST = 3,
DB_NEXT = 4,
DB_ALL = 5,
DB_RESET_NEXT = 6
DB_RESET_NEXT = 6,
_DB_ACTION = 0xffffffff
};
typedef enum db_action db_action;

View File

@@ -235,7 +235,8 @@ struct dom_binding {
/* error code in ypbind_resp.ypbind_status */
enum ypbind_resptype {
YPBIND_SUCC_VAL = 1,
YPBIND_FAIL_VAL = 2
YPBIND_FAIL_VAL = 2,
_YPBIND_RESPTYPE = 0xffffffff
};
/* network order, of course */

View File

@@ -67,5 +67,10 @@
#define _getpeername getpeername
#define _getprogname getprogname
#define _getsockname getsockname
#ifdef __rtems__
#define _pthread_mutex_lock pthread_mutex_lock
#define _getsockopt getsockopt
#define _bind bind
#endif /* __rtems__ */
#endif /* _NAMESPACE_H_ */

View File

@@ -1038,7 +1038,7 @@ done:
*
* Assuming that the address is all properly allocated
*/
int
bool_t
rpcb_getaddr(program, version, nconf, address, host)
rpcprog_t program;
rpcvers_t version;

101
libbsd.py
View File

@@ -1772,6 +1772,8 @@ def user_space(mm):
'include/arpa/nameser.h',
'include/db.h',
'include/err.h',
'include/gssapi/gssapi.h',
'include/gssapi.h',
'include/ifaddrs.h',
'include/mpool.h',
'include/netconfig.h',
@@ -1780,27 +1782,36 @@ def user_space(mm):
'include/nsswitch.h',
'include/resolv.h',
'include/res_update.h',
'include/rpc/auth_des.h',
'include/rpc/auth.h',
'include/rpc/auth_unix.h',
'include/rpc/clnt.h',
'include/rpc/clnt_soc.h',
'include/rpc/clnt_stat.h',
'include/rpc/pmap_clnt.h',
'include/rpc/pmap_prot.h',
'include/rpc/rpcb_clnt.h',
'include/rpc/rpcent.h',
'include/rpc/rpc.h',
'include/rpc/rpc_msg.h',
'include/rpc/svc_auth.h',
'include/rpc/pmap_rmt.h',
'include/rpc/svc_soc.h',
'include/rpc/nettype.h',
'include/rpc/xdr.h',
'include/rpc/svc.h',
'include/rpc/rpc_msg.h',
'include/rpc/rpcsec_gss.h',
'include/rpc/raw.h',
'include/rpc/clnt_stat.h',
'include/rpc/auth.h',
'include/rpc/svc_dg.h',
'include/rpc/auth_kerb.h',
'include/rpc/auth_des.h',
'include/rpc/rpcb_clnt.h',
'include/rpc/rpc.h',
'include/rpc/des.h',
'include/rpc/des_crypt.h',
'include/rpc/svc_auth.h',
'include/rpc/pmap_clnt.h',
'include/rpc/clnt_soc.h',
'include/rpc/pmap_prot.h',
'include/rpc/auth_unix.h',
'include/rpc/rpc_com.h',
'include/rpc/rpcent.h',
'include/rpcsvc/nis_db.h',
'include/rpcsvc/nislib.h',
'include/rpcsvc/nis_tags.h',
'include/rpc/svc_soc.h',
'include/rpcsvc/ypclnt.h',
'include/rpcsvc/yp_prot.h',
'include/rpc/xdr.h',
'include/sysexits.h',
'lib/libc/db/btree/btree.h',
'lib/libc/db/btree/extern.h',
@@ -1824,6 +1835,8 @@ def user_space(mm):
'lib/libc/net/res_config.h',
'lib/libc/resolv/res_debug.h',
'lib/libc/resolv/res_private.h',
'lib/libc/rpc/mt_misc.h',
'lib/libc/rpc/rpc_com.h',
'lib/libc/stdio/local.h',
'lib/libipsec/ipsec_strerror.h',
'lib/libipsec/libpfkey.h',
@@ -1846,6 +1859,11 @@ def user_space(mm):
mm.generator['convert'](),
mm.generator['convert'](),
mm.generator['rpc-gen']()))
mod.addFile(mm.generator['file']('include/rpcsvc/nis.x',
mm.generator['freebsd-path'](),
mm.generator['convert'](),
mm.generator['convert'](),
mm.generator['rpc-gen']()))
mod.addFile(mm.generator['file']('sbin/route/keywords',
mm.generator['freebsd-path'](),
mm.generator['convert'](),
@@ -1955,6 +1973,61 @@ def user_space(mm):
'lib/libc/resolv/res_send.c',
'lib/libc/resolv/res_state.c',
'lib/libc/resolv/res_update.c',
'lib/libc/rpc/auth_des.c',
'lib/libc/rpc/authdes_prot.c',
'lib/libc/rpc/auth_none.c',
'lib/libc/rpc/auth_time.c',
'lib/libc/rpc/auth_unix.c',
'lib/libc/rpc/authunix_prot.c',
'lib/libc/rpc/bindresvport.c',
'lib/libc/rpc/clnt_bcast.c',
'lib/libc/rpc/clnt_dg.c',
'lib/libc/rpc/clnt_generic.c',
'lib/libc/rpc/clnt_perror.c',
'lib/libc/rpc/clnt_raw.c',
'lib/libc/rpc/clnt_simple.c',
'lib/libc/rpc/clnt_vc.c',
'lib/libc/rpc/crypt_client.c',
'lib/libc/rpc/des_crypt.c',
'lib/libc/rpc/des_soft.c',
'lib/libc/rpc/getnetconfig.c',
'lib/libc/rpc/getnetpath.c',
'lib/libc/rpc/getpublickey.c',
'lib/libc/rpc/getrpcent.c',
'lib/libc/rpc/getrpcport.c',
'lib/libc/rpc/key_call.c',
'lib/libc/rpc/key_prot_xdr.c',
'lib/libc/rpc/mt_misc.c',
'lib/libc/rpc/netname.c',
'lib/libc/rpc/netnamer.c',
'lib/libc/rpc/pmap_clnt.c',
'lib/libc/rpc/pmap_getmaps.c',
'lib/libc/rpc/pmap_getport.c',
'lib/libc/rpc/pmap_prot2.c',
'lib/libc/rpc/pmap_prot.c',
'lib/libc/rpc/pmap_rmt.c',
'lib/libc/rpc/rpcb_clnt.c',
'lib/libc/rpc/rpcb_prot.c',
'lib/libc/rpc/rpcb_st_xdr.c',
'lib/libc/rpc/rpc_callmsg.c',
'lib/libc/rpc/rpc_commondata.c',
'lib/libc/rpc/rpcdname.c',
'lib/libc/rpc/rpc_dtablesize.c',
'lib/libc/rpc/rpc_generic.c',
'lib/libc/rpc/rpc_prot.c',
'lib/libc/rpc/rpcsec_gss_stub.c',
'lib/libc/rpc/rpc_soc.c',
'lib/libc/rpc/rtime.c',
'lib/libc/rpc/svc_auth.c',
'lib/libc/rpc/svc_auth_des.c',
'lib/libc/rpc/svc_auth_unix.c',
'lib/libc/rpc/svc.c',
'lib/libc/rpc/svc_dg.c',
'lib/libc/rpc/svc_generic.c',
'lib/libc/rpc/svc_raw.c',
'lib/libc/rpc/svc_run.c',
'lib/libc/rpc/svc_simple.c',
'lib/libc/rpc/svc_vc.c',
'lib/libc/stdio/fgetln.c',
'lib/libc/stdlib/strtoimax.c',
'lib/libc/stdlib/strtonum.c',

View File

@@ -282,6 +282,61 @@ def build(bld):
'freebsd/lib/libc/resolv/res_send.c',
'freebsd/lib/libc/resolv/res_state.c',
'freebsd/lib/libc/resolv/res_update.c',
'freebsd/lib/libc/rpc/auth_des.c',
'freebsd/lib/libc/rpc/auth_none.c',
'freebsd/lib/libc/rpc/auth_time.c',
'freebsd/lib/libc/rpc/auth_unix.c',
'freebsd/lib/libc/rpc/authdes_prot.c',
'freebsd/lib/libc/rpc/authunix_prot.c',
'freebsd/lib/libc/rpc/bindresvport.c',
'freebsd/lib/libc/rpc/clnt_bcast.c',
'freebsd/lib/libc/rpc/clnt_dg.c',
'freebsd/lib/libc/rpc/clnt_generic.c',
'freebsd/lib/libc/rpc/clnt_perror.c',
'freebsd/lib/libc/rpc/clnt_raw.c',
'freebsd/lib/libc/rpc/clnt_simple.c',
'freebsd/lib/libc/rpc/clnt_vc.c',
'freebsd/lib/libc/rpc/crypt_client.c',
'freebsd/lib/libc/rpc/des_crypt.c',
'freebsd/lib/libc/rpc/des_soft.c',
'freebsd/lib/libc/rpc/getnetconfig.c',
'freebsd/lib/libc/rpc/getnetpath.c',
'freebsd/lib/libc/rpc/getpublickey.c',
'freebsd/lib/libc/rpc/getrpcent.c',
'freebsd/lib/libc/rpc/getrpcport.c',
'freebsd/lib/libc/rpc/key_call.c',
'freebsd/lib/libc/rpc/key_prot_xdr.c',
'freebsd/lib/libc/rpc/mt_misc.c',
'freebsd/lib/libc/rpc/netname.c',
'freebsd/lib/libc/rpc/netnamer.c',
'freebsd/lib/libc/rpc/pmap_clnt.c',
'freebsd/lib/libc/rpc/pmap_getmaps.c',
'freebsd/lib/libc/rpc/pmap_getport.c',
'freebsd/lib/libc/rpc/pmap_prot.c',
'freebsd/lib/libc/rpc/pmap_prot2.c',
'freebsd/lib/libc/rpc/pmap_rmt.c',
'freebsd/lib/libc/rpc/rpc_callmsg.c',
'freebsd/lib/libc/rpc/rpc_commondata.c',
'freebsd/lib/libc/rpc/rpc_dtablesize.c',
'freebsd/lib/libc/rpc/rpc_generic.c',
'freebsd/lib/libc/rpc/rpc_prot.c',
'freebsd/lib/libc/rpc/rpc_soc.c',
'freebsd/lib/libc/rpc/rpcb_clnt.c',
'freebsd/lib/libc/rpc/rpcb_prot.c',
'freebsd/lib/libc/rpc/rpcb_st_xdr.c',
'freebsd/lib/libc/rpc/rpcdname.c',
'freebsd/lib/libc/rpc/rpcsec_gss_stub.c',
'freebsd/lib/libc/rpc/rtime.c',
'freebsd/lib/libc/rpc/svc.c',
'freebsd/lib/libc/rpc/svc_auth.c',
'freebsd/lib/libc/rpc/svc_auth_des.c',
'freebsd/lib/libc/rpc/svc_auth_unix.c',
'freebsd/lib/libc/rpc/svc_dg.c',
'freebsd/lib/libc/rpc/svc_generic.c',
'freebsd/lib/libc/rpc/svc_raw.c',
'freebsd/lib/libc/rpc/svc_run.c',
'freebsd/lib/libc/rpc/svc_simple.c',
'freebsd/lib/libc/rpc/svc_vc.c',
'freebsd/lib/libc/stdio/fgetln.c',
'freebsd/lib/libc/stdlib/strtoimax.c',
'freebsd/lib/libc/stdlib/strtonum.c',