40 #include <linux/kvm.h>
41 #include <sys/ioctl.h>
65 #ifdef KVM_GET_DEVICE_ATTR
66 struct kvm_device_attr dattr =
71 reinterpret_cast<uint64_t
>(
data),
74 if (
ioctl(KVM_GET_DEVICE_ATTR, &dattr) == -1) {
75 panic(
"Failed to get attribute (group: %i, attr: %i, errno: %i)",
79 panic(
"Kernel headers don't support KVM_GET_DEVICE_ATTR\n");
86 #ifdef KVM_SET_DEVICE_ATTR
87 struct kvm_device_attr dattr =
92 reinterpret_cast<uint64_t
>(
data),
95 if (
ioctl(KVM_SET_DEVICE_ATTR, &dattr) == -1) {
96 panic(
"Failed to set attribute (group: %i, attr: %i, errno: %i)",
100 panic(
"Kernel headers don't support KVM_GET_DEVICE_ATTR\n");
107 #ifdef KVM_HAS_DEVICE_ATTR
108 struct kvm_device_attr dattr =
116 return ioctl(KVM_HAS_DEVICE_ATTR, &dattr) == 0;
118 panic(
"Kernel headers don't support KVM_HAS_DEVICE_ATTR\n");
127 return ::ioctl(
fd, request, p1);