The FreeBSD ioctls have the same fields has the Linux ones, so the same file can be shared between both OSes.
No functional change for OSes different than FreeBSD. Signed-off-by: Roger Pau Monné <roger....@citrix.com> --- tools/include/xen-sys/FreeBSD/privcmd.h | 15 +++++++++++++++ tools/libs/devicemodel/Makefile | 4 ++-- tools/libs/devicemodel/{linux.c => common.c} | 0 3 files changed, 17 insertions(+), 2 deletions(-) rename tools/libs/devicemodel/{linux.c => common.c} (100%) diff --git a/tools/include/xen-sys/FreeBSD/privcmd.h b/tools/include/xen-sys/FreeBSD/privcmd.h index 603aad67d5..649ad443c7 100644 --- a/tools/include/xen-sys/FreeBSD/privcmd.h +++ b/tools/include/xen-sys/FreeBSD/privcmd.h @@ -66,12 +66,27 @@ struct ioctl_privcmd_mmapresource { }; typedef struct ioctl_privcmd_mmapresource privcmd_mmap_resource_t; +struct privcmd_dmop_buf { + void *uptr; /* pointer to memory (in calling process) */ + size_t size; /* size of the buffer */ +}; +typedef struct privcmd_dmop_buf privcmd_dm_op_buf_t; + +struct ioctl_privcmd_dmop { + domid_t dom; /* target domain */ + unsigned int num; /* num of buffers */ + const struct privcmd_dmop_buf *ubufs; /* array of buffers */ +}; +typedef struct ioctl_privcmd_dmop privcmd_dm_op_t; + #define IOCTL_PRIVCMD_HYPERCALL \ _IOWR('E', 0, struct ioctl_privcmd_hypercall) #define IOCTL_PRIVCMD_MMAPBATCH \ _IOWR('E', 1, struct ioctl_privcmd_mmapbatch) #define IOCTL_PRIVCMD_MMAP_RESOURCE \ _IOW('E', 2, struct ioctl_privcmd_mmapresource) +#define IOCTL_PRIVCMD_DM_OP \ + _IOW('E', 3, struct ioctl_privcmd_dmop) #define IOCTL_PRIVCMD_RESTRICT \ _IOW('E', 4, domid_t) diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile index b67fc0fac1..500de7adc5 100644 --- a/tools/libs/devicemodel/Makefile +++ b/tools/libs/devicemodel/Makefile @@ -5,8 +5,8 @@ MAJOR = 1 MINOR = 3 SRCS-y += core.c -SRCS-$(CONFIG_Linux) += linux.c -SRCS-$(CONFIG_FreeBSD) += compat.c +SRCS-$(CONFIG_Linux) += common.c +SRCS-$(CONFIG_FreeBSD) += common.c SRCS-$(CONFIG_SunOS) += compat.c SRCS-$(CONFIG_NetBSD) += compat.c SRCS-$(CONFIG_MiniOS) += compat.c diff --git a/tools/libs/devicemodel/linux.c b/tools/libs/devicemodel/common.c similarity index 100% rename from tools/libs/devicemodel/linux.c rename to tools/libs/devicemodel/common.c -- 2.29.2