diff --git a/lib/libvmmapi/vmmapi.h b/lib/libvmmapi/vmmapi.h --- a/lib/libvmmapi/vmmapi.h +++ b/lib/libvmmapi/vmmapi.h @@ -248,6 +248,9 @@ int vm_get_topology(struct vmctx *ctx, uint16_t *sockets, uint16_t *cores, uint16_t *threads, uint16_t *maxcpus); +/* NUMA configuration */ +int vm_set_numa_configuration(struct vmctx *ctx, struct vm_numa *numa); +int vm_get_numa_configuration(struct vmctx *ctx, struct vm_numa *numa); /* * FreeBSD specific APIs */ diff --git a/lib/libvmmapi/vmmapi.c b/lib/libvmmapi/vmmapi.c --- a/lib/libvmmapi/vmmapi.c +++ b/lib/libvmmapi/vmmapi.c @@ -1751,6 +1751,18 @@ return (error); } +int +vm_set_numa_configuration(struct vmctx *ctx, struct vm_numa *numa) +{ + return (ioctl(ctx->fd, VM_SET_NUMA, numa)); +} + +int +vm_get_numa_configuration(struct vmctx *ctx, struct vm_numa *numa) +{ + return (ioctl(ctx->fd, VM_GET_NUMA, numa)); +} + /* Keep in sync with machine/vmm_dev.h. */ static const cap_ioctl_t vm_ioctl_cmds[] = { VM_RUN, VM_SUSPEND, VM_REINIT, VM_ALLOC_MEMSEG, VM_GET_MEMSEG, VM_MMAP_MEMSEG, VM_MMAP_MEMSEG, @@ -1773,7 +1785,7 @@ VM_SET_INTINFO, VM_GET_INTINFO, VM_RTC_WRITE, VM_RTC_READ, VM_RTC_SETTIME, VM_RTC_GETTIME, VM_RESTART_INSTRUCTION, VM_SET_TOPOLOGY, VM_GET_TOPOLOGY, - VM_SNAPSHOT_REQ, VM_RESTORE_TIME + VM_SET_NUMA, VM_GET_NUMA, VM_SNAPSHOT_REQ, VM_RESTORE_TIME }; int