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. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
870e4adb34
commit
d9340a46aa
@ -25,7 +25,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd October 5, 2017
|
.Dd April 17, 2019
|
||||||
.Dt CUSE 3
|
.Dt CUSE 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -303,6 +303,7 @@ enum {
|
|||||||
CUSE_FFLAG_READ
|
CUSE_FFLAG_READ
|
||||||
CUSE_FFLAG_WRITE
|
CUSE_FFLAG_WRITE
|
||||||
CUSE_FFLAG_NONBLOCK
|
CUSE_FFLAG_NONBLOCK
|
||||||
|
CUSE_FFLAG_COMPAT32
|
||||||
|
|
||||||
CUSE_CMD_NONE
|
CUSE_CMD_NONE
|
||||||
CUSE_CMD_OPEN
|
CUSE_CMD_OPEN
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
#include <sys/vnode.h>
|
#include <sys/vnode.h>
|
||||||
#include <sys/selinfo.h>
|
#include <sys/selinfo.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
|
#include <sys/sysent.h>
|
||||||
|
|
||||||
#include <machine/bus.h>
|
#include <machine/bus.h>
|
||||||
|
|
||||||
@ -536,7 +537,10 @@ cuse_client_send_command_locked(struct cuse_client_command *pccmd,
|
|||||||
|
|
||||||
if (ioflag & IO_NDELAY)
|
if (ioflag & IO_NDELAY)
|
||||||
cuse_fflags |= CUSE_FFLAG_NONBLOCK;
|
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.fflags = cuse_fflags;
|
||||||
pccmd->sub.data_pointer = data_ptr;
|
pccmd->sub.data_pointer = data_ptr;
|
||||||
pccmd->sub.argument = arg;
|
pccmd->sub.argument = arg;
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#ifndef _CUSE_DEFS_H_
|
#ifndef _CUSE_DEFS_H_
|
||||||
#define _CUSE_DEFS_H_
|
#define _CUSE_DEFS_H_
|
||||||
|
|
||||||
#define CUSE_VERSION 0x000123
|
#define CUSE_VERSION 0x000124
|
||||||
|
|
||||||
#define CUSE_ERR_NONE 0
|
#define CUSE_ERR_NONE 0
|
||||||
#define CUSE_ERR_BUSY -1
|
#define CUSE_ERR_BUSY -1
|
||||||
@ -49,6 +49,7 @@
|
|||||||
#define CUSE_FFLAG_READ 1
|
#define CUSE_FFLAG_READ 1
|
||||||
#define CUSE_FFLAG_WRITE 2
|
#define CUSE_FFLAG_WRITE 2
|
||||||
#define CUSE_FFLAG_NONBLOCK 4
|
#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_NONE 0
|
||||||
#define CUSE_DBG_FULL 1
|
#define CUSE_DBG_FULL 1
|
||||||
|
Loading…
Reference in New Issue
Block a user