Deleted Added
full compact
vmmapi.c (331722) vmmapi.c (336161)
1/*-
2 * Copyright (c) 2011 NetApp, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
1/*-
2 * Copyright (c) 2011 NetApp, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD: stable/11/lib/libvmmapi/vmmapi.c 331722 2018-03-29 02:50:57Z eadler $
26 * $FreeBSD: stable/11/lib/libvmmapi/vmmapi.c 336161 2018-07-10 04:26:32Z araujo $
27 */
28
29#include <sys/cdefs.h>
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: stable/11/lib/libvmmapi/vmmapi.c 331722 2018-03-29 02:50:57Z eadler $");
30__FBSDID("$FreeBSD: stable/11/lib/libvmmapi/vmmapi.c 336161 2018-07-10 04:26:32Z araujo $");
31
32#include <sys/param.h>
33#include <sys/sysctl.h>
34#include <sys/ioctl.h>
35#include <sys/mman.h>
36#include <sys/_iovec.h>
37#include <sys/cpuset.h>
38

--- 39 unchanged lines hidden (view full) ---

78};
79
80#define CREATE(x) sysctlbyname("hw.vmm.create", NULL, NULL, (x), strlen((x)))
81#define DESTROY(x) sysctlbyname("hw.vmm.destroy", NULL, NULL, (x), strlen((x)))
82
83static int
84vm_device_open(const char *name)
85{
31
32#include <sys/param.h>
33#include <sys/sysctl.h>
34#include <sys/ioctl.h>
35#include <sys/mman.h>
36#include <sys/_iovec.h>
37#include <sys/cpuset.h>
38

--- 39 unchanged lines hidden (view full) ---

78};
79
80#define CREATE(x) sysctlbyname("hw.vmm.create", NULL, NULL, (x), strlen((x)))
81#define DESTROY(x) sysctlbyname("hw.vmm.destroy", NULL, NULL, (x), strlen((x)))
82
83static int
84vm_device_open(const char *name)
85{
86 int fd, len;
87 char *vmfile;
86 int fd, len;
87 char *vmfile;
88
89 len = strlen("/dev/vmm/") + strlen(name) + 1;
90 vmfile = malloc(len);
91 assert(vmfile != NULL);
92 snprintf(vmfile, len, "/dev/vmm/%s", name);
93
88
89 len = strlen("/dev/vmm/") + strlen(name) + 1;
90 vmfile = malloc(len);
91 assert(vmfile != NULL);
92 snprintf(vmfile, len, "/dev/vmm/%s", name);
93
94 /* Open the device file */
95 fd = open(vmfile, O_RDWR, 0);
94 /* Open the device file */
95 fd = open(vmfile, O_RDWR, 0);
96
97 free(vmfile);
96
97 free(vmfile);
98 return (fd);
98 return (fd);
99}
100
101int
102vm_create(const char *name)
103{
104
105 return (CREATE((char *)name));
106}

--- 728 unchanged lines hidden (view full) ---

835vm_set_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, int val)
836{
837 struct vm_capability vmcap;
838
839 bzero(&vmcap, sizeof(vmcap));
840 vmcap.cpuid = vcpu;
841 vmcap.captype = cap;
842 vmcap.capval = val;
99}
100
101int
102vm_create(const char *name)
103{
104
105 return (CREATE((char *)name));
106}

--- 728 unchanged lines hidden (view full) ---

835vm_set_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, int val)
836{
837 struct vm_capability vmcap;
838
839 bzero(&vmcap, sizeof(vmcap));
840 vmcap.cpuid = vcpu;
841 vmcap.captype = cap;
842 vmcap.capval = val;
843
843
844 return (ioctl(ctx->fd, VM_SET_CAPABILITY, &vmcap));
845}
846
847int
848vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func)
849{
850 struct vm_pptdev pptdev;
851

--- 600 unchanged lines hidden (view full) ---

1452 return (NULL);
1453 bcopy(vm_ioctl_cmds, cmds, sizeof(vm_ioctl_cmds));
1454 return (cmds);
1455 }
1456
1457 *len = nitems(vm_ioctl_cmds);
1458 return (NULL);
1459}
844 return (ioctl(ctx->fd, VM_SET_CAPABILITY, &vmcap));
845}
846
847int
848vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func)
849{
850 struct vm_pptdev pptdev;
851

--- 600 unchanged lines hidden (view full) ---

1452 return (NULL);
1453 bcopy(vm_ioctl_cmds, cmds, sizeof(vm_ioctl_cmds));
1454 return (cmds);
1455 }
1456
1457 *len = nitems(vm_ioctl_cmds);
1458 return (NULL);
1459}
1460