aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2016-01-08 22:33:40 +0100
committerDmitry Vyukov <dvyukov@google.com>2016-01-08 22:41:36 +0100
commitbb47c6540dc13ca4170b0bfb8623d8094a2b5139 (patch)
treecf6e5477f6eac8ab969b5d682044f931915f2cdc
parentc9b24b38c9978bea7e3548067b7e261524de4dd0 (diff)
sys: add kvm support
-rw-r--r--Makefile3
-rw-r--r--executor/executor.cc48
-rw-r--r--executor/syscalls.h172
-rw-r--r--prog/consts.go116
-rw-r--r--sys/decl.go6
-rw-r--r--sys/kvm.txt415
-rw-r--r--sys/sys.go258
-rw-r--r--sys/sys_amd64.go2
-rw-r--r--sys/sys_arm64.go2
-rw-r--r--sysgen/sysgen.go6
10 files changed, 1007 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index e553d06ea..0a9c71ff3 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,8 @@ upgrade:
generate:
go run sysgen/*.go -linux=$(LINUX) sys/sys.txt sys/socket.txt sys/tty.txt sys/perf.txt \
- sys/key.txt sys/bpf.txt sys/fuse.txt sys/dri.txt sys/kdbus.txt sys/sctp.txt
+ sys/key.txt sys/bpf.txt sys/fuse.txt sys/dri.txt sys/kdbus.txt sys/sctp.txt \
+ sys/kvm.txt
format:
go fmt ./...
diff --git a/executor/executor.cc b/executor/executor.cc
index 93de7c459..d26e97457 100644
--- a/executor/executor.cc
+++ b/executor/executor.cc
@@ -303,8 +303,7 @@ retry:
if (collide && (call_index % 2) == 0) {
// Don't wait for every other call.
// We already have results from the previous execution.
- }
- else if (flag_threaded) {
+ } else if (flag_threaded) {
// Wait for call completion.
uint64_t start = current_time_ms();
uint64_t now = start;
@@ -335,8 +334,7 @@ retry:
handle_completion(th);
}
}
- }
- else {
+ } else {
// Execute directly.
if (th != &threads[0])
fail("using non-main thread in non-thread mode");
@@ -356,7 +354,8 @@ thread_t* schedule_call(int n, int call_index, int call_num, uint64_t num_args,
{
// Figure out whether we need root privs for this call.
bool root = false;
- switch (syscalls[call_num].sys_nr) {
+ switch (syscalls[call_num]
+ .sys_nr) {
case __NR_mount:
case __NR_umount2:
case __NR_syz_fuse_mount:
@@ -380,7 +379,9 @@ thread_t* schedule_call(int n, int call_index, int call_num, uint64_t num_args,
if (i == kMaxThreads)
exitf("out of threads");
thread_t* th = &threads[i];
- debug("scheduling call %d [%s] on thread %d\n", call_index, syscalls[call_num].name, th->id);
+ debug("scheduling call %d [%s] on thread %d\n", call_index, syscalls[call_num]
+ .name,
+ th->id);
if (th->ready || !th->done || !th->handled)
fail("bad thread state in schedule: ready=%d done=%d handled=%d", th->ready, th->done, th->handled);
th->copyout_pos = pos;
@@ -400,13 +401,17 @@ thread_t* schedule_call(int n, int call_index, int call_num, uint64_t num_args,
void handle_completion(thread_t* th)
{
- debug("completion of call %d [%s] on thread %d\n", th->call_index, syscalls[th->call_num].name, th->id);
+ debug("completion of call %d [%s] on thread %d\n", th->call_index, syscalls[th->call_num]
+ .name,
+ th->id);
if (th->ready || !th->done || th->handled)
fail("bad thread state in completion: ready=%d done=%d handled=%d",
th->ready, th->done, th->handled);
if (th->res != (uint64_t)-1) {
- results[th->call_n].executed = true;
- results[th->call_n].val = th->res;
+ results[th->call_n]
+ .executed = true;
+ results[th->call_n]
+ .val = th->res;
for (bool done = false; !done;) {
th->call_n++;
uint64_t call_num = read_input(&th->copyout_pos);
@@ -415,8 +420,10 @@ void handle_completion(thread_t* th)
char* addr = (char*)read_input(&th->copyout_pos);
uint64_t size = read_input(&th->copyout_pos);
uint64_t val = copyout(addr, size);
- results[th->call_n].executed = true;
- results[th->call_n].val = val;
+ results[th->call_n]
+ .executed = true;
+ results[th->call_n]
+ .val = val;
debug("copyout from %p\n", addr);
break;
}
@@ -493,8 +500,7 @@ void execute_call(thread_t* th)
char buf[128];
sprintf(buf, "/dev/pts/%d", ptyno);
th->res = open(buf, th->args[1], 0);
- }
- else {
+ } else {
th->res = -1;
}
break;
@@ -586,7 +592,8 @@ void cover_open()
if (ioctl(th->cover_fd, KCOV_INIT_TRACE, kCoverSize))
fail("cover enable write failed");
th->cover_data = (uint32_t*)mmap(NULL, kCoverSize * sizeof(th->cover_data[0]), PROT_READ | PROT_WRITE, MAP_SHARED, th->cover_fd, 0);
- if ((void*)th->cover_data == MAP_FAILED)
+ if ((void*)th
+ ->cover_data == MAP_FAILED)
fail("cover mmap failed");
}
}
@@ -703,8 +710,10 @@ uint64_t read_result(uint64_t** input_posp)
if (idx >= kMaxCommands)
fail("command refers to bad result %ld", idx);
uint64_t arg = default_value;
- if (results[idx].executed) {
- arg = results[idx].val;
+ if (results[idx]
+ .executed) {
+ arg = results[idx]
+ .val;
if (op_div != 0)
arg = arg / op_div;
arg += op_add;
@@ -736,7 +745,12 @@ uint64_t current_time_ms()
timespec ts;
if (clock_gettime(CLOCK_MONOTONIC, &ts))
fail("clock_gettime failed");
- return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
+ return (uint64_t)ts
+ .tv_sec *
+ 1000 +
+ (uint64_t)ts
+ .tv_nsec /
+ 1000000;
}
// logical error (e.g. invalid input program)
diff --git a/executor/syscalls.h b/executor/syscalls.h
index 555c65b2f..8a8c98c86 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -713,6 +713,92 @@ call_t syscalls[] = {
{"setsockopt$SCTP_PEER_ADDR_THLDS", 54},
{"setsockopt$SCTP_RECVRCVINFO", 54},
{"setsockopt$SCTP_RECVNXTINFO", 54},
+ {"open$kvm", 2},
+ {"ioctl$KVM_CREATE_VM", 16},
+ {"ioctl$KVM_GET_MSR_INDEX_LIST", 16},
+ {"ioctl$KVM_CHECK_EXTENSION", 16},
+ {"ioctl$KVM_GET_VCPU_MMAP_SIZE", 16},
+ {"ioctl$KVM_GET_SUPPORTED_CPUID", 16},
+ {"ioctl$KVM_GET_EMULATED_CPUID", 16},
+ {"ioctl$KVM_CREATE_VCPU", 16},
+ {"ioctl$KVM_CHECK_EXTENSION_VM", 16},
+ {"ioctl$KVM_SET_MEMORY_REGION", 16},
+ {"ioctl$KVM_GET_DIRTY_LOG", 16},
+ {"ioctl$KVM_CREATE_IRQCHIP", 16},
+ {"ioctl$KVM_IRQ_LINE", 16},
+ {"ioctl$KVM_GET_IRQCHIP", 16},
+ {"ioctl$KVM_SET_IRQCHIP", 16},
+ {"ioctl$KVM_XEN_HVM_CONFIG", 16},
+ {"ioctl$KVM_GET_CLOCK", 16},
+ {"ioctl$KVM_SET_CLOCK", 16},
+ {"ioctl$KVM_SET_USER_MEMORY_REGION", 16},
+ {"ioctl$KVM_SET_TSS_ADDR", 16},
+ {"ioctl$KVM_ENABLE_CAP", 16},
+ {"ioctl$KVM_SET_IDENTITY_MAP_ADDR", 16},
+ {"ioctl$KVM_SET_BOOT_CPU_ID", 16},
+ {"ioctl$KVM_PPC_GET_PVINFO", 16},
+ {"ioctl$KVM_ASSIGN_PCI_DEVICE", 16},
+ {"ioctl$KVM_DEASSIGN_PCI_DEVICE", 16},
+ {"ioctl$KVM_ASSIGN_DEV_IRQ", 16},
+ {"ioctl$KVM_DEASSIGN_DEV_IRQ", 16},
+ {"ioctl$KVM_SET_GSI_ROUTING", 16},
+ {"ioctl$KVM_ASSIGN_SET_MSIX_NR", 16},
+ {"ioctl$KVM_ASSIGN_SET_MSIX_ENTRY", 16},
+ {"ioctl$KVM_IOEVENTFD", 16},
+ {"ioctl$KVM_ASSIGN_SET_INTX_MASK", 16},
+ {"ioctl$KVM_SIGNAL_MSI", 16},
+ {"ioctl$KVM_CREATE_PIT2", 16},
+ {"ioctl$KVM_GET_PIT2", 16},
+ {"ioctl$KVM_SET_PIT2", 16},
+ {"ioctl$KVM_PPC_GET_SMMU_INFO", 16},
+ {"ioctl$KVM_IRQFD", 16},
+ {"ioctl$KVM_PPC_ALLOCATE_HTAB", 16},
+ {"ioctl$KVM_S390_INTERRUPT", 16},
+ {"ioctl$KVM_CREATE_DEVICE", 16},
+ {"ioctl$KVM_SET_DEVICE_ATTR", 16},
+ {"ioctl$KVM_GET_DEVICE_ATTR", 16},
+ {"ioctl$KVM_HAS_DEVICE_ATTR", 16},
+ {"ioctl$KVM_RUN", 16},
+ {"ioctl$KVM_GET_REGS", 16},
+ {"ioctl$KVM_SET_REGS", 16},
+ {"ioctl$KVM_GET_SREGS", 16},
+ {"ioctl$KVM_SET_SREGS", 16},
+ {"ioctl$KVM_TRANSLATE", 16},
+ {"ioctl$KVM_INTERRUPT", 16},
+ {"ioctl$KVM_GET_MSRS", 16},
+ {"ioctl$KVM_SET_MSRS", 16},
+ {"ioctl$KVM_SET_CPUID", 16},
+ {"ioctl$KVM_SET_SIGNAL_MASK", 16},
+ {"ioctl$KVM_GET_FPU", 16},
+ {"ioctl$KVM_SET_FPU", 16},
+ {"ioctl$KVM_GET_VCPU_EVENTS", 16},
+ {"ioctl$KVM_SET_VCPU_EVENTS", 16},
+ {"ioctl$KVM_GET_DEBUGREGS", 16},
+ {"ioctl$KVM_SET_DEBUGREGS", 16},
+ {"ioctl$KVM_ENABLE_CAP_CPU", 16},
+ {"ioctl$KVM_GET_MP_STATE", 16},
+ {"ioctl$KVM_SET_MP_STATE", 16},
+ {"ioctl$KVM_GET_XSAVE", 16},
+ {"ioctl$KVM_SET_XSAVE", 16},
+ {"ioctl$KVM_GET_XCRS", 16},
+ {"ioctl$KVM_SET_XCRS", 16},
+ {"ioctl$KVM_SET_TSC_KHZ", 16},
+ {"ioctl$KVM_GET_TSC_KHZ", 16},
+ {"ioctl$KVM_GET_LAPIC", 16},
+ {"ioctl$KVM_SET_LAPIC", 16},
+ {"ioctl$KVM_DIRTY_TLB", 16},
+ {"ioctl$KVM_NMI", 16},
+ {"ioctl$KVM_S390_UCAS_MAP", 16},
+ {"ioctl$KVM_S390_UCAS_UNMAP", 16},
+ {"ioctl$KVM_S390_VCPU_FAULT", 16},
+ {"ioctl$KVM_SET_ONE_REG", 16},
+ {"ioctl$KVM_GET_ONE_REG", 16},
+ {"ioctl$KVM_KVMCLOCK_CTRL", 16},
+ {"ioctl$KVM_S390_INTERRUPT_CPU", 16},
+ {"ioctl$KVM_GET_REG_LIST", 16},
+ {"ioctl$KVM_SET_GUEST_DEBUG", 16},
+ {"ioctl$KVM_SMI", 16},
+ {"open$xenevtchn", 2},
};
#endif
@@ -1418,6 +1504,92 @@ call_t syscalls[] = {
{"setsockopt$SCTP_PEER_ADDR_THLDS", 208},
{"setsockopt$SCTP_RECVRCVINFO", 208},
{"setsockopt$SCTP_RECVNXTINFO", 208},
+ {"open$kvm", -1},
+ {"ioctl$KVM_CREATE_VM", 29},
+ {"ioctl$KVM_GET_MSR_INDEX_LIST", 29},
+ {"ioctl$KVM_CHECK_EXTENSION", 29},
+ {"ioctl$KVM_GET_VCPU_MMAP_SIZE", 29},
+ {"ioctl$KVM_GET_SUPPORTED_CPUID", 29},
+ {"ioctl$KVM_GET_EMULATED_CPUID", 29},
+ {"ioctl$KVM_CREATE_VCPU", 29},
+ {"ioctl$KVM_CHECK_EXTENSION_VM", 29},
+ {"ioctl$KVM_SET_MEMORY_REGION", 29},
+ {"ioctl$KVM_GET_DIRTY_LOG", 29},
+ {"ioctl$KVM_CREATE_IRQCHIP", 29},
+ {"ioctl$KVM_IRQ_LINE", 29},
+ {"ioctl$KVM_GET_IRQCHIP", 29},
+ {"ioctl$KVM_SET_IRQCHIP", 29},
+ {"ioctl$KVM_XEN_HVM_CONFIG", 29},
+ {"ioctl$KVM_GET_CLOCK", 29},
+ {"ioctl$KVM_SET_CLOCK", 29},
+ {"ioctl$KVM_SET_USER_MEMORY_REGION", 29},
+ {"ioctl$KVM_SET_TSS_ADDR", 29},
+ {"ioctl$KVM_ENABLE_CAP", 29},
+ {"ioctl$KVM_SET_IDENTITY_MAP_ADDR", 29},
+ {"ioctl$KVM_SET_BOOT_CPU_ID", 29},
+ {"ioctl$KVM_PPC_GET_PVINFO", 29},
+ {"ioctl$KVM_ASSIGN_PCI_DEVICE", 29},
+ {"ioctl$KVM_DEASSIGN_PCI_DEVICE", 29},
+ {"ioctl$KVM_ASSIGN_DEV_IRQ", 29},
+ {"ioctl$KVM_DEASSIGN_DEV_IRQ", 29},
+ {"ioctl$KVM_SET_GSI_ROUTING", 29},
+ {"ioctl$KVM_ASSIGN_SET_MSIX_NR", 29},
+ {"ioctl$KVM_ASSIGN_SET_MSIX_ENTRY", 29},
+ {"ioctl$KVM_IOEVENTFD", 29},
+ {"ioctl$KVM_ASSIGN_SET_INTX_MASK", 29},
+ {"ioctl$KVM_SIGNAL_MSI", 29},
+ {"ioctl$KVM_CREATE_PIT2", 29},
+ {"ioctl$KVM_GET_PIT2", 29},
+ {"ioctl$KVM_SET_PIT2", 29},
+ {"ioctl$KVM_PPC_GET_SMMU_INFO", 29},
+ {"ioctl$KVM_IRQFD", 29},
+ {"ioctl$KVM_PPC_ALLOCATE_HTAB", 29},
+ {"ioctl$KVM_S390_INTERRUPT", 29},
+ {"ioctl$KVM_CREATE_DEVICE", 29},
+ {"ioctl$KVM_SET_DEVICE_ATTR", 29},
+ {"ioctl$KVM_GET_DEVICE_ATTR", 29},
+ {"ioctl$KVM_HAS_DEVICE_ATTR", 29},
+ {"ioctl$KVM_RUN", 29},
+ {"ioctl$KVM_GET_REGS", 29},
+ {"ioctl$KVM_SET_REGS", 29},
+ {"ioctl$KVM_GET_SREGS", 29},
+ {"ioctl$KVM_SET_SREGS", 29},
+ {"ioctl$KVM_TRANSLATE", 29},
+ {"ioctl$KVM_INTERRUPT", 29},
+ {"ioctl$KVM_GET_MSRS", 29},
+ {"ioctl$KVM_SET_MSRS", 29},
+ {"ioctl$KVM_SET_CPUID", 29},
+ {"ioctl$KVM_SET_SIGNAL_MASK", 29},
+ {"ioctl$KVM_GET_FPU", 29},
+ {"ioctl$KVM_SET_FPU", 29},
+ {"ioctl$KVM_GET_VCPU_EVENTS", 29},
+ {"ioctl$KVM_SET_VCPU_EVENTS", 29},
+ {"ioctl$KVM_GET_DEBUGREGS", 29},
+ {"ioctl$KVM_SET_DEBUGREGS", 29},
+ {"ioctl$KVM_ENABLE_CAP_CPU", 29},
+ {"ioctl$KVM_GET_MP_STATE", 29},
+ {"ioctl$KVM_SET_MP_STATE", 29},
+ {"ioctl$KVM_GET_XSAVE", 29},
+ {"ioctl$KVM_SET_XSAVE", 29},
+ {"ioctl$KVM_GET_XCRS", 29},
+ {"ioctl$KVM_SET_XCRS", 29},
+ {"ioctl$KVM_SET_TSC_KHZ", 29},
+ {"ioctl$KVM_GET_TSC_KHZ", 29},
+ {"ioctl$KVM_GET_LAPIC", 29},
+ {"ioctl$KVM_SET_LAPIC", 29},
+ {"ioctl$KVM_DIRTY_TLB", 29},
+ {"ioctl$KVM_NMI", 29},
+ {"ioctl$KVM_S390_UCAS_MAP", 29},
+ {"ioctl$KVM_S390_UCAS_UNMAP", 29},
+ {"ioctl$KVM_S390_VCPU_FAULT", 29},
+ {"ioctl$KVM_SET_ONE_REG", 29},
+ {"ioctl$KVM_GET_ONE_REG", 29},
+ {"ioctl$KVM_KVMCLOCK_CTRL", 29},
+ {"ioctl$KVM_S390_INTERRUPT_CPU", 29},
+ {"ioctl$KVM_GET_REG_LIST", 29},
+ {"ioctl$KVM_SET_GUEST_DEBUG", 29},
+ {"ioctl$KVM_SMI", 29},
+ {"open$xenevtchn", -1},
};
#endif
diff --git a/prog/consts.go b/prog/consts.go
index ab39b6e0c..cac4d52ab 100644
--- a/prog/consts.go
+++ b/prog/consts.go
@@ -597,6 +597,122 @@ const (
KEY_SPEC_USER_KEYRING = 18446744073709551612
KEY_SPEC_USER_SESSION_KEYRING = 18446744073709551611
KIOCSOUND = 19247
+ KVM_ASSIGN_DEV_IRQ = 1077980784
+ KVM_ASSIGN_PCI_DEVICE = 2151722601
+ KVM_ASSIGN_SET_INTX_MASK = 1077980836
+ KVM_ASSIGN_SET_MSIX_ENTRY = 1074835060
+ KVM_ASSIGN_SET_MSIX_NR = 1074310771
+ KVM_CHECK_EXTENSION = 44547
+ KVM_CREATE_DEVICE = 3222056672
+ KVM_CREATE_IRQCHIP = 44640
+ KVM_CREATE_PIT2 = 1077980791
+ KVM_CREATE_VCPU = 44609
+ KVM_CREATE_VM = 44545
+ KVM_DEASSIGN_DEV_IRQ = 1077980789
+ KVM_DEASSIGN_PCI_DEVICE = 1077980786
+ KVM_DEV_IRQ_GUEST_INTX = 256
+ KVM_DEV_IRQ_GUEST_MSI = 512
+ KVM_DEV_IRQ_GUEST_MSIX = 1024
+ KVM_DEV_IRQ_HOST_INTX = 1
+ KVM_DEV_IRQ_HOST_MSI = 2
+ KVM_DEV_IRQ_HOST_MSIX = 4
+ KVM_DEV_TYPE_FSL_MPIC_20 = 1
+ KVM_DEV_TYPE_FSL_MPIC_42 = 2
+ KVM_DEV_TYPE_VFIO = 4
+ KVM_DEV_TYPE_XICS = 3
+ KVM_DIRTY_TLB = 1074835114
+ KVM_ENABLE_CAP = 1080602275
+ KVM_GET_CLOCK = 2150674044
+ KVM_GET_DEBUGREGS = 2155916961
+ KVM_GET_DEVICE_ATTR = 1075359458
+ KVM_GET_DIRTY_LOG = 1074835010
+ KVM_GET_EMULATED_CPUID = 3221794313
+ KVM_GET_FPU = 2174791308
+ KVM_GET_IRQCHIP = 3255348834
+ KVM_GET_LAPIC = 2214637198
+ KVM_GET_MP_STATE = 2147790488
+ KVM_GET_MSRS = 3221794440
+ KVM_GET_MSR_INDEX_LIST = 3221532162
+ KVM_GET_ONE_REG = 1074835115
+ KVM_GET_PIT2 = 2154868383
+ KVM_GET_REGS = 2156965505
+ KVM_GET_REG_LIST = 3221794480
+ KVM_GET_SREGS = 2167975555
+ KVM_GET_SUPPORTED_CPUID = 3221794309
+ KVM_GET_TSC_KHZ = 44707
+ KVM_GET_VCPU_EVENTS = 2151722655
+ KVM_GET_VCPU_MMAP_SIZE = 44548
+ KVM_GET_XCRS = 2173218470
+ KVM_GET_XSAVE = 2415963812
+ KVM_GUESTDBG_ENABLE = 1
+ KVM_GUESTDBG_INJECT_BP = 524288
+ KVM_GUESTDBG_INJECT_DB = 262144
+ KVM_GUESTDBG_SINGLESTEP = 2
+ KVM_GUESTDBG_USE_HW_BP = 131072
+ KVM_GUESTDBG_USE_SW_BP = 65536
+ KVM_HAS_DEVICE_ATTR = 1075359459
+ KVM_INTERRUPT = 1074048646
+ KVM_IOEVENTFD = 1077980793
+ KVM_IOEVENTFD_FLAG_DATAMATCH = 1
+ KVM_IOEVENTFD_FLAG_DEASSIGN = 4
+ KVM_IOEVENTFD_FLAG_PIO = 2
+ KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY = 8
+ KVM_IRQFD = 1075883638
+ KVM_IRQ_LINE = 1074310753
+ KVM_IRQ_ROUTING_IRQCHIP = 1
+ KVM_IRQ_ROUTING_MSI = 2
+ KVM_KVMCLOCK_CTRL = 44717
+ KVM_MEMSLOT_INCOHERENT = 131072
+ KVM_MEMSLOT_INVALID = 65536
+ KVM_MEM_LOG_DIRTY_PAGES = 1
+ KVM_MEM_READONLY = 2
+ KVM_MP_STATE_CHECK_STOP = 6
+ KVM_MP_STATE_HALTED = 3
+ KVM_MP_STATE_INIT_RECEIVED = 2
+ KVM_MP_STATE_LOAD = 8
+ KVM_MP_STATE_OPERATING = 7
+ KVM_MP_STATE_RUNNABLE = 0
+ KVM_MP_STATE_SIPI_RECEIVED = 4
+ KVM_MP_STATE_STOPPED = 5
+ KVM_MP_STATE_UNINITIALIZED = 1
+ KVM_NMI = 44698
+ KVM_PPC_ALLOCATE_HTAB = 3221532327
+ KVM_PPC_GET_PVINFO = 1082175137
+ KVM_PPC_GET_SMMU_INFO = 2186325670
+ KVM_RUN = 44672
+ KVM_S390_INTERRUPT = 1074835092
+ KVM_S390_UCAS_MAP = 1075359312
+ KVM_S390_UCAS_UNMAP = 1075359313
+ KVM_S390_VCPU_FAULT = 1074310738
+ KVM_SET_BOOT_CPU_ID = 44664
+ KVM_SET_CLOCK = 1076932219
+ KVM_SET_CPUID = 1074310794
+ KVM_SET_DEBUGREGS = 1082175138
+ KVM_SET_DEVICE_ATTR = 1075359457
+ KVM_SET_FPU = 1101049485
+ KVM_SET_GSI_ROUTING = 1074310762
+ KVM_SET_GUEST_DEBUG = 1078505115
+ KVM_SET_IDENTITY_MAP_ADDR = 1074310728
+ KVM_SET_IRQCHIP = 2181607011
+ KVM_SET_LAPIC = 1140895375
+ KVM_SET_MEMORY_REGION = 1075359296
+ KVM_SET_MP_STATE = 1074048665
+ KVM_SET_MSRS = 1074310793
+ KVM_SET_ONE_REG = 1074835116
+ KVM_SET_PIT2 = 1081126560
+ KVM_SET_REGS = 1083223682
+ KVM_SET_SIGNAL_MASK = 1074048651
+ KVM_SET_SREGS = 1094233732
+ KVM_SET_TSC_KHZ = 44706
+ KVM_SET_TSS_ADDR = 44615
+ KVM_SET_USER_MEMORY_REGION = 1075883590
+ KVM_SET_VCPU_EVENTS = 1077980832
+ KVM_SET_XCRS = 1099476647
+ KVM_SET_XSAVE = 1342221989
+ KVM_SIGNAL_MSI = 1075883685
+ KVM_SMI = 44727
+ KVM_TRANSLATE = 3222843013
+ KVM_XEN_HVM_CONFIG = 1077456506
L2CAP_CONNINFO = 2
L2CAP_LM = 3
L2CAP_LM_AUTH = 2
diff --git a/sys/decl.go b/sys/decl.go
index 8d866a66f..ea361f440 100644
--- a/sys/decl.go
+++ b/sys/decl.go
@@ -99,6 +99,9 @@ const (
FdBtBnep
FdUnix
FdSctp
+ FdKvm
+ FdKvmVm
+ FdKvmCpu
IPCMsq
IPCSem
@@ -127,7 +130,8 @@ func ResourceSubkinds(kind ResourceKind) []ResourceSubkind {
FdTimer, FdEpoll, FdDir, FdMq, FdInotify, FdFanotify, FdTty,
FdDRI, FdFuse, FdKdbus, FdBpfMap, FdBpfProg, FdPerf, FdUserFault,
FdAlg, FdAlgConn, FdNfcRaw, FdNfcLlcp, FdBtHci, FdBtSco, FdBtL2cap,
- FdBtRfcomm, FdBtHidp, FdBtCmtp, FdBtBnep, FdUnix, FdSctp}
+ FdBtRfcomm, FdBtHidp, FdBtCmtp, FdBtBnep, FdUnix, FdSctp, FdKvm, FdKvmVm,
+ FdKvmCpu}
case ResIPC:
return []ResourceSubkind{IPCMsq, IPCSem, IPCShm}
case ResIOCtx, ResKey, ResInotifyDesc, ResPid, ResUid, ResGid, ResTimerid, ResIocbPtr:
diff --git a/sys/kvm.txt b/sys/kvm.txt
new file mode 100644
index 000000000..11115bac1
--- /dev/null
+++ b/sys/kvm.txt
@@ -0,0 +1,415 @@
+# Copyright 2015 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <linux/kvm.h>
+
+open$kvm(file strconst["/dev/kvm"], flags flags[open_flags], mode const[0]) fd[kvm]
+
+ioctl$KVM_CREATE_VM(fd fd[kvm], cmd const[KVM_CREATE_VM], type const[0]) fd[kvmvm]
+ioctl$KVM_GET_MSR_INDEX_LIST(fd fd[kvm], cmd const[KVM_GET_MSR_INDEX_LIST], arg ptr[in, kvm_msr_list])
+ioctl$KVM_CHECK_EXTENSION(fd fd[kvm], cmd const[KVM_CHECK_EXTENSION], arg intptr)
+ioctl$KVM_GET_VCPU_MMAP_SIZE(fd fd[kvm], cmd const[KVM_GET_VCPU_MMAP_SIZE])
+ioctl$KVM_GET_SUPPORTED_CPUID(fd fd[kvm], cmd const[KVM_GET_SUPPORTED_CPUID], arg buffer[out])
+ioctl$KVM_GET_EMULATED_CPUID(fd fd[kvmvm], cmd const[KVM_GET_EMULATED_CPUID], arg buffer[out])
+
+ioctl$KVM_CREATE_VCPU(fd fd[kvmvm], cmd const[KVM_CREATE_VCPU], id intptr) fd[kvmcpu]
+ioctl$KVM_CHECK_EXTENSION_VM(fd fd[kvmvm], cmd const[KVM_CHECK_EXTENSION], arg intptr)
+ioctl$KVM_SET_MEMORY_REGION(fd fd[kvmvm], cmd const[KVM_SET_MEMORY_REGION], type ptr[in, kvm_memory_region])
+ioctl$KVM_GET_DIRTY_LOG(fd fd[kvmvm], cmd const[KVM_GET_DIRTY_LOG], arg ptr[in, kvm_dirty_log])
+ioctl$KVM_CREATE_IRQCHIP(fd fd[kvmvm], cmd const[KVM_CREATE_IRQCHIP])
+ioctl$KVM_IRQ_LINE(fd fd[kvmvm], cmd const[KVM_IRQ_LINE], arg ptr[in, kvm_irq_level])
+ioctl$KVM_GET_IRQCHIP(fd fd[kvmvm], cmd const[KVM_GET_IRQCHIP], arg buffer[out])
+ioctl$KVM_SET_IRQCHIP(fd fd[kvmvm], cmd const[KVM_SET_IRQCHIP], arg buffer[in])
+ioctl$KVM_XEN_HVM_CONFIG(fd fd[kvmvm], cmd const[KVM_XEN_HVM_CONFIG], arg ptr[in, kvm_xen_hvm_config])
+ioctl$KVM_GET_CLOCK(fd fd[kvmvm], cmd const[KVM_GET_CLOCK], arg ptr[out, kvm_clock_data])
+ioctl$KVM_SET_CLOCK(fd fd[kvmvm], cmd const[KVM_SET_CLOCK], arg ptr[in, kvm_clock_data])
+ioctl$KVM_SET_USER_MEMORY_REGION(fd fd[kvmvm], cmd const[KVM_SET_USER_MEMORY_REGION], arg ptr[in, kvm_userspace_memory_region])
+ioctl$KVM_SET_TSS_ADDR(fd fd[kvmvm], cmd const[KVM_SET_TSS_ADDR], arg ptr[in, int64])
+ioctl$KVM_ENABLE_CAP(fd fd[kvmvm], cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap])
+ioctl$KVM_SET_IDENTITY_MAP_ADDR(fd fd[kvmvm], cmd const[KVM_SET_IDENTITY_MAP_ADDR], arg ptr[in, int32])
+ioctl$KVM_SET_BOOT_CPU_ID(fd fd[kvmvm], cmd const[KVM_SET_BOOT_CPU_ID], arg ptr[in, intptr])
+ioctl$KVM_PPC_GET_PVINFO(fd fd[kvmvm], cmd const[KVM_PPC_GET_PVINFO], arg buffer[out])
+ioctl$KVM_ASSIGN_PCI_DEVICE(fd fd[kvmvm], cmd const[KVM_ASSIGN_PCI_DEVICE], arg ptr[in, kvm_assigned_pci_dev])
+ioctl$KVM_DEASSIGN_PCI_DEVICE(fd fd[kvmvm], cmd const[KVM_DEASSIGN_PCI_DEVICE], arg ptr[in, kvm_assigned_pci_dev])
+ioctl$KVM_ASSIGN_DEV_IRQ(fd fd[kvmvm], cmd const[KVM_ASSIGN_DEV_IRQ], arg ptr[in, kvm_assigned_irq])
+ioctl$KVM_DEASSIGN_DEV_IRQ(fd fd[kvmvm], cmd const[KVM_DEASSIGN_DEV_IRQ], arg ptr[in, kvm_assigned_irq])
+ioctl$KVM_SET_GSI_ROUTING(fd fd[kvmvm], cmd const[KVM_SET_GSI_ROUTING], arg ptr[in, kvm_irq_routing])
+ioctl$KVM_ASSIGN_SET_MSIX_NR(fd fd[kvmvm], cmd const[KVM_ASSIGN_SET_MSIX_NR], arg ptr[in, kvm_assigned_msix_nr])
+ioctl$KVM_ASSIGN_SET_MSIX_ENTRY(fd fd[kvmvm], cmd const[KVM_ASSIGN_SET_MSIX_ENTRY], arg ptr[in, kvm_assigned_msix_entry])
+ioctl$KVM_IOEVENTFD(fd fd[kvmvm], cmd const[KVM_IOEVENTFD], arg ptr[in, kvm_ioeventfd])
+ioctl$KVM_ASSIGN_SET_INTX_MASK(fd fd[kvmvm], cmd const[KVM_ASSIGN_SET_INTX_MASK], arg ptr[in, kvm_assigned_pci_dev])
+ioctl$KVM_SIGNAL_MSI(fd fd[kvmvm], cmd const[KVM_SIGNAL_MSI], arg ptr[in, kvm_msi])
+ioctl$KVM_CREATE_PIT2(fd fd[kvmvm], cmd const[KVM_CREATE_PIT2], arg ptr[in, kvm_pit_config])
+ioctl$KVM_GET_PIT2(fd fd[kvmvm], cmd const[KVM_GET_PIT2], arg ptr[out, kvm_pit_state2])
+ioctl$KVM_SET_PIT2(fd fd[kvmvm], cmd const[KVM_SET_PIT2], arg ptr[in, kvm_pit_state2])
+ioctl$KVM_PPC_GET_SMMU_INFO(fd fd[kvmvm], cmd const[KVM_PPC_GET_SMMU_INFO], arg buffer[out])
+ioctl$KVM_IRQFD(fd fd[kvmvm], cmd const[KVM_IRQFD], arg ptr[in, kvm_irqfd])
+ioctl$KVM_PPC_ALLOCATE_HTAB(fd fd[kvmvm], cmd const[KVM_PPC_ALLOCATE_HTAB], arg ptr[in, int32])
+ioctl$KVM_S390_INTERRUPT(fd fd[kvmvm], cmd const[KVM_S390_INTERRUPT], arg ptr[in, kvm_s390_interrupt])
+ioctl$KVM_CREATE_DEVICE(fd fd[kvmvm], cmd const[KVM_CREATE_DEVICE], arg ptr[inout, kvm_create_device])
+ioctl$KVM_SET_DEVICE_ATTR(fd fd[kvmvm], cmd const[KVM_SET_DEVICE_ATTR], arg ptr[in, kvm_device_attr])
+ioctl$KVM_GET_DEVICE_ATTR(fd fd[kvmvm], cmd const[KVM_GET_DEVICE_ATTR], arg ptr[in, kvm_device_attr])
+ioctl$KVM_HAS_DEVICE_ATTR(fd fd[kvmvm], cmd const[KVM_HAS_DEVICE_ATTR], arg ptr[in, kvm_device_attr])
+
+ioctl$KVM_RUN(fd fd[kvmcpu], cmd const[KVM_RUN])
+ioctl$KVM_GET_REGS(fd fd[kvmcpu], cmd const[KVM_GET_REGS], arg buffer[out])
+ioctl$KVM_SET_REGS(fd fd[kvmcpu], cmd const[KVM_SET_REGS], arg buffer[in])
+ioctl$KVM_GET_SREGS(fd fd[kvmcpu], cmd const[KVM_GET_SREGS], arg buffer[out])
+ioctl$KVM_SET_SREGS(fd fd[kvmcpu], cmd const[KVM_SET_SREGS], arg buffer[in])
+ioctl$KVM_TRANSLATE(fd fd[kvmcpu], cmd const[KVM_TRANSLATE], arg ptr[in, kvm_translation])
+ioctl$KVM_INTERRUPT(fd fd[kvmcpu], cmd const[KVM_INTERRUPT], arg ptr[in, int32])
+ioctl$KVM_GET_MSRS(fd fd[kvmcpu], cmd const[KVM_GET_MSRS], arg buffer[out])
+ioctl$KVM_SET_MSRS(fd fd[kvmcpu], cmd const[KVM_SET_MSRS], arg buffer[in])
+ioctl$KVM_SET_CPUID(fd fd[kvmcpu], cmd const[KVM_SET_CPUID], arg ptr[in, kvm_cpuid])
+ioctl$KVM_SET_SIGNAL_MASK(fd fd[kvmcpu], cmd const[KVM_SET_SIGNAL_MASK], arg ptr[in, kvm_signal_mask])
+ioctl$KVM_GET_FPU(fd fd[kvmcpu], cmd const[KVM_GET_FPU], arg buffer[out])
+ioctl$KVM_SET_FPU(fd fd[kvmcpu], cmd const[KVM_SET_FPU], arg buffer[in])
+ioctl$KVM_GET_VCPU_EVENTS(fd fd[kvmcpu], cmd const[KVM_GET_VCPU_EVENTS], arg ptr[out, kvm_vcpu_events])
+ioctl$KVM_SET_VCPU_EVENTS(fd fd[kvmcpu], cmd const[KVM_SET_VCPU_EVENTS], arg ptr[in, kvm_vcpu_events])
+ioctl$KVM_GET_DEBUGREGS(fd fd[kvmcpu], cmd const[KVM_GET_DEBUGREGS], arg buffer[out])
+ioctl$KVM_SET_DEBUGREGS(fd fd[kvmcpu], cmd const[KVM_SET_DEBUGREGS], arg buffer[in])
+ioctl$KVM_ENABLE_CAP_CPU(fd fd[kvmcpu], cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap])
+ioctl$KVM_GET_MP_STATE(fd fd[kvmcpu], cmd const[KVM_GET_MP_STATE], arg ptr[out, int32])
+ioctl$KVM_SET_MP_STATE(fd fd[kvmcpu], cmd const[KVM_SET_MP_STATE], arg ptr[in, flags[kvm_mp_state, int32]])
+ioctl$KVM_GET_XSAVE(fd fd[kvmcpu], cmd const[KVM_GET_XSAVE], arg ptr[out, kvm_xsave])
+ioctl$KVM_SET_XSAVE(fd fd[kvmcpu], cmd const[KVM_SET_XSAVE], arg ptr[in, kvm_xsave])
+ioctl$KVM_GET_XCRS(fd fd[kvmcpu], cmd const[KVM_GET_XCRS], arg ptr[in, kvm_xcrs])
+ioctl$KVM_SET_XCRS(fd fd[kvmcpu], cmd const[KVM_SET_XCRS], arg ptr[in, kvm_xcrs])
+ioctl$KVM_SET_TSC_KHZ(fd fd[kvmcpu], cmd const[KVM_SET_TSC_KHZ], arg intptr)
+ioctl$KVM_GET_TSC_KHZ(fd fd[kvmcpu], cmd const[KVM_GET_TSC_KHZ])
+ioctl$KVM_GET_LAPIC(fd fd[kvmcpu], cmd const[KVM_GET_LAPIC], arg ptr[in, kvm_lapic_state])
+ioctl$KVM_SET_LAPIC(fd fd[kvmcpu], cmd const[KVM_SET_LAPIC], arg ptr[in, kvm_lapic_state])
+ioctl$KVM_DIRTY_TLB(fd fd[kvmcpu], cmd const[KVM_DIRTY_TLB], arg ptr[in, kvm_dirty_tlb])
+ioctl$KVM_NMI(fd fd[kvmcpu], cmd const[KVM_NMI])
+ioctl$KVM_S390_UCAS_MAP(fd fd[kvmcpu], cmd const[KVM_S390_UCAS_MAP], arg ptr[in, kvm_s390_ucas_mapping])
+ioctl$KVM_S390_UCAS_UNMAP(fd fd[kvmcpu], cmd const[KVM_S390_UCAS_UNMAP], arg ptr[in, kvm_s390_ucas_mapping])
+ioctl$KVM_S390_VCPU_FAULT(fd fd[kvmcpu], cmd const[KVM_S390_VCPU_FAULT], arg ptr[in, int64])
+ioctl$KVM_SET_ONE_REG(fd fd[kvmcpu], cmd const[KVM_SET_ONE_REG], arg ptr[in, kvm_one_reg])
+ioctl$KVM_GET_ONE_REG(fd fd[kvmcpu], cmd const[KVM_GET_ONE_REG], arg ptr[in, kvm_one_reg])
+ioctl$KVM_KVMCLOCK_CTRL(fd fd[kvmcpu], cmd const[KVM_KVMCLOCK_CTRL])
+ioctl$KVM_S390_INTERRUPT_CPU(fd fd[kvmcpu], cmd const[KVM_S390_INTERRUPT], arg ptr[in, kvm_s390_interrupt])
+ioctl$KVM_GET_REG_LIST(fd fd[kvmcpu], cmd const[KVM_GET_REG_LIST], arg ptr[in, kvm_reg_list])
+ioctl$KVM_SET_GUEST_DEBUG(fd fd[kvmcpu], cmd const[KVM_SET_GUEST_DEBUG], arg ptr[in, kvm_guest_debug])
+ioctl$KVM_SMI(fd fd[kvmcpu], cmd const[KVM_SMI])
+
+# TODO: extend support (there are some ioctls)
+open$xenevtchn(file strconst["/dev/xen/evtchn"], flags flags[open_flags], mode const[0]) fd
+
+kvm_mem_region_flags = KVM_MEM_LOG_DIRTY_PAGES, KVM_MEM_READONLY, KVM_MEMSLOT_INVALID, KVM_MEMSLOT_INCOHERENT
+kvm_mp_state = KVM_MP_STATE_RUNNABLE, KVM_MP_STATE_UNINITIALIZED, KVM_MP_STATE_INIT_RECEIVED, KVM_MP_STATE_HALTED, KVM_MP_STATE_SIPI_RECEIVED, KVM_MP_STATE_STOPPED, KVM_MP_STATE_CHECK_STOP, KVM_MP_STATE_OPERATING, KVM_MP_STATE_LOAD
+kvm_assigned_irq_flags = KVM_DEV_IRQ_HOST_INTX, KVM_DEV_IRQ_HOST_MSI, KVM_DEV_IRQ_HOST_MSIX, KVM_DEV_IRQ_GUEST_INTX, KVM_DEV_IRQ_GUEST_MSI, KVM_DEV_IRQ_GUEST_MSIX
+kvm_irq_routing_entry_type = KVM_IRQ_ROUTING_IRQCHIP, KVM_IRQ_ROUTING_MSI
+kvm_ioeventfd_flags = KVM_IOEVENTFD_FLAG_DATAMATCH, KVM_IOEVENTFD_FLAG_PIO, KVM_IOEVENTFD_FLAG_DEASSIGN, KVM_IOEVENTFD_FLAG_VIRTIO_CCW_NOTIFY
+kvm_ioeventfd_len = 1, 2, 4, 8
+kvm_device_type = KVM_DEV_TYPE_FSL_MPIC_20, KVM_DEV_TYPE_FSL_MPIC_42, KVM_DEV_TYPE_XICS, KVM_DEV_TYPE_VFIO
+kvm_guest_debug_flags = KVM_GUESTDBG_ENABLE, KVM_GUESTDBG_SINGLESTEP, KVM_GUESTDBG_USE_SW_BP, KVM_GUESTDBG_USE_HW_BP, KVM_GUESTDBG_INJECT_DB, KVM_GUESTDBG_INJECT_BP
+
+kvm_guest_debug {
+ ctrl flags[kvm_guest_debug_flags, int32]
+ pad const[0, int32]
+ reg array[int64, 8]
+}
+
+kvm_arm_device_addr {
+ id int64
+ addr int64
+}
+
+kvm_reg_list {
+ n len[reg, int64]
+ reg array[int64]
+}
+
+kvm_device_attr {
+ flags const[0, int32]
+ group int32
+ attr int64
+ addr ptr[out, int64]
+}
+
+kvm_create_device {
+ type flags[kvm_device_type, int32]
+ fd fd
+ flags int32
+}
+
+kvm_s390_interrupt {
+ type int32
+ parm int32
+ parm64 int64
+}
+
+kvm_irqfd {
+ fd fd[event]
+ gsi int32
+ flags int32
+ rfd fd[event]
+ pad array[const[0, int8], 16]
+}
+
+kvm_pit_state2 {
+ chans array[kvm_pit_channel_state, 3]
+ flags int32
+ pad array[const[0, int32], 9]
+}
+
+kvm_pit_channel_state {
+ count int32
+ lcount int16
+ latched int8
+ lstatus int8
+ status int8
+ rstate int8
+ wstate int8
+ wlatch int8
+ rw int8
+ mode int8
+ bcd int8
+ gate int8
+ ltime int16
+}
+
+kvm_pit_config {
+ flags int32
+ pad array[const[0, int32], 15]
+}
+
+kvm_msi {
+ addrlo int32
+ addrhi int32
+ data int32
+ flags int32
+}
+
+kvm_one_reg {
+ id int64
+ addr int64
+}
+
+kvm_s390_ucas_mapping {
+ uaddr int64
+ vaddr int64
+ len int64
+}
+
+kvm_dirty_tlb {
+ bitmap int64
+ n int32
+}
+
+kvm_ioeventfd {
+ datam int64
+ addr ptr[out, int64]
+ len flags[kvm_ioeventfd_len, int32]
+ fd fd[event]
+ flags flags[kvm_ioeventfd_flags, int32]
+}
+
+kvm_lapic_state {
+ regs array[int8, 1024]
+}
+
+kvm_assigned_msix_entry {
+ devid int32
+ gsi int32
+ entry int16
+}
+
+kvm_assigned_msix_nr {
+ devid int32
+ entnr int16
+}
+
+kvm_irq_routing {
+ nr len[entries, int32]
+ flags const[0, int32]
+ entries array[kvm_irq_routing_entry]
+}
+
+kvm_irq_routing_entry {
+ gsi int32
+ type flags[kvm_irq_routing_entry_type, int32]
+ flags const[0, int32]
+ pad const[0, int32]
+ u kvm_irq_routing_entry_u
+}
+
+kvm_irq_routing_entry_u [
+ irqchip kvm_irq_routing_irqchip
+ msi kvm_irq_routing_msi
+ adapter kvm_irq_routing_s390_adapter
+]
+
+kvm_irq_routing_irqchip {
+ irqchip int32
+ pin int32
+ pad const[0, int64]
+ pad const[0, int64]
+ pad const[0, int64]
+}
+
+kvm_irq_routing_msi {
+ addrlo int32
+ addrhi int32
+ data int32
+ pad const[0, int32]
+ pad const[0, int64]
+ pad const[0, int64]
+}
+
+kvm_irq_routing_s390_adapter {
+ indaddr int64
+ saddr int64
+ indoff int64
+ soff int32
+ aid int32
+}
+
+kvm_assigned_irq {
+ devid int32
+ hirq int32
+ girq int32
+ flags flags[kvm_assigned_irq_flags, int32]
+}
+
+kvm_assigned_pci_dev {
+ devid int32
+ busnr int32
+ devfn int32
+ flags int32
+ segnr int32
+}
+
+kvm_xcr {
+ xcr int32
+ reserv int32
+ val int64
+}
+
+kvm_xcrs {
+ nr len[xcrs, int32]
+ flags int32
+ xcrs array[kvm_xcr]
+}
+
+kvm_xsave {
+ region array[int8, 1024]
+}
+
+kvm_enable_cap {
+ cap int32
+ flags const[0, int32]
+ args array[int64, 4]
+ pad array[const[0, int8], 64]
+}
+
+kvm_userspace_memory_region {
+ slot int32
+ flags flags[kvm_mem_region_flags, int32]
+ paddr int64
+ size len[addr, int64]
+ addr vma
+}
+
+kvm_vcpu_events {
+ exinjec int8
+ exnr int8
+ exhec int8
+ pad const[0, int8]
+ exec int32
+
+ ininjec int8
+ innr int8
+ insoft int8
+ inshad int8
+
+ nmiinj int8
+ nmipend int8
+ nmimask int8
+ pad const[0, int8]
+
+ sipi int32
+ flags int32
+
+ smismm int8
+ smipend int8
+ smiinsi int8
+ smilatc int8
+}
+
+kvm_clock_data {
+ clock int64
+ flags int32
+ pad array[const[0, int32], 9]
+}
+
+kvm_xen_hvm_config {
+ flags int32
+ msr int32
+ addr32 buffer[in]
+ addr64 buffer[in]
+ size32 len[addr32, int8]
+ size64 len[addr64, int8]
+ pad array[const[0, int8], 30]
+}
+
+kvm_irq_level {
+ irq int32
+ level int32
+}
+
+kvm_signal_mask {
+ len len[sigset, int32]
+ sigset array[int8]
+}
+
+kvm_cpuid_entry {
+ func int32
+ eax int32
+ ebx int32
+ ecx int32
+ edx int32
+ pad const[0, int32]
+}
+
+kvm_cpuid {
+ n len[entries, int32]
+ pad const[0, int32]
+ entries array[kvm_cpuid_entry]
+}
+
+kvm_translation {
+ laddr int64
+ paddr int64
+ valid int8
+ write int8
+ umode int8
+}
+
+kvm_dirty_log {
+ slot int32
+ pad const[0, int32]
+ bitmap vma
+}
+
+kvm_memory_region {
+ slot int32
+ flags flags[kvm_mem_region_flags, int32]
+ pa int64
+ size int64
+}
+
+kvm_msr_list {
+ n len[indices, int32]
+ indices array[int32]
+}
+
+define KVM_SMI _IO(KVMIO, 0xb7)
+
+define KVM_MEMSLOT_INVALID (1UL << 16)
+define KVM_MEMSLOT_INCOHERENT (1UL << 17)
+
+define KVM_MP_STATE_STOPPED 5
+define KVM_MP_STATE_CHECK_STOP 6
+define KVM_MP_STATE_OPERATING 7
+define KVM_MP_STATE_LOAD 8
diff --git a/sys/sys.go b/sys/sys.go
index 7f16d8ce8..c28830da4 100644
--- a/sys/sys.go
+++ b/sys/sys.go
@@ -2097,4 +2097,262 @@ func initCalls() {
func() {
Calls = append(Calls, &Call{ID: 698, Name: "setsockopt$SCTP_RECVNXTINFO", CallName: "setsockopt", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdSctp}, ConstType{TypeCommon: TypeCommon{TypeName: "level", IsOptional: false}, TypeSize: 0, Val: uintptr(132)}, ConstType{TypeCommon: TypeCommon{TypeName: "opt", IsOptional: false}, TypeSize: 0, Val: uintptr(33)}, PtrType{TypeCommon: TypeCommon{TypeName: "val", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirIn}, LenType{TypeCommon: TypeCommon{TypeName: "len", IsOptional: false}, Buf: "val", TypeSize: 0}}})
}()
+ func() {
+ Calls = append(Calls, &Call{ID: 699, Name: "open$kvm", CallName: "open", Ret: ResourceType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, Args: []Type{PtrType{TypeCommon: TypeCommon{TypeName: "file", IsOptional: false}, Dir: DirIn, Type: StrConstType{TypeCommon: TypeCommon{TypeName: "file", IsOptional: false}, Val: "/dev/kvm"}}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 0, Vals: []uintptr{0, 1, 2, 1024, 8192, 524288, 64, 16384, 65536, 128, 0, 262144, 256, 131072, 2048, 2097152, 1052672, 512}}, ConstType{TypeCommon: TypeCommon{TypeName: "mode", IsOptional: false}, TypeSize: 0, Val: uintptr(0)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 700, Name: "ioctl$KVM_CREATE_VM", CallName: "ioctl", Ret: ResourceType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44545)}, ConstType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, TypeSize: 0, Val: uintptr(0)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 701, Name: "ioctl$KVM_GET_MSR_INDEX_LIST", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221532162)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_msr_list", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "n", IsOptional: false}, Buf: "indices", TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "indices", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 702, Name: "ioctl$KVM_CHECK_EXTENSION", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44547)}, IntType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, TypeSize: 8}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 703, Name: "ioctl$KVM_GET_VCPU_MMAP_SIZE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44548)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 704, Name: "ioctl$KVM_GET_SUPPORTED_CPUID", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221794309)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 705, Name: "ioctl$KVM_GET_EMULATED_CPUID", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221794313)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 706, Name: "ioctl$KVM_CREATE_VCPU", CallName: "ioctl", Ret: ResourceType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44609)}, IntType{TypeCommon: TypeCommon{TypeName: "id", IsOptional: false}, TypeSize: 8}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 707, Name: "ioctl$KVM_CHECK_EXTENSION_VM", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44547)}, IntType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, TypeSize: 8}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 708, Name: "ioctl$KVM_SET_MEMORY_REGION", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359296)}, PtrType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_memory_region", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "slot", IsOptional: false}, TypeSize: 4}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 65536, 131072}}, IntType{TypeCommon: TypeCommon{TypeName: "pa", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "size", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 709, Name: "ioctl$KVM_GET_DIRTY_LOG", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835010)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_dirty_log", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "slot", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, VmaType{TypeCommon: TypeCommon{TypeName: "bitmap", IsOptional: false}}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 710, Name: "ioctl$KVM_CREATE_IRQCHIP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44640)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 711, Name: "ioctl$KVM_IRQ_LINE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310753)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_level", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "irq", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "level", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 712, Name: "ioctl$KVM_GET_IRQCHIP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3255348834)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 713, Name: "ioctl$KVM_SET_IRQCHIP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2181607011)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 714, Name: "ioctl$KVM_XEN_HVM_CONFIG", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077456506)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xen_hvm_config", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "msr", IsOptional: false}, TypeSize: 4}, PtrType{TypeCommon: TypeCommon{TypeName: "addr32", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "addr32", IsOptional: false}, Kind: BufferBlob}}, PtrType{TypeCommon: TypeCommon{TypeName: "addr64", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "addr64", IsOptional: false}, Kind: BufferBlob}}, LenType{TypeCommon: TypeCommon{TypeName: "size32", IsOptional: false}, Buf: "addr32", TypeSize: 1}, LenType{TypeCommon: TypeCommon{TypeName: "size64", IsOptional: false}, Buf: "addr64", TypeSize: 1}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, Len: 30}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 715, Name: "ioctl$KVM_GET_CLOCK", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2150674044)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_clock_data", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "clock", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, Len: 9}}}, Dir: DirOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 716, Name: "ioctl$KVM_SET_CLOCK", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1076932219)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_clock_data", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "clock", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, Len: 9}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 717, Name: "ioctl$KVM_SET_USER_MEMORY_REGION", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075883590)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_userspace_memory_region", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "slot", IsOptional: false}, TypeSize: 4}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 65536, 131072}}, IntType{TypeCommon: TypeCommon{TypeName: "paddr", IsOptional: false}, TypeSize: 8}, LenType{TypeCommon: TypeCommon{TypeName: "size", IsOptional: false}, Buf: "addr", TypeSize: 8}, VmaType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 718, Name: "ioctl$KVM_SET_TSS_ADDR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44615)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 719, Name: "ioctl$KVM_ENABLE_CAP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1080602275)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_enable_cap", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "cap", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ArrayType{TypeCommon: TypeCommon{TypeName: "args", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Len: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, Len: 64}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 720, Name: "ioctl$KVM_SET_IDENTITY_MAP_ADDR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310728)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 721, Name: "ioctl$KVM_SET_BOOT_CPU_ID", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44664)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 722, Name: "ioctl$KVM_PPC_GET_PVINFO", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1082175137)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 723, Name: "ioctl$KVM_ASSIGN_PCI_DEVICE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2151722601)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_pci_dev", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "busnr", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "devfn", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "segnr", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 724, Name: "ioctl$KVM_DEASSIGN_PCI_DEVICE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980786)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_pci_dev", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "busnr", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "devfn", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "segnr", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 725, Name: "ioctl$KVM_ASSIGN_DEV_IRQ", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980784)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_irq", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "hirq", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "girq", IsOptional: false}, TypeSize: 4}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4, 256, 512, 1024}}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 726, Name: "ioctl$KVM_DEASSIGN_DEV_IRQ", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980789)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_irq", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "hirq", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "girq", IsOptional: false}, TypeSize: 4}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4, 256, 512, 1024}}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 727, Name: "ioctl$KVM_SET_GSI_ROUTING", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310762)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "nr", IsOptional: false}, Buf: "entries", TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ArrayType{TypeCommon: TypeCommon{TypeName: "entries", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing_entry", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "gsi", IsOptional: false}, TypeSize: 4}, FlagsType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2}}, ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, UnionType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing_entry_u", IsOptional: false}, Options: []Type{StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing_irqchip", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "irqchip", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "pin", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 8, Val: uintptr(0)}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 8, Val: uintptr(0)}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 8, Val: uintptr(0)}}}, StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing_msi", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "addrlo", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "addrhi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "data", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 8, Val: uintptr(0)}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 8, Val: uintptr(0)}}}, StructType{TypeCommon: TypeCommon{TypeName: "kvm_irq_routing_s390_adapter", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "indaddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "saddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "indoff", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "soff", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "aid", IsOptional: false}, TypeSize: 4}}}}}}}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 728, Name: "ioctl$KVM_ASSIGN_SET_MSIX_NR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310771)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_msix_nr", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "entnr", IsOptional: false}, TypeSize: 2}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 729, Name: "ioctl$KVM_ASSIGN_SET_MSIX_ENTRY", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835060)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_msix_entry", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "gsi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "entry", IsOptional: false}, TypeSize: 2}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 730, Name: "ioctl$KVM_IOEVENTFD", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980793)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_ioeventfd", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "datam", IsOptional: false}, TypeSize: 8}, PtrType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirOut}, FlagsType{TypeCommon: TypeCommon{TypeName: "len", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4, 8}}, ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdEvent}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 4, 8}}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 731, Name: "ioctl$KVM_ASSIGN_SET_INTX_MASK", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980836)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_assigned_pci_dev", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "devid", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "busnr", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "devfn", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "segnr", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 732, Name: "ioctl$KVM_SIGNAL_MSI", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075883685)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_msi", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "addrlo", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "addrhi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "data", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 733, Name: "ioctl$KVM_CREATE_PIT2", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980791)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_pit_config", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, Len: 15}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 734, Name: "ioctl$KVM_GET_PIT2", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2154868383)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_pit_state2", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "chans", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_pit_channel_state", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "count", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "lcount", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "latched", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "lstatus", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "status", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "rstate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "wstate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "wlatch", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "rw", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "mode", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "bcd", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "gate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "ltime", IsOptional: false}, TypeSize: 2}}}, Len: 3}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, Len: 9}}}, Dir: DirOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 735, Name: "ioctl$KVM_SET_PIT2", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1081126560)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_pit_state2", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "chans", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_pit_channel_state", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "count", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "lcount", IsOptional: false}, TypeSize: 2}, IntType{TypeCommon: TypeCommon{TypeName: "latched", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "lstatus", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "status", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "rstate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "wstate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "wlatch", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "rw", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "mode", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "bcd", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "gate", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "ltime", IsOptional: false}, TypeSize: 2}}}, Len: 3}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, Len: 9}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 736, Name: "ioctl$KVM_PPC_GET_SMMU_INFO", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2186325670)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 737, Name: "ioctl$KVM_IRQFD", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075883638)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_irqfd", IsOptional: false}, Fields: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdEvent}, IntType{TypeCommon: TypeCommon{TypeName: "gsi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ResourceType{TypeCommon: TypeCommon{TypeName: "rfd", IsOptional: false}, Kind: ResFD, Subkind: FdEvent}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, Len: 16}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 738, Name: "ioctl$KVM_PPC_ALLOCATE_HTAB", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221532327)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 739, Name: "ioctl$KVM_S390_INTERRUPT", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835092)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_s390_interrupt", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "parm", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "parm64", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 740, Name: "ioctl$KVM_CREATE_DEVICE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3222056672)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_create_device", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 3, 4}}, ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: ResAny}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}}}, Dir: DirInOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 741, Name: "ioctl$KVM_SET_DEVICE_ATTR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359457)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_device_attr", IsOptional: false}, Fields: []Type{ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "group", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "attr", IsOptional: false}, TypeSize: 8}, PtrType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirOut}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 742, Name: "ioctl$KVM_GET_DEVICE_ATTR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359458)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_device_attr", IsOptional: false}, Fields: []Type{ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "group", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "attr", IsOptional: false}, TypeSize: 8}, PtrType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirOut}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 743, Name: "ioctl$KVM_HAS_DEVICE_ATTR", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmVm}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359459)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_device_attr", IsOptional: false}, Fields: []Type{ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "group", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "attr", IsOptional: false}, TypeSize: 8}, PtrType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirOut}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 744, Name: "ioctl$KVM_RUN", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44672)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 745, Name: "ioctl$KVM_GET_REGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2156965505)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 746, Name: "ioctl$KVM_SET_REGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1083223682)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 747, Name: "ioctl$KVM_GET_SREGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2167975555)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 748, Name: "ioctl$KVM_SET_SREGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1094233732)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 749, Name: "ioctl$KVM_TRANSLATE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3222843013)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_translation", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "laddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "paddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "valid", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "write", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "umode", IsOptional: false}, TypeSize: 1}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 750, Name: "ioctl$KVM_INTERRUPT", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074048646)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 751, Name: "ioctl$KVM_GET_MSRS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221794440)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 752, Name: "ioctl$KVM_SET_MSRS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310793)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 753, Name: "ioctl$KVM_SET_CPUID", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310794)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_cpuid", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "n", IsOptional: false}, Buf: "entries", TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ArrayType{TypeCommon: TypeCommon{TypeName: "entries", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_cpuid_entry", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "func", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "eax", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "ebx", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "ecx", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "edx", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}}}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 754, Name: "ioctl$KVM_SET_SIGNAL_MASK", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074048651)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_signal_mask", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "len", IsOptional: false}, Buf: "sigset", TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "sigset", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 755, Name: "ioctl$KVM_GET_FPU", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2174791308)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 756, Name: "ioctl$KVM_SET_FPU", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1101049485)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 757, Name: "ioctl$KVM_GET_VCPU_EVENTS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2151722655)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_vcpu_events", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "exinjec", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "exnr", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "exhec", IsOptional: false}, TypeSize: 1}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "exec", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "ininjec", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "innr", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "insoft", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "inshad", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmiinj", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmipend", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmimask", IsOptional: false}, TypeSize: 1}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "sipi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "smismm", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smipend", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smiinsi", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smilatc", IsOptional: false}, TypeSize: 1}}}, Dir: DirOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 758, Name: "ioctl$KVM_SET_VCPU_EVENTS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1077980832)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_vcpu_events", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "exinjec", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "exnr", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "exhec", IsOptional: false}, TypeSize: 1}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "exec", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "ininjec", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "innr", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "insoft", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "inshad", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmiinj", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmipend", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "nmimask", IsOptional: false}, TypeSize: 1}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, IntType{TypeCommon: TypeCommon{TypeName: "sipi", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "smismm", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smipend", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smiinsi", IsOptional: false}, TypeSize: 1}, IntType{TypeCommon: TypeCommon{TypeName: "smilatc", IsOptional: false}, TypeSize: 1}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 759, Name: "ioctl$KVM_GET_DEBUGREGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2155916961)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirOut, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 760, Name: "ioctl$KVM_SET_DEBUGREGS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1082175138)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Dir: DirIn, Type: BufferType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Kind: BufferBlob}}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 761, Name: "ioctl$KVM_ENABLE_CAP_CPU", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1080602275)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_enable_cap", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "cap", IsOptional: false}, TypeSize: 4}, ConstType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ArrayType{TypeCommon: TypeCommon{TypeName: "args", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Len: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, Type: ConstType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1, Val: uintptr(0)}, Len: 64}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 762, Name: "ioctl$KVM_GET_MP_STATE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2147790488)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4}, Dir: DirOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 763, Name: "ioctl$KVM_SET_MP_STATE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074048665)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: FlagsType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 4, Vals: []uintptr{0, 1, 2, 3, 4, 5, 6, 7, 8}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 764, Name: "ioctl$KVM_GET_XSAVE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2415963812)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xsave", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "region", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 1024}}}, Dir: DirOut}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 765, Name: "ioctl$KVM_SET_XSAVE", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1342221989)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xsave", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "region", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 1024}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 766, Name: "ioctl$KVM_GET_XCRS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2173218470)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xcrs", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "nr", IsOptional: false}, Buf: "xcrs", TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "xcrs", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xcr", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "xcr", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "reserv", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "val", IsOptional: false}, TypeSize: 8}}}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 767, Name: "ioctl$KVM_SET_XCRS", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1099476647)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xcrs", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "nr", IsOptional: false}, Buf: "xcrs", TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 4}, ArrayType{TypeCommon: TypeCommon{TypeName: "xcrs", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_xcr", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "xcr", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "reserv", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "val", IsOptional: false}, TypeSize: 8}}}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 768, Name: "ioctl$KVM_SET_TSC_KHZ", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44706)}, IntType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, TypeSize: 8}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 769, Name: "ioctl$KVM_GET_TSC_KHZ", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44707)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 770, Name: "ioctl$KVM_GET_LAPIC", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(2214637198)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_lapic_state", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "regs", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 1024}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 771, Name: "ioctl$KVM_SET_LAPIC", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1140895375)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_lapic_state", IsOptional: false}, Fields: []Type{ArrayType{TypeCommon: TypeCommon{TypeName: "regs", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 1}, Len: 1024}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 772, Name: "ioctl$KVM_DIRTY_TLB", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835114)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_dirty_tlb", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "bitmap", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "n", IsOptional: false}, TypeSize: 4}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 773, Name: "ioctl$KVM_NMI", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44698)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 774, Name: "ioctl$KVM_S390_UCAS_MAP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359312)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_s390_ucas_mapping", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "uaddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "vaddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "len", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 775, Name: "ioctl$KVM_S390_UCAS_UNMAP", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1075359313)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_s390_ucas_mapping", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "uaddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "vaddr", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "len", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 776, Name: "ioctl$KVM_S390_VCPU_FAULT", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074310738)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 777, Name: "ioctl$KVM_SET_ONE_REG", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835116)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_one_reg", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "id", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 778, Name: "ioctl$KVM_GET_ONE_REG", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835115)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_one_reg", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "id", IsOptional: false}, TypeSize: 8}, IntType{TypeCommon: TypeCommon{TypeName: "addr", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 779, Name: "ioctl$KVM_KVMCLOCK_CTRL", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44717)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 780, Name: "ioctl$KVM_S390_INTERRUPT_CPU", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1074835092)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_s390_interrupt", IsOptional: false}, Fields: []Type{IntType{TypeCommon: TypeCommon{TypeName: "type", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "parm", IsOptional: false}, TypeSize: 4}, IntType{TypeCommon: TypeCommon{TypeName: "parm64", IsOptional: false}, TypeSize: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 781, Name: "ioctl$KVM_GET_REG_LIST", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(3221794480)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_reg_list", IsOptional: false}, Fields: []Type{LenType{TypeCommon: TypeCommon{TypeName: "n", IsOptional: false}, Buf: "reg", TypeSize: 8}, ArrayType{TypeCommon: TypeCommon{TypeName: "reg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Len: 0}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 782, Name: "ioctl$KVM_SET_GUEST_DEBUG", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(1078505115)}, PtrType{TypeCommon: TypeCommon{TypeName: "arg", IsOptional: false}, Type: StructType{TypeCommon: TypeCommon{TypeName: "kvm_guest_debug", IsOptional: false}, Fields: []Type{FlagsType{TypeCommon: TypeCommon{TypeName: "ctrl", IsOptional: false}, TypeSize: 4, Vals: []uintptr{1, 2, 65536, 131072, 262144, 524288}}, ConstType{TypeCommon: TypeCommon{TypeName: "pad", IsOptional: false}, TypeSize: 4, Val: uintptr(0)}, ArrayType{TypeCommon: TypeCommon{TypeName: "reg", IsOptional: false}, Type: IntType{TypeCommon: TypeCommon{TypeName: "", IsOptional: false}, TypeSize: 8}, Len: 8}}}, Dir: DirIn}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 783, Name: "ioctl$KVM_SMI", CallName: "ioctl", Args: []Type{ResourceType{TypeCommon: TypeCommon{TypeName: "fd", IsOptional: false}, Kind: ResFD, Subkind: FdKvmCpu}, ConstType{TypeCommon: TypeCommon{TypeName: "cmd", IsOptional: false}, TypeSize: 0, Val: uintptr(44727)}}})
+ }()
+ func() {
+ Calls = append(Calls, &Call{ID: 784, Name: "open$xenevtchn", CallName: "open", Ret: ResourceType{TypeCommon: TypeCommon{TypeName: "ret", IsOptional: false}, Kind: ResFD, Subkind: ResAny}, Args: []Type{PtrType{TypeCommon: TypeCommon{TypeName: "file", IsOptional: false}, Dir: DirIn, Type: StrConstType{TypeCommon: TypeCommon{TypeName: "file", IsOptional: false}, Val: "/dev/xen/evtchn"}}, FlagsType{TypeCommon: TypeCommon{TypeName: "flags", IsOptional: false}, TypeSize: 0, Vals: []uintptr{0, 1, 2, 1024, 8192, 524288, 64, 16384, 65536, 128, 0, 262144, 256, 131072, 2048, 2097152, 1052672, 512}}, ConstType{TypeCommon: TypeCommon{TypeName: "mode", IsOptional: false}, TypeSize: 0, Val: uintptr(0)}}})
+ }()
}
diff --git a/sys/sys_amd64.go b/sys/sys_amd64.go
index 4a1aef2d5..f1871007a 100644
--- a/sys/sys_amd64.go
+++ b/sys/sys_amd64.go
@@ -2,4 +2,4 @@
package sys
// Maps internal syscall ID onto kernel syscall number.
-var numbers = []int{2, 2, 257, 85, 3, 0, 17, 19, 295, 1, 18, 20, 296, 8, 32, 33, 292, 22, 293, 276, 275, 278, 40, 4, 6, 5, 7, 271, 23, 270, 213, 291, 233, 232, 281, 282, 289, 284, 290, 283, 286, 287, 323, 16, 16, 16, 16, 16, 16, 9, 11, 25, 216, 10, 26, 28, 221, 187, 237, 279, 256, 238, 239, 27, 149, 325, 150, 151, 152, 319, 272, 312, 202, 273, 274, 219, 16, 16, 16, 16, 16, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 206, 207, 208, 209, 210, 125, 126, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 317, 240, 242, 243, 244, 245, 241, 68, 69, 70, 71, 64, 65, 220, 66, 29, 30, 31, 67, 133, 259, 90, 91, 268, 92, 94, 93, 260, 285, 269, 132, 235, 261, 280, 104, 108, 105, 106, 102, 107, 109, 121, 111, 39, 186, 113, 114, 117, 119, 118, 120, 122, 123, 115, 116, 135, 253, 294, 254, 255, 300, 301, 86, 265, 266, 88, 87, 263, 89, 267, 82, 264, 316, 83, 258, 84, 76, 77, 73, 74, 75, 162, 306, 277, 212, 78, 217, 303, 304, 165, 165, 166, 155, 139, 139, 139, 137, 138, 134, 175, 313, 176, 246, 177, 103, 63, 99, 136, 163, 98, 97, 160, 302, 172, 173, 252, 252, 251, 251, 308, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 228, 227, 305, 229, 230, 222, 224, 225, 223, 226, 13, 14, 15, 127, 128, 130, 129, 297, 131, 234, 200, 34, 37, 35, 36, 38, 60, 231, 247, 61, 100, 205, 211, 154, 154, 154, 154, 310, 311, 218, 140, 141, 145, 144, 148, 143, 142, 204, 203, 315, 314, 24, 318, 324, 41, 53, 43, 288, 49, 50, 42, 48, 44, 46, 307, 45, 47, 299, 51, 52, 55, 54, 16, 16, 54, 55, 54, 54, 55, 54, 55, 54, 55, 54, 54, 54, 55, 54, 55, 55, 54, 55, 54, 55, 54, 55, 54, 55, 55, 54, 55, 54, 55, 54, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 41, 53, 49, 42, 43, 288, 44, 46, 307, 45, 51, 52, 41, 49, 54, 54, 43, 46, 307, 41, 49, 42, 43, 54, 54, 55, 46, 307, 41, 42, 41, 49, 16, 54, 54, 54, 55, 41, 49, 42, 55, 55, 41, 49, 42, 54, 55, 54, 55, 54, 55, 41, 49, 42, 54, 55, 55, 41, 16, 16, 16, 16, 41, 16, 16, 16, 16, 41, 16, 16, 16, 16, 16, 16, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 2, 1000001, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 298, 16, 16, 16, 16, 16, 16, 16, 16, 16, 248, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1000003, 1000004, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000002, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 41, 41, 53, 49, 42, 43, 288, 44, 46, 307, 45, 51, 52, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54}
+var numbers = []int{2, 2, 257, 85, 3, 0, 17, 19, 295, 1, 18, 20, 296, 8, 32, 33, 292, 22, 293, 276, 275, 278, 40, 4, 6, 5, 7, 271, 23, 270, 213, 291, 233, 232, 281, 282, 289, 284, 290, 283, 286, 287, 323, 16, 16, 16, 16, 16, 16, 9, 11, 25, 216, 10, 26, 28, 221, 187, 237, 279, 256, 238, 239, 27, 149, 325, 150, 151, 152, 319, 272, 312, 202, 273, 274, 219, 16, 16, 16, 16, 16, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 206, 207, 208, 209, 210, 125, 126, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 317, 240, 242, 243, 244, 245, 241, 68, 69, 70, 71, 64, 65, 220, 66, 29, 30, 31, 67, 133, 259, 90, 91, 268, 92, 94, 93, 260, 285, 269, 132, 235, 261, 280, 104, 108, 105, 106, 102, 107, 109, 121, 111, 39, 186, 113, 114, 117, 119, 118, 120, 122, 123, 115, 116, 135, 253, 294, 254, 255, 300, 301, 86, 265, 266, 88, 87, 263, 89, 267, 82, 264, 316, 83, 258, 84, 76, 77, 73, 74, 75, 162, 306, 277, 212, 78, 217, 303, 304, 165, 165, 166, 155, 139, 139, 139, 137, 138, 134, 175, 313, 176, 246, 177, 103, 63, 99, 136, 163, 98, 97, 160, 302, 172, 173, 252, 252, 251, 251, 308, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 228, 227, 305, 229, 230, 222, 224, 225, 223, 226, 13, 14, 15, 127, 128, 130, 129, 297, 131, 234, 200, 34, 37, 35, 36, 38, 60, 231, 247, 61, 100, 205, 211, 154, 154, 154, 154, 310, 311, 218, 140, 141, 145, 144, 148, 143, 142, 204, 203, 315, 314, 24, 318, 324, 41, 53, 43, 288, 49, 50, 42, 48, 44, 46, 307, 45, 47, 299, 51, 52, 55, 54, 16, 16, 54, 55, 54, 54, 55, 54, 55, 54, 55, 54, 54, 54, 55, 54, 55, 55, 54, 55, 54, 55, 54, 55, 54, 55, 55, 54, 55, 54, 55, 54, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 41, 53, 49, 42, 43, 288, 44, 46, 307, 45, 51, 52, 41, 49, 54, 54, 43, 46, 307, 41, 49, 42, 43, 54, 54, 55, 46, 307, 41, 42, 41, 49, 16, 54, 54, 54, 55, 41, 49, 42, 55, 55, 41, 49, 42, 54, 55, 54, 55, 54, 55, 41, 49, 42, 54, 55, 55, 41, 16, 16, 16, 16, 41, 16, 16, 16, 16, 41, 16, 16, 16, 16, 16, 16, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 55, 2, 1000001, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 298, 16, 16, 16, 16, 16, 16, 16, 16, 16, 248, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1000003, 1000004, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000002, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 41, 41, 53, 49, 42, 43, 288, 44, 46, 307, 45, 51, 52, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2}
diff --git a/sys/sys_arm64.go b/sys/sys_arm64.go
index dfef12705..e827064fd 100644
--- a/sys/sys_arm64.go
+++ b/sys/sys_arm64.go
@@ -2,4 +2,4 @@
package sys
// Maps internal syscall ID onto kernel syscall number.
-var numbers = []int{-1, -1, 56, -1, 57, 63, 67, 65, 69, 64, 68, 66, 70, 62, 23, -1, 24, -1, 59, 77, 76, 75, 71, -1, -1, 80, -1, 73, -1, 72, -1, 20, 21, -1, 22, -1, 74, -1, 19, 85, 86, 87, -1, 29, 29, 29, 29, 29, 29, 222, 215, 216, 234, 226, 227, 233, 223, 213, 235, 239, 238, 237, 236, 232, 228, -1, 229, 230, 231, -1, 97, 272, 98, 99, 100, 128, 29, 29, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 1, 4, 2, 3, 90, 91, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, -1, 277, 180, 182, 183, 184, 185, 181, 186, 189, 188, 187, 190, 193, 192, 191, 194, 196, 195, 197, -1, 33, -1, 52, 53, -1, -1, 55, 54, 47, 48, -1, -1, -1, 88, 176, 177, 146, 144, 174, 175, 154, 155, -1, 172, 178, 145, 143, 147, 149, 148, 150, 151, 152, 158, 159, 92, -1, 26, 27, 28, 262, 263, -1, 37, 36, -1, -1, 35, -1, 78, -1, 38, 276, -1, 34, -1, 45, 46, 32, 82, 83, 81, 267, 84, 18, -1, 61, 264, 265, 40, 40, 39, 41, -1, -1, -1, 43, 44, -1, 105, 273, 106, 104, -1, 116, 160, 179, -1, 89, 165, 163, 164, 261, -1, -1, 31, 31, 30, 30, 268, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 113, 112, 266, 114, 115, 107, 108, 109, 110, 111, 134, 135, 139, 136, 137, 133, 138, 240, 132, 131, 130, -1, -1, 101, 102, 103, 93, 94, 95, 260, 153, -1, -1, -1, -1, -1, -1, 270, 271, 96, 141, 140, 120, 119, 127, 121, 118, 123, 122, 275, 274, 124, -1, -1, 198, 199, 202, 242, 200, 201, 203, 210, 206, 211, 269, 207, 212, 243, 204, 205, 209, 208, 29, 29, 208, 209, 208, 208, 209, 208, 209, 208, 209, 208, 208, 208, 209, 208, 209, 209, 208, 209, 208, 209, 208, 209, 208, 209, 209, 208, 209, 208, 209, 208, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 198, 199, 200, 203, 202, 242, 206, 211, 269, 207, 204, 205, 198, 200, 208, 208, 202, 211, 269, 198, 200, 203, 202, 208, 208, 209, 211, 269, 198, 203, 198, 200, 29, 208, 208, 208, 209, 198, 200, 203, 209, 209, 198, 200, 203, 208, 209, 208, 209, 208, 209, 198, 200, 203, 208, 209, 209, 198, 29, 29, 29, 29, 198, 29, 29, 29, 29, 198, 29, 29, 29, 29, 29, 29, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, -1, 1000001, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 241, 29, 29, 29, 29, 29, 29, 29, 29, 29, 217, 218, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1000003, 1000004, 29, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 1000002, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 198, 198, 199, 200, 203, 202, 242, 206, 211, 269, 207, 204, 205, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208}
+var numbers = []int{-1, -1, 56, -1, 57, 63, 67, 65, 69, 64, 68, 66, 70, 62, 23, -1, 24, -1, 59, 77, 76, 75, 71, -1, -1, 80, -1, 73, -1, 72, -1, 20, 21, -1, 22, -1, 74, -1, 19, 85, 86, 87, -1, 29, 29, 29, 29, 29, 29, 222, 215, 216, 234, 226, 227, 233, 223, 213, 235, 239, 238, 237, 236, 232, 228, -1, 229, 230, 231, -1, 97, 272, 98, 99, 100, 128, 29, 29, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 1, 4, 2, 3, 90, 91, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, -1, 277, 180, 182, 183, 184, 185, 181, 186, 189, 188, 187, 190, 193, 192, 191, 194, 196, 195, 197, -1, 33, -1, 52, 53, -1, -1, 55, 54, 47, 48, -1, -1, -1, 88, 176, 177, 146, 144, 174, 175, 154, 155, -1, 172, 178, 145, 143, 147, 149, 148, 150, 151, 152, 158, 159, 92, -1, 26, 27, 28, 262, 263, -1, 37, 36, -1, -1, 35, -1, 78, -1, 38, 276, -1, 34, -1, 45, 46, 32, 82, 83, 81, 267, 84, 18, -1, 61, 264, 265, 40, 40, 39, 41, -1, -1, -1, 43, 44, -1, 105, 273, 106, 104, -1, 116, 160, 179, -1, 89, 165, 163, 164, 261, -1, -1, 31, 31, 30, 30, 268, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 113, 112, 266, 114, 115, 107, 108, 109, 110, 111, 134, 135, 139, 136, 137, 133, 138, 240, 132, 131, 130, -1, -1, 101, 102, 103, 93, 94, 95, 260, 153, -1, -1, -1, -1, -1, -1, 270, 271, 96, 141, 140, 120, 119, 127, 121, 118, 123, 122, 275, 274, 124, -1, -1, 198, 199, 202, 242, 200, 201, 203, 210, 206, 211, 269, 207, 212, 243, 204, 205, 209, 208, 29, 29, 208, 209, 208, 208, 209, 208, 209, 208, 209, 208, 208, 208, 209, 208, 209, 209, 208, 209, 208, 209, 208, 209, 208, 209, 209, 208, 209, 208, 209, 208, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 198, 199, 200, 203, 202, 242, 206, 211, 269, 207, 204, 205, 198, 200, 208, 208, 202, 211, 269, 198, 200, 203, 202, 208, 208, 209, 211, 269, 198, 203, 198, 200, 29, 208, 208, 208, 209, 198, 200, 203, 209, 209, 198, 200, 203, 208, 209, 208, 209, 208, 209, 198, 200, 203, 208, 209, 209, 198, 29, 29, 29, 29, 198, 29, 29, 29, 29, 198, 29, 29, 29, 29, 29, 29, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, 208, 209, -1, 1000001, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 241, 29, 29, 29, 29, 29, 29, 29, 29, 29, 217, 218, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1000003, 1000004, 29, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 1000002, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 198, 198, 199, 200, 203, 202, 242, 206, 211, 269, 207, 204, 205, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, -1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -1}
diff --git a/sysgen/sysgen.go b/sysgen/sysgen.go
index 448f62196..c8996390b 100644
--- a/sysgen/sysgen.go
+++ b/sysgen/sysgen.go
@@ -421,6 +421,12 @@ func fmtFdKind(s string) string {
return "FdUnix"
case "sctp":
return "FdSctp"
+ case "kvm":
+ return "FdKvm"
+ case "kvmvm":
+ return "FdKvmVm"
+ case "kvmcpu":
+ return "FdKvmCpu"
default:
failf("bad fd type %v", s)
return ""