VirtualBox

Changeset 9435 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Jun 5, 2008 3:39:11 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
31687
Message:

Extend HGCM interface to support 64 bit pointers.

Location:
trunk/src/VBox/Additions
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r8857 r9435  
    153153    pParm->type                    = VMMDevHGCMParmType_LinAddr;
    154154    pParm->u.Pointer.size          = cb;
    155     pParm->u.Pointer.u.linearAddr  = (RTGCPTR)pv;
     155    pParm->u.Pointer.u.linearAddr  = (uintptr_t)pv;
    156156}
    157157
  • trunk/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp

    r8155 r9435  
    7676
    7777    physaddr = VbglPhysHeapGetPhysAddr (pReq);
    78     if (!physaddr)
     78    if (  !physaddr
     79       || (physaddr >> 32) != 0) /* Port IO is 32 bit. */
    7980    {
    8081        rc = VERR_VBGL_INVALID_ADDR;
  • trunk/src/VBox/Additions/common/VBoxGuestLib/PhysHeap.cpp

    r8155 r9435  
    305305
    306306    physAddr = 0;
     307    /* This function allocates physical contiguous memory (below 4GB) according to the IPRT docs.
     308     * Address < 4G is required for the port IO.
     309     */
    307310    pChunk = (VBGLPHYSHEAPCHUNK *)RTMemContAlloc (&physAddr, cbSize);
    308311
  • trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c

    r8155 r9435  
    129129    data.mappings.type                   = VMMDevHGCMParmType_LinAddr;
    130130    data.mappings.u.Pointer.size         = sizeof (SHFLMAPPING) * *pcMappings;
    131     data.mappings.u.Pointer.u.linearAddr = (RTGCPTR)&paMappings[0];
     131    data.mappings.u.Pointer.u.linearAddr = (uintptr_t)&paMappings[0];
    132132
    133133/*    Log(("VBOXSF: in ifs difference %d\n",
     
    166166    data.name.type                   = VMMDevHGCMParmType_LinAddr;
    167167    data.name.u.Pointer.size         = size;
    168     data.name.u.Pointer.u.linearAddr = (RTGCPTR)pString;
     168    data.name.u.Pointer.u.linearAddr = (uintptr_t)pString;
    169169
    170170    rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data));
     
    192192    data.path.type                    = VMMDevHGCMParmType_LinAddr;
    193193    data.path.u.Pointer.size          = ShflStringSizeOfBuffer (szFolderName);
    194     data.path.u.Pointer.u.linearAddr  = (RTGCPTR)szFolderName;
     194    data.path.u.Pointer.u.linearAddr  = (uintptr_t)szFolderName;
    195195
    196196    data.root.type                    = VMMDevHGCMParmType_32bit;
     
    227227        data.path.type                    = VMMDevHGCMParmType_LinAddr;
    228228        data.path.u.Pointer.size          = ShflStringSizeOfBuffer (szFolderName);
    229         data.path.u.Pointer.u.linearAddr  = (RTGCPTR)szFolderName;
     229        data.path.u.Pointer.u.linearAddr  = (uintptr_t)szFolderName;
    230230
    231231        data.root.type                    = VMMDevHGCMParmType_32bit;
     
    284284    data.path.type                    = VMMDevHGCMParmType_LinAddr;
    285285    data.path.u.Pointer.size          = ShflStringSizeOfBuffer (pParsedPath);
    286     data.path.u.Pointer.u.linearAddr  = (RTGCPTR)pParsedPath;
     286    data.path.u.Pointer.u.linearAddr  = (uintptr_t)pParsedPath;
    287287
    288288    data.parms.type                   = VMMDevHGCMParmType_LinAddr;
    289289    data.parms.u.Pointer.size         = sizeof (SHFLCREATEPARMS);
    290     data.parms.u.Pointer.u.linearAddr = (RTGCPTR)pCreateParms;
     290    data.parms.u.Pointer.u.linearAddr = (uintptr_t)pCreateParms;
    291291
    292292    rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data));
     
    343343    data.path.type                      = VMMDevHGCMParmType_LinAddr_In;
    344344    data.path.u.Pointer.size            = ShflStringSizeOfBuffer (pParsedPath);
    345     data.path.u.Pointer.u.linearAddr    = (RTGCPTR)pParsedPath;
     345    data.path.u.Pointer.u.linearAddr    = (uintptr_t)pParsedPath;
    346346
    347347    data.flags.type                     = VMMDevHGCMParmType_32bit;
     
    375375    data.src.type                       = VMMDevHGCMParmType_LinAddr_In;
    376376    data.src.u.Pointer.size             = ShflStringSizeOfBuffer (pSrcPath);
    377     data.src.u.Pointer.u.linearAddr     = (RTGCPTR)pSrcPath;
     377    data.src.u.Pointer.u.linearAddr     = (uintptr_t)pSrcPath;
    378378
    379379    data.dest.type                      = VMMDevHGCMParmType_LinAddr_In;
    380380    data.dest.u.Pointer.size            = ShflStringSizeOfBuffer (pDestPath);
    381     data.dest.u.Pointer.u.linearAddr    = (RTGCPTR)pDestPath;
     381    data.dest.u.Pointer.u.linearAddr    = (uintptr_t)pDestPath;
    382382
    383383    data.flags.type                     = VMMDevHGCMParmType_32bit;
     
    416416    data.buffer.type                    = (fLocked) ? VMMDevHGCMParmType_LinAddr_Locked_Out : VMMDevHGCMParmType_LinAddr_Out;
    417417    data.buffer.u.Pointer.size          = *pcbBuffer;
    418     data.buffer.u.Pointer.u.linearAddr  = (RTGCPTR)pBuffer;
     418    data.buffer.u.Pointer.u.linearAddr  = (uintptr_t)pBuffer;
    419419
    420420    rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data));
     
    451451    data.buffer.type                    = (fLocked) ? VMMDevHGCMParmType_LinAddr_Locked_In : VMMDevHGCMParmType_LinAddr_In;
    452452    data.buffer.u.Pointer.size          = *pcbBuffer;
    453     data.buffer.u.Pointer.u.linearAddr  = (RTGCPTR)pBuffer;
     453    data.buffer.u.Pointer.u.linearAddr  = (uintptr_t)pBuffer;
    454454
    455455    rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data));
     
    521521    data.path.u.Pointer.size            =
    522522        (ParsedPath) ? ShflStringSizeOfBuffer(ParsedPath) : 0;
    523     data.path.u.Pointer.u.linearAddr    = (RTGCPTR) ParsedPath;
     523    data.path.u.Pointer.u.linearAddr    = (uintptr_t) ParsedPath;
    524524
    525525    data.buffer.type                    = VMMDevHGCMParmType_LinAddr_Out;
    526526    data.buffer.u.Pointer.size          = *pcbBuffer;
    527     data.buffer.u.Pointer.u.linearAddr  = (RTGCPTR)pBuffer;
     527    data.buffer.u.Pointer.u.linearAddr  = (uintptr_t)pBuffer;
    528528
    529529    data.resumePoint.type               = VMMDevHGCMParmType_32bit;
     
    566566    data.info.type                      = VMMDevHGCMParmType_LinAddr;
    567567    data.info.u.Pointer.size            = *pcbBuffer;
    568     data.info.u.Pointer.u.linearAddr    = (RTGCPTR)pBuffer;
     568    data.info.u.Pointer.u.linearAddr    = (uintptr_t)pBuffer;
    569569
    570570    rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data));
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