include/hyperv/hvhdk.h
Source file repositories/reference/linux-study-clean/include/hyperv/hvhdk.h
File Facts
- System
- Linux kernel
- Corpus path
include/hyperv/hvhdk.h- Extension
.h- Size
- 23533 bytes
- Lines
- 957
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/build_bug.hhvhdk_mini.hhvgdk.h
Detected Declarations
struct hv_stats_pagestruct hv_vp_register_pagestruct hv_partition_creation_propertiesstruct hv_input_create_partitionstruct hv_output_create_partitionstruct hv_input_initialize_partitionstruct hv_input_finalize_partitionstruct hv_input_delete_partitionstruct hv_input_get_partition_propertystruct hv_output_get_partition_propertystruct hv_input_set_partition_propertystruct hv_input_get_partition_property_exstruct hv_output_get_partition_property_exstruct hv_input_map_vp_state_pagestruct hv_output_map_vp_state_pagestruct hv_input_unmap_vp_state_pagestruct hv_x64_apic_eoi_messagestruct hv_opaque_intercept_messagestruct hv_port_infostruct hv_connection_infostruct hv_synic_event_flags_pagestruct hv_synic_event_ringstruct hv_synic_event_ring_pagestruct hv_stimer_statestruct hv_synthetic_timers_statestruct hv_async_completion_message_payloadstruct hv_input_assert_virtual_interruptstruct hv_input_create_portstruct hv_input_connect_portstruct hv_vp_state_data_xsavestruct hv_vp_state_datastruct hv_input_get_vp_statestruct hv_input_set_vp_statestruct hv_x64_intercept_message_headerstruct hv_x64_memory_intercept_messagestruct hv_arm64_intercept_message_headerstruct hv_arm64_memory_intercept_messagestruct hv_vp_signal_bitset_scheduler_messagestruct hv_vp_signal_pair_scheduler_messagestruct hv_input_dispatch_vpstruct hv_output_dispatch_vpstruct hv_input_modify_sparse_spa_page_host_accessenum hv_vp_state_page_typeenum hv_port_typeenum hv_get_set_vp_state_typeenum hv_vp_dispatch_stateenum hv_vp_dispatch_event
Annotated Snippet
struct hv_stats_page {
u64 data[HV_HYP_PAGE_SIZE / sizeof(u64)];
} __packed;
/* Bits for dirty mask of hv_vp_register_page */
#define HV_X64_REGISTER_CLASS_GENERAL 0
#define HV_X64_REGISTER_CLASS_IP 1
#define HV_X64_REGISTER_CLASS_XMM 2
#define HV_X64_REGISTER_CLASS_SEGMENT 3
#define HV_X64_REGISTER_CLASS_FLAGS 4
#define HV_VP_REGISTER_PAGE_VERSION_1 1u
#define HV_VP_REGISTER_PAGE_MAX_VECTOR_COUNT 7
union hv_vp_register_page_interrupt_vectors {
u64 as_uint64;
struct {
u8 vector_count;
u8 vector[HV_VP_REGISTER_PAGE_MAX_VECTOR_COUNT];
} __packed;
};
struct hv_vp_register_page {
u16 version;
u8 isvalid;
u8 rsvdz;
u32 dirty;
#if IS_ENABLED(CONFIG_X86)
union {
struct {
/* General purpose registers
* (HV_X64_REGISTER_CLASS_GENERAL)
*/
union {
struct {
u64 rax;
u64 rcx;
u64 rdx;
u64 rbx;
u64 rsp;
u64 rbp;
u64 rsi;
u64 rdi;
u64 r8;
u64 r9;
u64 r10;
u64 r11;
u64 r12;
u64 r13;
u64 r14;
u64 r15;
} __packed;
u64 gp_registers[16];
};
/* Instruction pointer (HV_X64_REGISTER_CLASS_IP) */
u64 rip;
/* Flags (HV_X64_REGISTER_CLASS_FLAGS) */
u64 rflags;
} __packed;
u64 registers[18];
};
u8 reserved[8];
/* Volatile XMM registers (HV_X64_REGISTER_CLASS_XMM) */
union {
struct {
struct hv_u128 xmm0;
struct hv_u128 xmm1;
struct hv_u128 xmm2;
struct hv_u128 xmm3;
struct hv_u128 xmm4;
struct hv_u128 xmm5;
} __packed;
struct hv_u128 xmm_registers[6];
};
/* Segment registers (HV_X64_REGISTER_CLASS_SEGMENT) */
union {
struct {
struct hv_x64_segment_register es;
struct hv_x64_segment_register cs;
struct hv_x64_segment_register ss;
struct hv_x64_segment_register ds;
struct hv_x64_segment_register fs;
struct hv_x64_segment_register gs;
} __packed;
Annotation
- Immediate include surface: `linux/build_bug.h`, `hvhdk_mini.h`, `hvgdk.h`.
- Detected declarations: `struct hv_stats_page`, `struct hv_vp_register_page`, `struct hv_partition_creation_properties`, `struct hv_input_create_partition`, `struct hv_output_create_partition`, `struct hv_input_initialize_partition`, `struct hv_input_finalize_partition`, `struct hv_input_delete_partition`, `struct hv_input_get_partition_property`, `struct hv_output_get_partition_property`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.