svn commit: r346665 - in stable/12: lib/libcuse sys/fs/cuse

Hans Petter Selasky hselasky at FreeBSD.org
Thu Apr 25 11:56:09 UTC 2019


Author: hselasky
Date: Thu Apr 25 11:56:07 2019
New Revision: 346665
URL: https://svnweb.freebsd.org/changeset/base/346665

Log:
  MFC r346356:
  Implement flag for telling cuse(3) clients if the peer is running in 32-bit
  compat mode or not. This is useful when implementing compatibility ioctl(2)
  handlers in userspace.
  
  Sponsored by:		Mellanox Technologies

Modified:
  stable/12/lib/libcuse/cuse.3
  stable/12/sys/fs/cuse/cuse.c
  stable/12/sys/fs/cuse/cuse_defs.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/lib/libcuse/cuse.3
==============================================================================
--- stable/12/lib/libcuse/cuse.3	Thu Apr 25 09:13:15 2019	(r346664)
+++ stable/12/lib/libcuse/cuse.3	Thu Apr 25 11:56:07 2019	(r346665)
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd October 5, 2017
+.Dd April 17, 2019
 .Dt CUSE 3
 .Os
 .Sh NAME
@@ -303,6 +303,7 @@ enum {
   CUSE_FFLAG_READ
   CUSE_FFLAG_WRITE
   CUSE_FFLAG_NONBLOCK
+  CUSE_FFLAG_COMPAT32
 
   CUSE_CMD_NONE
   CUSE_CMD_OPEN

Modified: stable/12/sys/fs/cuse/cuse.c
==============================================================================
--- stable/12/sys/fs/cuse/cuse.c	Thu Apr 25 09:13:15 2019	(r346664)
+++ stable/12/sys/fs/cuse/cuse.c	Thu Apr 25 11:56:07 2019	(r346665)
@@ -51,6 +51,7 @@
 #include <sys/vnode.h>
 #include <sys/selinfo.h>
 #include <sys/ptrace.h>
+#include <sys/sysent.h>
 
 #include <machine/bus.h>
 
@@ -536,7 +537,10 @@ cuse_client_send_command_locked(struct cuse_client_com
 
 	if (ioflag & IO_NDELAY)
 		cuse_fflags |= CUSE_FFLAG_NONBLOCK;
-
+#if defined(__LP64__)
+	if (SV_CURPROC_FLAG(SV_ILP32))
+		cuse_fflags |= CUSE_FFLAG_COMPAT32;
+#endif
 	pccmd->sub.fflags = cuse_fflags;
 	pccmd->sub.data_pointer = data_ptr;
 	pccmd->sub.argument = arg;

Modified: stable/12/sys/fs/cuse/cuse_defs.h
==============================================================================
--- stable/12/sys/fs/cuse/cuse_defs.h	Thu Apr 25 09:13:15 2019	(r346664)
+++ stable/12/sys/fs/cuse/cuse_defs.h	Thu Apr 25 11:56:07 2019	(r346665)
@@ -27,7 +27,7 @@
 #ifndef _CUSE_DEFS_H_
 #define	_CUSE_DEFS_H_
 
-#define	CUSE_VERSION		0x000123
+#define	CUSE_VERSION		0x000124
 
 #define	CUSE_ERR_NONE		0
 #define	CUSE_ERR_BUSY		-1
@@ -49,6 +49,7 @@
 #define	CUSE_FFLAG_READ		1
 #define	CUSE_FFLAG_WRITE	2
 #define	CUSE_FFLAG_NONBLOCK	4
+#define	CUSE_FFLAG_COMPAT32	8 /* peer is running in 32-bit compat mode */
 
 #define	CUSE_DBG_NONE		0
 #define	CUSE_DBG_FULL		1


More information about the svn-src-all mailing list