Module Name:    src
Committed By:   rin
Date:           Sat Oct 10 00:00:54 UTC 2020

Modified Files:
        src/sys/compat/netbsd32: netbsd32_netbsd.c syscalls.master

Log Message:
Teach about getrandom(2) to COMPAT_NETBSD32.


To generate a diff of this commit:
cvs rdiff -u -r1.229 -r1.230 src/sys/compat/netbsd32/netbsd32_netbsd.c
cvs rdiff -u -r1.138 -r1.139 src/sys/compat/netbsd32/syscalls.master

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

Modified files:

Index: src/sys/compat/netbsd32/netbsd32_netbsd.c
diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.229 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.230
--- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.229	Sat May 16 18:31:48 2020
+++ src/sys/compat/netbsd32/netbsd32_netbsd.c	Sat Oct 10 00:00:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_netbsd.c,v 1.229 2020/05/16 18:31:48 christos Exp $	*/
+/*	$NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001, 2008, 2018 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.229 2020/05/16 18:31:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.230 2020/10/10 00:00:54 rin Exp $");
 
 /*
  * below are all the standard NetBSD system calls, in the 32bit
@@ -2607,6 +2607,22 @@ netbsd32__pset_bind(struct lwp *l,
 	return sys__pset_bind(l, &ua, retval);
 }
 
+int
+netbsd32_getrandom(struct lwp *l, const struct netbsd32_getrandom_args *uap,
+    register_t *retval)
+{
+	/* {
+		syscallarg(netbsd32_voidp)	buf;
+		syscallarg(netbsd32_size_t)	buflen;
+		syscallarg(unsigned)		flags;
+	} */
+	struct sys_getrandom_args ua;
+
+	NETBSD32TOP_UAP(buf, void *);
+	NETBSD32TOX_UAP(buflen, size_t);
+	NETBSD32TO64_UAP(flags);
+	return sys_getrandom(l, &ua, retval);
+}
 
 /*
  * MI indirect system call support.

Index: src/sys/compat/netbsd32/syscalls.master
diff -u src/sys/compat/netbsd32/syscalls.master:1.138 src/sys/compat/netbsd32/syscalls.master:1.139
--- src/sys/compat/netbsd32/syscalls.master:1.138	Sat May 16 18:31:48 2020
+++ src/sys/compat/netbsd32/syscalls.master	Sat Oct 10 00:00:54 2020
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.138 2020/05/16 18:31:48 christos Exp $
+	$NetBSD: syscalls.master,v 1.139 2020/10/10 00:00:54 rin Exp $
 
 ;	from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp
 ;	@(#)syscalls.master	8.2 (Berkeley) 1/13/94
@@ -235,7 +235,9 @@
 89	COMPAT_43 MODULAR compat_43	\
 			{ int|sys||getdtablesize(void); } ogetdtablesize
 90	STD		{ int|netbsd32||dup2(int from, int to); }
-91	UNIMPL		getdopt
+91	STD		{ netbsd32_ssize_t|netbsd32||getrandom( \
+			    netbsd32_voidp buf, netbsd32_size_t buflen, \
+			    unsigned int flags); }
 92	STD		{ int|netbsd32||fcntl(int fd, int cmd, \
 			    ... netbsd32_voidp arg); }
 93	COMPAT_50 MODULAR compat_netbsd32_50	\

Reply via email to