VirtualBox

Changeset 72190 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
May 10, 2018 3:19:33 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122624
Message:

VMM/GIM/HyperV: Implement extended hypercalls HvExtCallQueryCapabilities and HvExtCallGetBootZeroedMemory.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/GIMHvInternal.h

    r71265 r72190  
    586586/** Reset debug session. */
    587587#define GIM_HV_HYPERCALL_OP_RESET_DEBUG_SESSION   0x6B
     588/** @} */
     589
     590/** @name Hyper-V extended hypercall op codes.
     591 * @{
     592 */
     593/** Query extended hypercall capabilities. */
     594#define GIM_HV_EXT_HYPERCALL_OP_QUERY_CAP                0x8001
     595/** Query guest physical address range that has zero'd filled memory. */
     596#define GIM_HV_EXT_HYPERCALL_OP_GET_BOOT_ZEROED_MEM      0x8002
     597/** @} */
     598
     599
     600/** @name Hyper-V Extended hypercall - HvExtCallQueryCapabilities.
     601 * @{
     602 */
     603/** Boot time zeroed pages. */
     604#define GIM_HV_EXT_HYPERCALL_CAP_ZERO_MEM                       RT_BIT_64(0)
     605/** Whether boot time zeroed pages capability is enabled. */
     606#define GIM_HV_EXT_HYPERCALL_CAP_IS_ZERO_MEM_ENABLED(a)         RT_BOOL((a) & GIM_HV_EXT_HYPERCALL_CAP_ZERO_MEM)
    588607/** @} */
    589608
     
    10361055typedef GIMHVDEBUGRETRIEVEOUT *PGIMHVDEBUGRETRIEVEOUT;
    10371056AssertCompileSize(GIMHVDEBUGRETRIEVEOUT, 8);
     1057
     1058/**
     1059 * HvExtCallQueryCapabilities hypercall output.
     1060 */
     1061typedef struct GIMHVEXTQUERYCAP
     1062{
     1063    uint64_t fCapabilities;
     1064} GIMHVEXTQUERYCAP;
     1065/** Pointer to a HvExtCallQueryCapabilities output struct. */
     1066typedef GIMHVEXTQUERYCAP *PGIMHVEXTQUERYCAP;
     1067AssertCompileSize(GIMHVEXTQUERYCAP, 8);
     1068
     1069/**
     1070 * HvExtCallGetBootZeroedMemory hypercall output.
     1071 */
     1072typedef struct GIMHVEXTGETBOOTZEROMEM
     1073{
     1074    RTGCPHYS GCPhysStart;
     1075    uint64_t cPages;
     1076} GIMHVEXTGETBOOTZEROMEM;
     1077/** Pointer to a HvExtCallGetBootZeroedMemory output struct. */
     1078typedef GIMHVEXTGETBOOTZEROMEM *PGIMHVEXTGETBOOTZEROMEM;
     1079AssertCompileSize(GIMHVEXTGETBOOTZEROMEM, 16);
    10381080/** @} */
    10391081
     
    10411083/** Hyper-V page size.  */
    10421084#define GIM_HV_PAGE_SIZE                          4096
     1085/** Hyper-V page shift. */
     1086#define GIM_HV_PAGE_SHIFT                         12
    10431087
    10441088/** Microsoft Hyper-V vendor signature. */
     
    13131357VMMR3_INT_DECL(int)             gimR3HvDebugRead(PVM pVM, void *pvBuf, uint32_t cbBuf, uint32_t cbRead, uint32_t *pcbRead,
    13141358                                                 uint32_t cMsTimeout, bool fUdpPkt);
     1359VMMR3_INT_DECL(int)             gimR3HvHypercallExtQueryCap(PVM pVM, int *prcHv);
     1360VMMR3_INT_DECL(int)             gimR3HvHypercallExtGetBootZeroedMem(PVM pVM, int *prcHv);
     1361
    13151362#endif /* IN_RING3 */
    13161363
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette