VirtualBox

Changeset 11642

Show
Ignore:
Timestamp:
08/26/08 09:37:36 (3 months ago)
Author:
vboxsync
Message:

another guest additions 32/64 bit hack

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/VBoxGuest.h

    r10930 r11642  
    4747 
    4848/** Hypervisor linear pointer size type */ 
    49 /* @todo support 64 bits virtual addresses (interface change) */ 
    50 typedef RTGCPTR32 vmmDevHypPtr
     49typedef RTGCPTR32 VMMDEVHYPPTR32; 
     50typedef RTGCPTR64 VMMDEVHYPPTR64
    5151/** Hypervisor physical pointer size type */ 
    52 /* @todo support 64 bits physical addresses (interface change) */ 
    53 typedef RTGCPHYS32 vmmDevHypPhys; 
     52typedef RTGCPHYS32 VMMDEVHYPPHYS32; 
     53typedef RTGCPHYS64 VMMDEVHYPPHYS64; 
     54 
     55#if defined(VBOX_WITH_64_BITS_GUESTS) && defined(ARCH_BITS == 64) 
     56# define VMMDEVHYPPTR  VMMDEVHYPPTR64 
     57# define VMMDEVHYPPHYS VMMDEVHYPPHYS64 
     58# else 
     59# define VMMDEVHYPPTR  VMMDEVHYPPTR32 
     60# define VMMDEVHYPPHYS VMMDEVHYPPHYS32 
     61#endif 
    5462 
    5563#if defined(RT_OS_LINUX) 
     
    362370    VMMDevRequestHeader header; 
    363371    /** guest virtual address of proposed hypervisor start */ 
    364     vmmDevHypPtr hypervisorStart; 
     372    /** TODO: Make this 64-bit compatible */ 
     373    VMMDEVHYPPTR32 hypervisorStart; 
    365374    /** hypervisor size in bytes */ 
    366375    uint32_t hypervisorSize; 
     
    707716            union 
    708717            { 
    709                 vmmDevHypPhys physAddr; 
    710                 vmmDevHypPtr  linearAddr; 
     718                VMMDEVHYPPHYS32 physAddr; 
     719                VMMDEVHYPPTR32  linearAddr; 
    711720            } u; 
    712721        } Pointer; 
     
    727736            union 
    728737            { 
    729                 uint64_t physAddr; 
    730                 uint64_t linearAddr; 
     738                VMMDEVHYPPHYS64 physAddr; 
     739                VMMDEVHYPPTR64 linearAddr; 
    731740            } u; 
    732741        } Pointer; 
    733742    } u; 
    734743} HGCMFunctionParameter64; 
    735 #else 
     744#else /* !VBOX_WITH_64_BITS_GUESTS */ 
    736745typedef struct _HGCMFUNCTIONPARAMETER 
    737746{ 
     
    747756            union 
    748757            { 
    749                 vmmDevHypPhys physAddr; 
    750                 vmmDevHypPtr  linearAddr; 
     758                VMMDEVHYPPHYS32 physAddr; 
     759                VMMDEVHYPPTR32  linearAddr; 
    751760            } u; 
    752761        } Pointer; 
    753762    } u; 
    754763} HGCMFunctionParameter; 
    755 #endif /* VBOX_WITH_64_BITS_GUESTS */ 
     764#endif /* !VBOX_WITH_64_BITS_GUESTS */ 
    756765 
    757766 
  • trunk/src/VBox/Additions/WINNT/Graphics/OpenGL/VBoxOGL.cpp

    r10552 r11642  
    179179    parms.pString.type                   = VMMDevHGCMParmType_LinAddr; 
    180180    parms.pString.u.Pointer.size         = sizeof(szOpenGLVersion); 
    181     parms.pString.u.Pointer.u.linearAddr = (vmmDevHypPtr)szOpenGLVersion; 
     181    parms.pString.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)szOpenGLVersion; 
    182182 
    183183    int rc = vboxHGCMCall(&parms, sizeof (parms)); 
     
    356356    parms.pCmdBuffer.type                   = VMMDevHGCMParmType_LinAddr_In; 
    357357    parms.pCmdBuffer.u.Pointer.size         = pCtx->pCurrentCmd - pCtx->pCmdBuffer; 
    358     parms.pCmdBuffer.u.Pointer.u.linearAddr = (vmmDevHypPtr)pCtx->pCmdBuffer; 
     358    parms.pCmdBuffer.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)pCtx->pCmdBuffer; 
    359359    parms.cCommands.type                    = VMMDevHGCMParmType_32bit; 
    360360    parms.cCommands.u.value32               = pCtx->cCommands; 
     
    404404    parms.pCmdBuffer.type                   = VMMDevHGCMParmType_LinAddr_In; 
    405405    parms.pCmdBuffer.u.Pointer.size         = pCtx->pCurrentCmd - pCtx->pCmdBuffer; 
    406     parms.pCmdBuffer.u.Pointer.u.linearAddr = (vmmDevHypPtr)pCtx->pCmdBuffer; 
     406    parms.pCmdBuffer.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)pCtx->pCmdBuffer; 
    407407    parms.cCommands.type                    = VMMDevHGCMParmType_32bit; 
    408408    parms.cCommands.u.value32               = pCtx->cCommands; 
     
    416416        parms.pLastParam.type                   = VMMDevHGCMParmType_LinAddr; 
    417417        parms.pLastParam.u.Pointer.size         = cbParam; 
    418         parms.pLastParam.u.Pointer.u.linearAddr = (vmmDevHypPtr)pLastParam; 
     418        parms.pLastParam.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)pLastParam; 
    419419    } 
    420420    else 
     
    462462    parms.pszExtFnName.type                   = VMMDevHGCMParmType_LinAddr_In; 
    463463    parms.pszExtFnName.u.Pointer.size         = strlen(pszExtFunctionName)+1; 
    464     parms.pszExtFnName.u.Pointer.u.linearAddr = (vmmDevHypPtr)pszExtFunctionName; 
     464    parms.pszExtFnName.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)pszExtFunctionName; 
    465465 
    466466    int rc = vboxHGCMCall(&parms, sizeof (parms)); 
  • trunk/src/VBox/Additions/WINNT/Graphics/OpenGL/glext.cpp

    r8387 r11642  
    5050    parms.pString.type                   = VMMDevHGCMParmType_LinAddr; 
    5151    parms.pString.u.Pointer.size         = sizeof(szOpenGLExtensions); 
    52     parms.pString.u.Pointer.u.linearAddr = (vmmDevHypPtr)szOpenGLExtensions; 
     52    parms.pString.u.Pointer.u.linearAddr = (VMMDEVHYPPTR)szOpenGLExtensions; 
    5353 
    5454    rc = vboxHGCMCall(&parms, sizeof (parms)); 
  • trunk/src/VBox/Additions/linux/module/hgcmcall.c

    r11629 r11642  
    147147            } 
    148148            VBOXGUEST_HGCM_CALL_PARMS(hgcmR0)[i].u.Pointer.u.linearAddr 
    149                 = (vmmDevHypPtr)&pu8PointerData[offPointerData]; 
     149                = (VMMDEVHYPPTR)&pu8PointerData[offPointerData]; 
    150150            VBOXGUEST_HGCM_CALL_PARMS(hgcmR0)[i].u.Pointer.size 
    151151                = VBOXGUEST_HGCM_CALL_PARMS(hgcmR3)[i].u.Pointer.size; 
     
    157157            /* This type of pointer means that we are reading data from the host. */ 
    158158            VBOXGUEST_HGCM_CALL_PARMS(hgcmR0)[i].u.Pointer.u.linearAddr 
    159                 = (vmmDevHypPtr)&pu8PointerData[offPointerData]; 
     159                = (VMMDEVHYPPTR)&pu8PointerData[offPointerData]; 
    160160            VBOXGUEST_HGCM_CALL_PARMS(hgcmR0)[i].u.Pointer.size 
    161161                = VBOXGUEST_HGCM_CALL_PARMS(hgcmR3)[i].u.Pointer.size; 
  • trunk/src/VBox/Additions/linux/module/vboxmod.c

    r11174 r11642  
    732732            { 
    733733                /* communicate result to VMM, align at 4MB */ 
    734                 req->hypervisorStart    = (vmmDevHypPtr)RT_ALIGN_P(hypervisorArea, 0x400000); 
     734                req->hypervisorStart    = (VMMDEVHYPPTR32)RT_ALIGN_P(hypervisorArea, 0x400000); 
    735735                req->header.requestType = VMMDevReq_SetHypervisorInfo; 
    736736                req->header.rc          = VERR_GENERAL_FAILURE; 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy