Changeset 58390 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Oct 23, 2015 12:35:35 PM (9 years ago)
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/GIMHvInternal.h
r58335 r58390 713 713 /** The undocumented bit for MSR_GIM_HV_DEBUG_OPTIONS_MSR that makes it all 714 714 * work. */ 715 #define GIM_HV_DEBUG_OPTIONS_ MSR_ENABLERT_BIT(2)715 #define GIM_HV_DEBUG_OPTIONS_USE_HYPERCALLS RT_BIT(2) 716 716 717 717 /** Guest will perform the HvPostDebugData hypercall until completion. */ … … 1047 1047 /** Whether we're posing as the Microsoft virtualization service. */ 1048 1048 bool fIsInterfaceVs; 1049 bool afAlignment0[6]; 1050 /** The auto IP address last chosen by the guest after failed ARP queries. */ 1049 /** Whether debugging support is enabled. */ 1050 bool fDbgEnabled; 1051 /** Whether we should suggest a hypercall-based debug interface to the guest. */ 1052 bool fDbgHypercallInterface; 1053 bool afAlignment0[4]; 1054 /** The action to take while sending replies. */ 1055 GIMHVDEBUGREPLY enmDbgReply; 1056 /** The IP address chosen by/assigned to the guest. */ 1051 1057 RTNETADDRIPV4 DbgGuestIp4Addr; 1052 /** The action to take while sending replies. */1053 GIMHVDEBUGREPLY enmDebugReply;1054 1058 /** Transaction ID for the BOOTP+DHCP sequence. */ 1055 uint32_t uBootpXId; 1056 /** Padding. */ 1057 uint32_t uAlignment0; 1059 uint32_t uDbgBootpXId; 1060 /** The source UDP port used by the guest while sending debug packets. */ 1061 uint16_t uUdpGuestSrcPort; 1062 /** The destination UDP port used by the guest while sending debug packets. */ 1063 uint16_t uUdpGuestDstPort; 1058 1064 /** Debug send buffer MSR. */ 1059 uint64_t uD ebugSendBufferMsr;1065 uint64_t uDbgSendBufferMsr; 1060 1066 /** Debug receive buffer MSR. */ 1061 uint64_t uD ebugRecvBufferMsr;1067 uint64_t uDbgRecvBufferMsr; 1062 1068 /** Debug pending buffer MSR. */ 1063 uint64_t uD ebugPendingBufferMsr;1069 uint64_t uDbgPendingBufferMsr; 1064 1070 /** Debug status MSR. */ 1065 uint64_t uDebugStatusMsr; 1071 uint64_t uDbgStatusMsr; 1072 /** Intermediate debug I/O buffer. */ 1073 R3PTRTYPE(void *) pvDbgBuffer; 1066 1074 /** @} */ 1067 1075 … … 1113 1121 VMMR3_INT_DECL(int) gimR3HvSave(PVM pVM, PSSMHANDLE pSSM); 1114 1122 VMMR3_INT_DECL(int) gimR3HvLoad(PVM pVM, PSSMHANDLE pSSM, uint32_t uSSMVersion); 1123 VMMR3_INT_DECL(int) gimR3HvGetDebugSetup(PVM pVM, PGIMDEBUGSETUP pDbgSetup); 1115 1124 1116 1125 VMMR3_INT_DECL(int) gimR3HvDisableTscPage(PVM pVM); -
trunk/src/VBox/VMM/include/GIMInternal.h
r58283 r58390 54 54 /** Pointer to the GIM device - R3 ptr. */ 55 55 R3PTRTYPE(PPDMDEVINS) pDevInsR3; 56 /** Pointer to the GIM device debug stream - R3 ptr. */ 57 R3PTRTYPE(PPDMISTREAM) pDebugStreamR3; 58 #if 0 59 /** Pointer to the provider's ring-3 hypercall handler. */ 60 R3PTRTYPE(PFNGIMHYPERCALL) pfnHypercallR3; 61 /** Pointer to the provider's ring-0 hypercall handler. */ 62 R0PTRTYPE(PFNGIMHYPERCALL) pfnHypercallR0; 63 /** Pointer to the provider's raw-mode context hypercall handler. */ 64 RCPTRTYPE(PFNGIMHYPERCALL) pfnHypercallRC; 56 /** The debug struct - R3 ptr. */ 57 R3PTRTYPE(PGIMDEBUG) pDbgR3; 65 58 66 /** Pointer to the provider's ring-3 MSR-read handler. */ 67 R3PTRTYPE(PFNGIMRDMSR) pfnReadMsrR3; 68 /** Pointer to the provider's ring-0 MSR-read handler. */ 69 R0PTRTYPE(PFNGIMRDMSR) pfnReadMsrR0; 70 /** Pointer to the provider's raw-mode context MSR-read handler. */ 71 RCPTRTYPE(PFNGIMRDMSR) pfnReadMsrRC; 72 73 /** Pointer to the provider's ring-3 MSR-read handler. */ 74 R3PTRTYPE(PFNGIMWDMSR) pfnWriteMsrR3; 75 /** Pointer to the provider's ring-0 MSR-read handler. */ 76 R0PTRTYPE(PFNGIMWDMSR) pfnWriteMsrRR0; 77 /** Pointer to the provider's raw-mode context MSR-read handler. */ 78 RCPTRTYPE(PFNGIMWDMSR) pfnWriteMsrRRC; 79 #endif 80 59 /** The provider specific data. */ 81 60 union 82 61 { … … 84 63 GIMKVM Kvm; 85 64 } u; 65 66 /** Number of hypercalls initiated. */ 67 STAMCOUNTER StatHypercalls; 68 /** Debug packets sent. */ 69 STAMCOUNTER StatDbgXmit; 70 /** Debug bytes sent. */ 71 STAMCOUNTER StatDbgXmitBytes; 72 /** Debug packets received. */ 73 STAMCOUNTER StatDbgRecv; 74 /** Debug bytes received. */ 75 STAMCOUNTER StatDbgRecvBytes; 86 76 } GIM; 87 77 /** Pointer to GIM VM instance data. */ 88 78 typedef GIM *PGIM; 89 90 79 91 80 /** … … 103 92 typedef GIMCPU *PGIMCPU; 104 93 94 /** 95 * Callback when a debug buffer read has completed and before signaling 96 * the next read. 97 * 98 * @param pVM The cross context VM structure. 99 */ 100 typedef DECLCALLBACK(void) FNGIMDEBUGBUFREADCOMPLETED(PVM pVM); 101 /** Pointer to GIM debug buffer read completion callback. */ 102 typedef FNGIMDEBUGBUFREADCOMPLETED *PFNGIMDEBUGBUFREADCOMPLETED; 103 105 104 #ifdef IN_RING3 106 105 VMMR3_INT_DECL(int) GIMR3Mmio2Unmap(PVM pVM, PGIMMMIO2REGION pRegion); … … 109 108 VMMR3_INT_DECL(int) GIMR3Mmio2HandlerPhysicalDeregister(PVM pVM, PGIMMMIO2REGION pRegion); 110 109 111 VMMR3_INT_DECL(int) GIMR3DebugRead(PVM pVM, void *pvRead, size_t *pcbRead );110 VMMR3_INT_DECL(int) GIMR3DebugRead(PVM pVM, void *pvRead, size_t *pcbRead, PFNGIMDEBUGBUFREADCOMPLETED pfnReadComplete); 112 111 VMMR3_INT_DECL(int) GIMR3DebugWrite(PVM pVM, void *pvWrite, size_t *pcbWrite); 113 112 #endif /* IN_RING3 */
Note:
See TracChangeset
for help on using the changeset viewer.