[rtems-libbsd commit] RPC(3): Port to RTEMS

Sebastian Huber sebh at rtems.org
Fri Jun 10 12:15:35 UTC 2016


Module:    rtems-libbsd
Branch:    master
Commit:    9880635f2e642380b69b85e00271649b3a2fc2de
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=9880635f2e642380b69b85e00271649b3a2fc2de

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Jun  9 10:48:05 2016 +0200

RPC(3): Port to RTEMS

---

 freebsd/include/rpc/clnt_stat.h      |  3 +-
 freebsd/include/rpc/rpc_msg.h        | 12 +++--
 freebsd/include/rpc/svc.h            |  3 +-
 freebsd/include/rpcsvc/nis_db.h      |  6 ++-
 freebsd/include/rpcsvc/yp_prot.h     |  3 +-
 freebsd/lib/libc/include/namespace.h |  5 ++
 freebsd/lib/libc/rpc/rpcb_clnt.c     |  2 +-
 libbsd.py                            | 95 +++++++++++++++++++++++++++++++-----
 libbsd_waf.py                        | 55 +++++++++++++++++++++
 9 files changed, 163 insertions(+), 21 deletions(-)

diff --git a/freebsd/include/rpc/clnt_stat.h b/freebsd/include/rpc/clnt_stat.h
index 6148b4e..a0cf01b 100644
--- a/freebsd/include/rpc/clnt_stat.h
+++ b/freebsd/include/rpc/clnt_stat.h
@@ -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
diff --git a/freebsd/include/rpc/rpc_msg.h b/freebsd/include/rpc/rpc_msg.h
index 6e8d074..fdde387 100644
--- a/freebsd/include/rpc/rpc_msg.h
+++ b/freebsd/include/rpc/rpc_msg.h
@@ -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
 };
 
 /*
diff --git a/freebsd/include/rpc/svc.h b/freebsd/include/rpc/svc.h
index 2af5550..51f278a 100644
--- a/freebsd/include/rpc/svc.h
+++ b/freebsd/include/rpc/svc.h
@@ -81,7 +81,8 @@
 enum xprt_stat {
 	XPRT_DIED,
 	XPRT_MOREREQS,
-	XPRT_IDLE
+	XPRT_IDLE,
+	_XPRT_STAT = 0xffffffff
 };
 
 /*
diff --git a/freebsd/include/rpcsvc/nis_db.h b/freebsd/include/rpcsvc/nis_db.h
index 9dcc783..ff5e64f 100644
--- a/freebsd/include/rpcsvc/nis_db.h
+++ b/freebsd/include/rpcsvc/nis_db.h
@@ -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;
 
diff --git a/freebsd/include/rpcsvc/yp_prot.h b/freebsd/include/rpcsvc/yp_prot.h
index 960cab6..6b2e28a 100644
--- a/freebsd/include/rpcsvc/yp_prot.h
+++ b/freebsd/include/rpcsvc/yp_prot.h
@@ -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 */
diff --git a/freebsd/lib/libc/include/namespace.h b/freebsd/lib/libc/include/namespace.h
index 83be334..8b2f04b 100644
--- a/freebsd/lib/libc/include/namespace.h
+++ b/freebsd/lib/libc/include/namespace.h
@@ -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_ */
diff --git a/freebsd/lib/libc/rpc/rpcb_clnt.c b/freebsd/lib/libc/rpc/rpcb_clnt.c
index 120b792..ffee965 100644
--- a/freebsd/lib/libc/rpc/rpcb_clnt.c
+++ b/freebsd/lib/libc/rpc/rpcb_clnt.c
@@ -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;
diff --git a/libbsd.py b/libbsd.py
index 1a4e808..5f21bf4 100755
--- a/libbsd.py
+++ b/libbsd.py
@@ -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/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/pmap_clnt.h',
-            'include/rpc/pmap_prot.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/rpcent.h',
             'include/rpc/rpc.h',
-            'include/rpc/rpc_msg.h',
+            'include/rpc/des.h',
+            'include/rpc/des_crypt.h',
             'include/rpc/svc_auth.h',
-            'include/rpc/svc.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',
diff --git a/libbsd_waf.py b/libbsd_waf.py
index 16ff863..64a6810 100644
--- a/libbsd_waf.py
+++ b/libbsd_waf.py
@@ -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',



More information about the vc mailing list