Module Name:    src
Committed By:   hannken
Date:           Tue Jun  4 08:44:08 UTC 2019

Modified Files:
        src/distrib/sets/lists/base: shl.mi
        src/distrib/sets/lists/debug: shl.mi
        src/include/rpc: xdr.h
        src/lib/libc: shlib_version
        src/lib/libc/rpc: xdr_mem.c

Log Message:
Implement xdrmem_control(), used as xdr_control(xdr, XDR_GET_BYTES_AVAIL ...
and bump libc minor number.

Final goal is to remove the unmaintained XDR implementation
at external/cddl/osnet/dist/uts/common/rpc.


To generate a diff of this commit:
cvs rdiff -u -r1.864 -r1.865 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.223 -r1.224 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.30 -r1.31 src/include/rpc/xdr.h
cvs rdiff -u -r1.283 -r1.284 src/lib/libc/shlib_version
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/rpc/xdr_mem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/base/shl.mi
diff -u src/distrib/sets/lists/base/shl.mi:1.864 src/distrib/sets/lists/base/shl.mi:1.865
--- src/distrib/sets/lists/base/shl.mi:1.864	Sun Apr 28 00:03:46 2019
+++ src/distrib/sets/lists/base/shl.mi	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.864 2019/04/28 00:03:46 christos Exp $
+# $NetBSD: shl.mi,v 1.865 2019/06/04 08:44:08 hannken Exp $
 #
 # Note:	Don't delete entries from here - mark them as "obsolete" instead,
 #	unless otherwise stated below.
@@ -18,7 +18,7 @@
 ./lib/libblacklist.so.0.0			base-sys-shlib		dynamicroot
 ./lib/libc.so					base-sys-shlib		dynamicroot
 ./lib/libc.so.12				base-sys-shlib		dynamicroot
-./lib/libc.so.12.212				base-sys-shlib		dynamicroot
+./lib/libc.so.12.213				base-sys-shlib		dynamicroot
 ./lib/libcrypt.so				base-sys-shlib		dynamicroot
 ./lib/libcrypt.so.1				base-sys-shlib		dynamicroot
 ./lib/libcrypt.so.1.0				base-sys-shlib		dynamicroot
@@ -221,7 +221,7 @@
 ./usr/lib/libc++.so.1.0				base-sys-shlib		compatfile,libcxx
 ./usr/lib/libc.so				base-sys-shlib		compatfile
 ./usr/lib/libc.so.12				base-sys-shlib		compatfile
-./usr/lib/libc.so.12.212			base-sys-shlib		compatfile
+./usr/lib/libc.so.12.213			base-sys-shlib		compatfile
 ./usr/lib/libcdk.so				base-obsolete		compatfile,obsolete
 ./usr/lib/libcom_err.so				base-krb5-shlib		compatfile,kerberos
 ./usr/lib/libcom_err.so.8			base-krb5-shlib		compatfile,kerberos

Index: src/distrib/sets/lists/debug/shl.mi
diff -u src/distrib/sets/lists/debug/shl.mi:1.223 src/distrib/sets/lists/debug/shl.mi:1.224
--- src/distrib/sets/lists/debug/shl.mi:1.223	Sun Apr 28 00:03:46 2019
+++ src/distrib/sets/lists/debug/shl.mi	Tue Jun  4 08:44:08 2019
@@ -1,8 +1,8 @@
-# $NetBSD: shl.mi,v 1.223 2019/04/28 00:03:46 christos Exp $
+# $NetBSD: shl.mi,v 1.224 2019/06/04 08:44:08 hannken Exp $
 ./usr/lib/libbfd_g.a						comp-c-debuglib	debuglib,compatfile,binutils
 ./usr/libdata/debug/lib						base-sys-usr	debug,dynamicroot,compatdir
 ./usr/libdata/debug/lib/libblacklist.so.0.0.debug		comp-sys-debug	debug,dynamicroot
-./usr/libdata/debug/lib/libc.so.12.212.debug			comp-sys-debug	debug,dynamicroot
+./usr/libdata/debug/lib/libc.so.12.213.debug			comp-sys-debug	debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypt.so.1.0.debug			comp-sys-debug	debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypto.so.12.0.debug			comp-sys-debug	debug,dynamicroot,openssl=10
 ./usr/libdata/debug/lib/libcrypto.so.14.0.debug			comp-sys-debug	debug,dynamicroot,openssl=11
@@ -71,7 +71,7 @@
 ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug			comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug			comp-sys-debug	debug,compatfile,libcxx
-./usr/libdata/debug/usr/lib/libc.so.12.212.debug		comp-sys-debug	debug,compatfile
+./usr/libdata/debug/usr/lib/libc.so.12.213.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libcom_err.so.8.0.debug		comp-krb5-debug	debug,compatfile,kerberos
 ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug		comp-sys-debug	debug,compatfile
 ./usr/libdata/debug/usr/lib/libcrypto.so.12.0.debug		comp-crypto-debug	debug,compatfile,openssl=10

Index: src/include/rpc/xdr.h
diff -u src/include/rpc/xdr.h:1.30 src/include/rpc/xdr.h:1.31
--- src/include/rpc/xdr.h:1.30	Wed Aug 16 08:35:48 2017
+++ src/include/rpc/xdr.h	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: xdr.h,v 1.30 2017/08/16 08:35:48 christos Exp $	*/
+/*	$NetBSD: xdr.h,v 1.31 2019/06/04 08:44:08 hannken Exp $	*/
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -209,8 +209,8 @@ xdr_putint32(XDR *xdrs, int32_t *ip)
 		(*(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)
+	(((xdrs)->x_ops->x_control == NULL) ? (FALSE) : \
+		(*(xdrs)->x_ops->x_control)(xdrs, req, op))
 #define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op)
 
 #define xdr_rpcvers(xdrs, versp) xdr_u_int32_t(xdrs, versp)
@@ -326,6 +326,19 @@ typedef struct netobj netobj;
 extern bool_t   xdr_netobj(XDR *, struct netobj *);
 
 /*
+ * These are XDR control operators
+ */
+
+#define XDR_GET_BYTES_AVAIL	1
+
+struct xdr_bytesrec {
+	bool_t xc_is_last_record;
+	size_t xc_num_avail;
+};
+
+typedef struct xdr_bytesrec xdr_bytesrec;
+
+/*
  * These are the public routines for the various implementations of
  * xdr streams.
  */

Index: src/lib/libc/shlib_version
diff -u src/lib/libc/shlib_version:1.283 src/lib/libc/shlib_version:1.284
--- src/lib/libc/shlib_version:1.283	Mon Mar  4 19:20:12 2019
+++ src/lib/libc/shlib_version	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: shlib_version,v 1.283 2019/03/04 19:20:12 christos Exp $
+#	$NetBSD: shlib_version,v 1.284 2019/06/04 08:44:08 hannken Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 # things we wish to do on next major version bump:
@@ -54,4 +54,4 @@
 # - move statfs() to libcompat since we have statvfs()
 # - the syscall stubs for the (obsolete) lfs syscalls should be removed
 major=12
-minor=212
+minor=213

Index: src/lib/libc/rpc/xdr_mem.c
diff -u src/lib/libc/rpc/xdr_mem.c:1.19 src/lib/libc/rpc/xdr_mem.c:1.20
--- src/lib/libc/rpc/xdr_mem.c:1.19	Mon Mar 11 20:19:30 2013
+++ src/lib/libc/rpc/xdr_mem.c	Tue Jun  4 08:44:08 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: xdr_mem.c,v 1.19 2013/03/11 20:19:30 tron Exp $	*/
+/*	$NetBSD: xdr_mem.c,v 1.20 2019/06/04 08:44:08 hannken Exp $	*/
 
 /*
  * Copyright (c) 2010, Oracle America, Inc.
@@ -37,7 +37,7 @@
 static char *sccsid = "@(#)xdr_mem.c 1.19 87/08/11 Copyr 1984 Sun Micro";
 static char *sccsid = "@(#)xdr_mem.c	2.1 88/07/29 4.0 RPCSRC";
 #else
-__RCSID("$NetBSD: xdr_mem.c,v 1.19 2013/03/11 20:19:30 tron Exp $");
+__RCSID("$NetBSD: xdr_mem.c,v 1.20 2019/06/04 08:44:08 hannken Exp $");
 #endif
 #endif
 
@@ -79,6 +79,7 @@ static u_int xdrmem_getpos(XDR *);
 static bool_t xdrmem_setpos(XDR *, u_int);
 static int32_t *xdrmem_inline_aligned(XDR *, u_int);
 static int32_t *xdrmem_inline_unaligned(XDR *, u_int);
+static bool_t xdrmem_control(XDR *xdrs, int request, void *info);
 
 static const struct	xdr_ops xdrmem_ops_aligned = {
 	xdrmem_getlong_aligned,
@@ -89,7 +90,7 @@ static const struct	xdr_ops xdrmem_ops_a
 	xdrmem_setpos,
 	xdrmem_inline_aligned,
 	xdrmem_destroy,
-	NULL,	/* xdrmem_control */
+	xdrmem_control
 };
 
 static const struct	xdr_ops xdrmem_ops_unaligned = {
@@ -101,7 +102,7 @@ static const struct	xdr_ops xdrmem_ops_u
 	xdrmem_setpos,
 	xdrmem_inline_unaligned,
 	xdrmem_destroy,
-	NULL,	/* xdrmem_control */
+	xdrmem_control
 };
 
 /*
@@ -243,3 +244,20 @@ xdrmem_inline_unaligned(XDR *xdrs, u_int
 
 	return (0);
 }
+
+static bool_t
+xdrmem_control(XDR *xdrs, int request, void *info)
+{
+	xdr_bytesrec *xptr;
+
+	switch (request) {
+
+	case XDR_GET_BYTES_AVAIL:
+		xptr = (xdr_bytesrec *)info;
+		xptr->xc_is_last_record = TRUE;
+		xptr->xc_num_avail = xdrs->x_handy;
+		return (TRUE);
+
+	}
+	return (FALSE);
+}

Reply via email to