12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /* $OpenBSD: pvreg.h,v 1.3 2015/07/29 17:08:46 mikeb Exp $ */
- /*
- * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
- * Copyright (c) 2015 Stefan Fritsch <sf@sfritsch.de>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- #ifndef _DEV_PV_PVBUS_H_
- #define _DEV_PV_PVBUS_H_
- #define CPUID_HV_SIGNATURE_START 0x40000000
- #define CPUID_HV_SIGNATURE_END 0x40010000
- #define CPUID_HV_SIGNATURE_STEP 0x100
- #define CPUID_HV_SIGNATURE_STRLEN 12
- /*
- * KVM
- */
- #define CPUID_OFFSET_KVM_FEATURES 0x1
- #define KVM_FEATURE_CLOCKSOURCE 0 /* deprecated */
- #define KVM_FEATURE_NOP_IO_DELAY 1
- #define KVM_FEATURE_MMU_OP 2 /* deprecated */
- #define KVM_FEATURE_CLOCKSOURCE2 3
- #define KVM_FEATURE_ASYNC_PF 4
- #define KVM_FEATURE_STEAL_TIME 5
- #define KVM_FEATURE_PV_EOI 6
- #define KVM_FEATURE_PV_UNHALT 7
- #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
- #define KVM_MSR_EOI_EN 0x4b564d04
- #define KVM_PV_EOI_BIT 0
- /*
- * Hyper-V
- */
- #define CPUID_OFFSET_HYPERV_INTERFACE 0x1
- #define CPUID_OFFSET_HYPERV_VERSION 0x2
- #define CPUID_OFFSET_HYPERV_FEATURES 0x3
- #define CPUID_OFFSET_HYPERV_ENLIGHTENMENT_INFO 0x4
- #define CPUID_OFFSET_HYPERV_IMPL_LIMITS 0x5
- #define HYPERV_VERSION_EAX_BUILD_NUMBER 0
- #define HYPERV_VERSION_EBX_MAJOR_M 0xffff0000
- #define HYPERV_VERSION_EBX_MAJOR_S 16
- #define HYPERV_VERSION_EBX_MINOR_M 0x0000ffff
- #define HYPERV_VERSION_EBX_MINOR_S 0
- #define HYPERV_VERSION_ECX_SERVICE_PACK 0
- #define HYPERV_VERSION_EDX_SERVICE_BRANCH_M 0xff000000
- #define HYPERV_VERSION_EDX_SERVICE_BRANCH_S 24
- #define HYPERV_VERSION_EDX_SERVICE_NUMBER_M 0x00ffffff
- #define HYPERV_VERSION_EDX_SERVICE_NUMBER_S 0
- #define HYPERV_VERSION_WS2008 0x00060000
- #define HYPERV_VERSION_WIN7 0x00060001
- #define HYPERV_VERSION_WIN8 0x00060002
- #define HYPERV_VERSION_WIN8_1 0x00060003
- #define HYPERV_VERSION_WIN10 0x00100000
- #define HYPERV_FEATURE_EAX_VP_RUNTIME 0
- #define HYPERV_FEATURE_EAX_TIME_REF_COUNT 1
- #define HYPERV_FEATURE_EAX_SYNIC 2
- #define HYPERV_FEATURE_EAX_STIMER 3
- #define HYPERV_FEATURE_EAX_APIC 4
- #define HYPERV_FEATURE_EAX_HYPERCALL 5
- #define HYPERV_FEATURE_EAX_VP_INDEX 6
- #define HYPERV_FEATURE_EAX_MSR_RESET 7
- #define HYPERV_FEATURE_EAX_STATS_PAGES 8
- #define HYPERV_FEATURE_EAX_REF_TSC 9
- #define HYPERV_FEATURE_EAX_GUEST_IDLE 10
- #define HYPERV_FEATURE_EAX_TIMER_FREQ 11
- #define HYPERV_FEATURE_EAX_DEBUG 12
- /*
- * Xen
- */
- #define CPUID_OFFSET_XEN_VERSION 0x1
- #define XEN_VERSION_MAJOR_S 16
- #define XEN_VERSION_MINOR_M 0xffff
- #endif /* _DEV_PV_PVBUS_H_ */
|