VirtualBox

Changeset 11894 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Sep 1, 2008 7:56:27 AM (16 years ago)
Author:
vboxsync
Message:

Correction for raw mode on 64 bits hosts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMM.cpp

    r11893 r11894  
    694694        CPUMPushHyper(pVM, VMMGC_DO_VMMGC_INIT);        /* Param 1: Operation. */
    695695        CPUMPushHyper(pVM, pVM->pVMGC);                 /* Param 0: pVM */
    696         CPUMPushHyper(pVM, 3 * sizeof(RTGCPTR));        /* trampoline param: stacksize.  */
     696        CPUMPushHyper(pVM, 3 * sizeof(RTGCPTR32));      /* trampoline param: stacksize.  */
    697697        CPUMPushHyper(pVM, GCPtrEP);                    /* Call EIP. */
    698698        CPUMSetHyperEIP(pVM, pVM->vmm.s.pfnGCCallTrampoline);
     
    20332033 * @param   ...         Arguments to the function.
    20342034 */
    2035 VMMR3DECL(int) VMMR3CallGC(PVM pVM, RTGCPTR GCPtrEntry, unsigned cArgs, ...)
     2035VMMR3DECL(int) VMMR3CallGC(PVM pVM, RTRCPTR GCPtrEntry, unsigned cArgs, ...)
    20362036{
    20372037    va_list args;
     
    20512051 * @param   args        Arguments to the function.
    20522052 */
    2053 VMMR3DECL(int) VMMR3CallGCV(PVM pVM, RTGCPTR GCPtrEntry, unsigned cArgs, va_list args)
    2054 {
    2055     Log2(("VMMR3CallGCV: GCPtrEntry=%VGv cArgs=%d\n", GCPtrEntry, cArgs));
     2053VMMR3DECL(int) VMMR3CallGCV(PVM pVM, RTRCPTR GCPtrEntry, unsigned cArgs, va_list args)
     2054{
     2055    Log2(("VMMR3CallGCV: GCPtrEntry=%VRv cArgs=%d\n", GCPtrEntry, cArgs));
    20562056
    20572057    /*
     
    20602060    CPUMHyperSetCtxCore(pVM, NULL);
    20612061    memset(pVM->vmm.s.pbHCStack, 0xaa, VMM_STACK_SIZE); /* Clear the stack. */
    2062     CPUMSetHyperESP(pVM, pVM->vmm.s.pbGCStackBottom - cArgs * sizeof(RTGCUINTPTR));
    2063     PRTGCUINTPTR pFrame = (PRTGCUINTPTR)(pVM->vmm.s.pbHCStack + VMM_STACK_SIZE) - cArgs;
     2062    CPUMSetHyperESP(pVM, pVM->vmm.s.pbGCStackBottom - cArgs * sizeof(RTGCUINTPTR32));
     2063    PRTGCUINTPTR32 pFrame = (PRTGCUINTPTR32)(pVM->vmm.s.pbHCStack + VMM_STACK_SIZE) - cArgs;
    20642064    int i = cArgs;
    20652065    while (i-- > 0)
    2066         *pFrame++ = va_arg(args, RTGCUINTPTR);
    2067 
    2068     CPUMPushHyper(pVM, cArgs * sizeof(RTGCUINTPTR));                          /* stack frame size */
     2066        *pFrame++ = va_arg(args, RTGCUINTPTR32);
     2067
     2068    CPUMPushHyper(pVM, cArgs * sizeof(RTGCUINTPTR32));                          /* stack frame size */
    20692069    CPUMPushHyper(pVM, GCPtrEntry);                                             /* what to call */
    20702070    CPUMSetHyperEIP(pVM, pVM->vmm.s.pfnGCCallTrampoline);
Note: See TracChangeset for help on using the changeset viewer.

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