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_STALERACHANDLE = 25,
RPC_CANTCONNECT = 26, /* couldn't make connection (cots) */ RPC_CANTCONNECT = 26, /* couldn't make connection (cots) */
RPC_XPRTFAILED = 27, /* received discon from remote (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 #ifdef __cplusplus

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

101
libbsd.py
View File

@@ -1772,6 +1772,8 @@ def user_space(mm):
'include/arpa/nameser.h', 'include/arpa/nameser.h',
'include/db.h', 'include/db.h',
'include/err.h', 'include/err.h',
'include/gssapi/gssapi.h',
'include/gssapi.h',
'include/ifaddrs.h', 'include/ifaddrs.h',
'include/mpool.h', 'include/mpool.h',
'include/netconfig.h', 'include/netconfig.h',
@@ -1780,27 +1782,36 @@ def user_space(mm):
'include/nsswitch.h', 'include/nsswitch.h',
'include/resolv.h', 'include/resolv.h',
'include/res_update.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.h',
'include/rpc/clnt_soc.h', 'include/rpc/pmap_rmt.h',
'include/rpc/clnt_stat.h', 'include/rpc/svc_soc.h',
'include/rpc/pmap_clnt.h', 'include/rpc/nettype.h',
'include/rpc/pmap_prot.h', 'include/rpc/xdr.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/svc.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/nis_db.h',
'include/rpcsvc/nislib.h', 'include/rpcsvc/nislib.h',
'include/rpcsvc/nis_tags.h', 'include/rpcsvc/nis_tags.h',
'include/rpc/svc_soc.h',
'include/rpcsvc/ypclnt.h', 'include/rpcsvc/ypclnt.h',
'include/rpcsvc/yp_prot.h', 'include/rpcsvc/yp_prot.h',
'include/rpc/xdr.h',
'include/sysexits.h', 'include/sysexits.h',
'lib/libc/db/btree/btree.h', 'lib/libc/db/btree/btree.h',
'lib/libc/db/btree/extern.h', 'lib/libc/db/btree/extern.h',
@@ -1824,6 +1835,8 @@ def user_space(mm):
'lib/libc/net/res_config.h', 'lib/libc/net/res_config.h',
'lib/libc/resolv/res_debug.h', 'lib/libc/resolv/res_debug.h',
'lib/libc/resolv/res_private.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/libc/stdio/local.h',
'lib/libipsec/ipsec_strerror.h', 'lib/libipsec/ipsec_strerror.h',
'lib/libipsec/libpfkey.h', 'lib/libipsec/libpfkey.h',
@@ -1846,6 +1859,11 @@ def user_space(mm):
mm.generator['convert'](), mm.generator['convert'](),
mm.generator['convert'](), mm.generator['convert'](),
mm.generator['rpc-gen']())) 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', mod.addFile(mm.generator['file']('sbin/route/keywords',
mm.generator['freebsd-path'](), mm.generator['freebsd-path'](),
mm.generator['convert'](), mm.generator['convert'](),
@@ -1955,6 +1973,61 @@ def user_space(mm):
'lib/libc/resolv/res_send.c', 'lib/libc/resolv/res_send.c',
'lib/libc/resolv/res_state.c', 'lib/libc/resolv/res_state.c',
'lib/libc/resolv/res_update.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/stdio/fgetln.c',
'lib/libc/stdlib/strtoimax.c', 'lib/libc/stdlib/strtoimax.c',
'lib/libc/stdlib/strtonum.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_send.c',
'freebsd/lib/libc/resolv/res_state.c', 'freebsd/lib/libc/resolv/res_state.c',
'freebsd/lib/libc/resolv/res_update.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/stdio/fgetln.c',
'freebsd/lib/libc/stdlib/strtoimax.c', 'freebsd/lib/libc/stdlib/strtoimax.c',
'freebsd/lib/libc/stdlib/strtonum.c', 'freebsd/lib/libc/stdlib/strtonum.c',