VirtualBox

Changeset 37596 in vbox for trunk/src/VBox/Runtime/r3


Ignore:
Timestamp:
Jun 22, 2011 7:30:06 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
72442
Message:

*: RTFILE becomes a pointer, RTFileOpen++ expands it's flags paramter from uint32_t to uint64_t.

Location:
trunk/src/VBox/Runtime/r3
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/fileio.cpp

    r33540 r37596  
    107107 * @internal
    108108 */
    109 int rtFileRecalcAndValidateFlags(uint32_t *pfOpen)
     109int rtFileRecalcAndValidateFlags(uint64_t *pfOpen)
    110110{
    111111    /*
     
    128128            break;
    129129        default:
    130             AssertMsgFailed(("Invalid RW value, fOpen=%#x\n", fOpen));
     130            AssertMsgFailed(("Invalid RW value, fOpen=%#llx\n", fOpen));
    131131            return VERR_INVALID_PARAMETER;
    132132    }
     
    135135     * Validate                                                                                                                                       .
    136136     */
    137     AssertMsgReturn(fOpen & RTFILE_O_ACCESS_MASK, ("Missing RTFILE_O_READ/WRITE: fOpen=%#x\n", fOpen), VERR_INVALID_PARAMETER);
     137    AssertMsgReturn(fOpen & RTFILE_O_ACCESS_MASK, ("Missing RTFILE_O_READ/WRITE: fOpen=%#llx\n", fOpen), VERR_INVALID_PARAMETER);
    138138#if defined(RT_OS_WINDOWS) || defined(RT_OS_OS2)
    139     AssertMsgReturn(!(fOpen & (~RTFILE_O_VALID_MASK | RTFILE_O_NON_BLOCK)), ("%#x\n", fOpen), VERR_INVALID_PARAMETER);
     139    AssertMsgReturn(!(fOpen & (~(uint64_t)RTFILE_O_VALID_MASK | RTFILE_O_NON_BLOCK)), ("%#llx\n", fOpen), VERR_INVALID_PARAMETER);
    140140#else
    141     AssertMsgReturn(!(fOpen & ~RTFILE_O_VALID_MASK), ("%#x\n", fOpen), VERR_INVALID_PARAMETER);
     141    AssertMsgReturn(!(fOpen & ~(uint64_t)RTFILE_O_VALID_MASK), ("%#llx\n", fOpen), VERR_INVALID_PARAMETER);
    142142#endif
    143     AssertMsgReturn((fOpen & (RTFILE_O_TRUNCATE | RTFILE_O_WRITE)) != RTFILE_O_TRUNCATE, ("%#x\n", fOpen), VERR_INVALID_PARAMETER);
     143    AssertMsgReturn((fOpen & (RTFILE_O_TRUNCATE | RTFILE_O_WRITE)) != RTFILE_O_TRUNCATE, ("%#llx\n", fOpen), VERR_INVALID_PARAMETER);
    144144
    145145    switch (fOpen & RTFILE_O_ACTION_MASK)
     
    150150            break;
    151151        case RTFILE_O_OPEN:
    152             AssertMsgReturn(!(RTFILE_O_NOT_CONTENT_INDEXED & fOpen), ("%#x\n", fOpen), VERR_INVALID_PARAMETER);
     152            AssertMsgReturn(!(RTFILE_O_NOT_CONTENT_INDEXED & fOpen), ("%#llx\n", fOpen), VERR_INVALID_PARAMETER);
    153153        case RTFILE_O_OPEN_CREATE:
    154154        case RTFILE_O_CREATE:
     
    156156            break;
    157157        default:
    158             AssertMsgFailed(("Invalid action value: fOpen=%#x\n", fOpen));
     158            AssertMsgFailed(("Invalid action value: fOpen=%#llx\n", fOpen));
    159159            return VERR_INVALID_PARAMETER;
    160160    }
     
    176176            break;
    177177        default:
    178             AssertMsgFailed(("Invalid deny value: fOpen=%#x\n", fOpen));
     178            AssertMsgFailed(("Invalid deny value: fOpen=%#llx\n", fOpen));
    179179            return VERR_INVALID_PARAMETER;
    180180    }
  • trunk/src/VBox/Runtime/r3/linux/fileaio-linux.cpp

    r33540 r37596  
    105105    int16_t   i16Priority;
    106106    /** The file descriptor. */
    107     uint32_t  File;
     107    uint32_t  uFileDesc;
    108108    /** The userspace pointer to the buffer containing/receiving the data. */
    109109    void     *pvBuf;
     
    379379     */
    380380    pReqInt->AioCB.u16IoOpCode = uTransferDirection;
    381     pReqInt->AioCB.File        = (uint32_t)hFile;
     381    pReqInt->AioCB.uFileDesc   = RTFileToNative(hFile);
    382382    pReqInt->AioCB.off         = off;
    383383    pReqInt->AioCB.cbTransfer  = cbTransfer;
  • trunk/src/VBox/Runtime/r3/posix/RTFileQueryFsSizes-posix.cpp

    r28800 r37596  
    4848    struct statvfs StatVFS;
    4949    RT_ZERO(StatVFS);
    50     if (fstatvfs(hFile, &StatVFS))
     50    if (fstatvfs(RTFileToNative(hFile), &StatVFS))
    5151        return RTErrConvertFromErrno(errno);
    5252
  • trunk/src/VBox/Runtime/r3/posix/fileaio-posix.cpp

    r33540 r37596  
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2011 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    407407    pReqInt->fFlush               = false;
    408408    pReqInt->AioCB.aio_lio_opcode = uTransferDirection;
    409     pReqInt->AioCB.aio_fildes     = (int)hFile;
     409    pReqInt->AioCB.aio_fildes     = RTFileToNative(hFile);
    410410    pReqInt->AioCB.aio_offset     = off;
    411411    pReqInt->AioCB.aio_nbytes     = cbTransfer;
     
    445445
    446446    pReqInt->fFlush           = true;
    447     pReqInt->AioCB.aio_fildes = (int)hFile;
     447    pReqInt->AioCB.aio_fildes = RTFileToNative(hFile);
    448448    pReqInt->AioCB.aio_offset = 0;
    449449    pReqInt->AioCB.aio_nbytes = 0;
  • trunk/src/VBox/Runtime/r3/posix/fileio-posix.cpp

    r36597 r37596  
    9393
    9494
    95 RTR3DECL(int) RTFileOpen(PRTFILE pFile, const char *pszFilename, uint32_t fOpen)
     95RTR3DECL(int) RTFileOpen(PRTFILE pFile, const char *pszFilename, uint64_t fOpen)
    9696{
    9797    /*
     
    111111    if (fOpen & RTFILE_O_NON_BLOCK)
    112112    {
    113         AssertMsgFailed(("Invalid parameters! fOpen=%#x\n", fOpen));
     113        AssertMsgFailed(("Invalid parameters! fOpen=%#llx\n", fOpen));
    114114        return VERR_INVALID_PARAMETER;
    115115    }
     
    177177            break;
    178178        default:
    179             AssertMsgFailed(("RTFileOpen received an invalid RW value, fOpen=%#x\n", fOpen));
     179            AssertMsgFailed(("RTFileOpen received an invalid RW value, fOpen=%#llx\n", fOpen));
    180180            return VERR_INVALID_PARAMETER;
    181181    }
     
    322322        if (iErr == 0)
    323323        {
    324             *pFile = (RTFILE)fh;
    325             Assert((int)*pFile == fh);
    326             LogFlow(("RTFileOpen(%p:{%RTfile}, %p:{%s}, %#x): returns %Rrc\n",
     324            *pFile = (RTFILE)(uintptr_t)fh;
     325            Assert((intptr_t)*pFile == fh);
     326            LogFlow(("RTFileOpen(%p:{%RTfile}, %p:{%s}, %#llx): returns %Rrc\n",
    327327                     pFile, *pFile, pszFilename, pszFilename, fOpen, rc));
    328328            return VINF_SUCCESS;
     
    335335
    336336
    337 RTR3DECL(int)  RTFileOpenBitBucket(PRTFILE phFile, uint32_t fAccess)
     337RTR3DECL(int)  RTFileOpenBitBucket(PRTFILE phFile, uint64_t fAccess)
    338338{
    339339    AssertReturn(   fAccess == RTFILE_O_READ
     
    345345
    346346
    347 RTR3DECL(int)  RTFileClose(RTFILE File)
    348 {
    349     if (File == NIL_RTFILE)
    350         return VINF_SUCCESS;
    351     if (close((int)File) == 0)
     347RTR3DECL(int)  RTFileClose(RTFILE hFile)
     348{
     349    if (hFile == NIL_RTFILE)
     350        return VINF_SUCCESS;
     351    if (close(RTFileToNative(hFile)) == 0)
    352352        return VINF_SUCCESS;
    353353    return RTErrConvertFromErrno(errno);
     
    357357RTR3DECL(int) RTFileFromNative(PRTFILE pFile, RTHCINTPTR uNative)
    358358{
    359     if (    uNative < 0
    360         ||  (RTFILE)uNative != (RTUINTPTR)uNative)
     359    AssertCompile(sizeof(uNative) == sizeof(*pFile));
     360    if (uNative < 0)
    361361    {
    362362        AssertMsgFailed(("%p\n", uNative));
     
    369369
    370370
    371 RTR3DECL(RTHCINTPTR) RTFileToNative(RTFILE File)
    372 {
    373     AssertReturn(File != NIL_RTFILE, -1);
    374     return (RTHCINTPTR)File;
     371RTR3DECL(RTHCINTPTR) RTFileToNative(RTFILE hFile)
     372{
     373    AssertReturn(hFile != NIL_RTFILE, -1);
     374    return (intptr_t)hFile;
    375375}
    376376
     
    411411
    412412
    413 RTR3DECL(int)  RTFileSeek(RTFILE File, int64_t offSeek, unsigned uMethod, uint64_t *poffActual)
     413RTR3DECL(int)  RTFileSeek(RTFILE hFile, int64_t offSeek, unsigned uMethod, uint64_t *poffActual)
    414414{
    415415    static const unsigned aSeekRecode[] =
     
    438438    }
    439439
    440     off_t offCurrent = lseek((int)File, (off_t)offSeek, aSeekRecode[uMethod]);
     440    off_t offCurrent = lseek(RTFileToNative(hFile), (off_t)offSeek, aSeekRecode[uMethod]);
    441441    if (offCurrent != ~0)
    442442    {
     
    449449
    450450
    451 RTR3DECL(int)  RTFileRead(RTFILE File, void *pvBuf, size_t cbToRead, size_t *pcbRead)
     451RTR3DECL(int)  RTFileRead(RTFILE hFile, void *pvBuf, size_t cbToRead, size_t *pcbRead)
    452452{
    453453    if (cbToRead <= 0)
     
    457457     * Attempt read.
    458458     */
    459     ssize_t cbRead = read((int)File, pvBuf, cbToRead);
     459    ssize_t cbRead = read(RTFileToNative(hFile), pvBuf, cbToRead);
    460460    if (cbRead >= 0)
    461461    {
     
    468468            while ((ssize_t)cbToRead > cbRead)
    469469            {
    470                 ssize_t cbReadPart = read((int)File, (char*)pvBuf + cbRead, cbToRead - cbRead);
     470                ssize_t cbReadPart = read(RTFileToNative(hFile), (char*)pvBuf + cbRead, cbToRead - cbRead);
    471471                if (cbReadPart <= 0)
    472472                {
     
    485485
    486486
    487 RTR3DECL(int)  RTFileWrite(RTFILE File, const void *pvBuf, size_t cbToWrite, size_t *pcbWritten)
     487RTR3DECL(int)  RTFileWrite(RTFILE hFile, const void *pvBuf, size_t cbToWrite, size_t *pcbWritten)
    488488{
    489489    if (cbToWrite <= 0)
     
    493493     * Attempt write.
    494494     */
    495     ssize_t cbWritten = write((int)File, pvBuf, cbToWrite);
     495    ssize_t cbWritten = write(RTFileToNative(hFile), pvBuf, cbToWrite);
    496496    if (cbWritten >= 0)
    497497    {
     
    504504            while ((ssize_t)cbToWrite > cbWritten)
    505505            {
    506                 ssize_t cbWrittenPart = write((int)File, (const char *)pvBuf + cbWritten, cbToWrite - cbWritten);
     506                ssize_t cbWrittenPart = write(RTFileToNative(hFile), (const char *)pvBuf + cbWritten, cbToWrite - cbWritten);
    507507                if (cbWrittenPart <= 0)
    508508                    return RTErrConvertFromErrno(errno);
     
    516516
    517517
    518 RTR3DECL(int)  RTFileSetSize(RTFILE File, uint64_t cbSize)
     518RTR3DECL(int)  RTFileSetSize(RTFILE hFile, uint64_t cbSize)
    519519{
    520520    /*
     
    529529
    530530#if defined(_MSC_VER) || (defined(RT_OS_OS2) && (!defined(__INNOTEK_LIBC__) || __INNOTEK_LIBC__ < 0x006))
    531     if (chsize((int)File, (off_t)cbSize) == 0)
     531    if (chsize(RTFileToNative(hFile), (off_t)cbSize) == 0)
    532532#else
    533533    /* This relies on a non-standard feature of FreeBSD, Linux, and OS/2
     
    535535     * than the file.)
    536536     */
    537     if (ftruncate((int)File, (off_t)cbSize) == 0)
     537    if (ftruncate(RTFileToNative(hFile), (off_t)cbSize) == 0)
    538538#endif
    539539        return VINF_SUCCESS;
     
    542542
    543543
    544 RTR3DECL(int)   RTFileGetSize(RTFILE File, uint64_t *pcbSize)
     544RTR3DECL(int)   RTFileGetSize(RTFILE hFile, uint64_t *pcbSize)
    545545{
    546546    struct stat st;
    547     if (!fstat((int)File, &st))
     547    if (!fstat(RTFileToNative(hFile), &st))
    548548    {
    549549        *pcbSize = st.st_size;
     
    554554
    555555
    556 /**
    557  * Determine the maximum file size.
    558  *
    559  * @returns IPRT status code.
    560  * @param   File        Handle to the file.
    561  * @param   pcbMax      Where to store the max file size.
    562  * @see     RTFileGetMaxSize.
    563  */
    564 RTR3DECL(int) RTFileGetMaxSizeEx(RTFILE File, PRTFOFF pcbMax)
     556RTR3DECL(int) RTFileGetMaxSizeEx(RTFILE hFile, PRTFOFF pcbMax)
    565557{
    566558    /*
     
    568560     */
    569561    uint64_t offOld;
    570     int rc = RTFileSeek(File, 0, RTFILE_SEEK_CURRENT, &offOld);
     562    int rc = RTFileSeek(hFile, 0, RTFILE_SEEK_CURRENT, &offOld);
    571563    if (RT_FAILURE(rc))
    572564        return rc;
     
    588580            if (pcbMax)
    589581                *pcbMax = offLow;
    590             return RTFileSeek(File, offOld, RTFILE_SEEK_BEGIN, NULL);
    591         }
    592 
    593         rc = RTFileSeek(File, offLow + cbInterval, RTFILE_SEEK_BEGIN, NULL);
     582            return RTFileSeek(hFile, offOld, RTFILE_SEEK_BEGIN, NULL);
     583        }
     584
     585        rc = RTFileSeek(hFile, offLow + cbInterval, RTFILE_SEEK_BEGIN, NULL);
    594586        if (RT_FAILURE(rc))
    595587            offHigh = offLow + cbInterval;
     
    600592
    601593
    602 RTR3DECL(bool) RTFileIsValid(RTFILE File)
    603 {
    604     if (File != NIL_RTFILE)
    605     {
    606         int fFlags = fcntl(File, F_GETFD);
     594RTR3DECL(bool) RTFileIsValid(RTFILE hFile)
     595{
     596    if (hFile != NIL_RTFILE)
     597    {
     598        int fFlags = fcntl(RTFileToNative(hFile), F_GETFD);
    607599        if (fFlags >= 0)
    608600            return true;
     
    612604
    613605
    614 RTR3DECL(int)  RTFileFlush(RTFILE File)
    615 {
    616     if (fsync((int)File))
     606RTR3DECL(int)  RTFileFlush(RTFILE hFile)
     607{
     608    if (fsync(RTFileToNative(hFile)))
    617609        return RTErrConvertFromErrno(errno);
    618610    return VINF_SUCCESS;
     
    620612
    621613
    622 RTR3DECL(int) RTFileIoCtl(RTFILE File, unsigned long ulRequest, void *pvData, unsigned cbData, int *piRet)
    623 {
    624     int rc = ioctl((int)File, ulRequest, pvData);
     614RTR3DECL(int) RTFileIoCtl(RTFILE hFile, unsigned long ulRequest, void *pvData, unsigned cbData, int *piRet)
     615{
     616    int rc = ioctl(RTFileToNative(hFile), ulRequest, pvData);
    625617    if (piRet)
    626618        *piRet = rc;
     
    629621
    630622
    631 RTR3DECL(int) RTFileSetMode(RTFILE File, RTFMODE fMode)
     623RTR3DECL(int) RTFileSetMode(RTFILE hFile, RTFMODE fMode)
    632624{
    633625    /*
     
    638630        return VERR_INVALID_PARAMETER;
    639631
    640     if (fchmod((int)File, fMode & RTFS_UNIX_MASK))
     632    if (fchmod(RTFileToNative(hFile), fMode & RTFS_UNIX_MASK))
    641633    {
    642634        int rc = RTErrConvertFromErrno(errno);
    643         Log(("RTFileSetMode(%RTfile,%RTfmode): returns %Rrc\n", File, fMode, rc));
     635        Log(("RTFileSetMode(%RTfile,%RTfmode): returns %Rrc\n", hFile, fMode, rc));
    644636        return rc;
    645637    }
  • trunk/src/VBox/Runtime/r3/posix/fileio2-posix.cpp

    r34016 r37596  
    55
    66/*
    7  * Copyright (C) 2006-2010 Oracle Corporation
     7 * Copyright (C) 2006-2011 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    6969
    7070
    71 RTR3DECL(int) RTFileQueryInfo(RTFILE File, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAdditionalAttribs)
     71RTR3DECL(int) RTFileQueryInfo(RTFILE hFile, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAdditionalAttribs)
    7272{
    7373    /*
    7474     * Validate input.
    7575     */
    76     if (File == NIL_RTFILE)
    77     {
    78         AssertMsgFailed(("Invalid File=%RTfile\n", File));
    79         return VERR_INVALID_PARAMETER;
    80     }
    81     if (!pObjInfo)
    82     {
    83         AssertMsgFailed(("Invalid pObjInfo=%p\n", pObjInfo));
    84         return VERR_INVALID_PARAMETER;
    85     }
     76    AssertReturn(hFile != NIL_RTFILE, VERR_INVALID_PARAMETER);
     77    AssertPtrReturn(pObjInfo, VERR_INVALID_PARAMETER);
    8678    if (    enmAdditionalAttribs < RTFSOBJATTRADD_NOTHING
    8779        ||  enmAdditionalAttribs > RTFSOBJATTRADD_LAST)
     
    9587     */
    9688    struct stat Stat;
    97     if (fstat((int)File, &Stat))
     89    if (fstat(RTFileToNative(hFile), &Stat))
    9890    {
    9991        int rc = RTErrConvertFromErrno(errno);
    100         Log(("RTFileQueryInfo(%RTfile,,%d): returns %Rrc\n", File, enmAdditionalAttribs, rc));
     92        Log(("RTFileQueryInfo(%RTfile,,%d): returns %Rrc\n", hFile, enmAdditionalAttribs, rc));
    10193        return rc;
    10294    }
     
    135127    }
    136128
    137     LogFlow(("RTFileQueryInfo(%RTfile,,%d): returns VINF_SUCCESS\n", File, enmAdditionalAttribs));
     129    LogFlow(("RTFileQueryInfo(%RTfile,,%d): returns VINF_SUCCESS\n", hFile, enmAdditionalAttribs));
    138130    return VINF_SUCCESS;
    139131}
    140132
    141133
    142 RTR3DECL(int) RTFileSetTimes(RTFILE File, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
     134RTR3DECL(int) RTFileSetTimes(RTFILE hFile, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
    143135                             PCRTTIMESPEC pChangeTime, PCRTTIMESPEC pBirthTime)
    144136{
     
    163155    {
    164156        RTFSOBJINFO ObjInfo;
    165         int rc = RTFileQueryInfo(File, &ObjInfo, RTFSOBJATTRADD_UNIX);
     157        int rc = RTFileQueryInfo(hFile, &ObjInfo, RTFSOBJATTRADD_UNIX);
    166158        if (RT_FAILURE(rc))
    167159            return rc;
     
    170162    }
    171163
    172     if (futimes((int)File, aTimevals))
     164    if (futimes(RTFileToNative(hFile), aTimevals))
    173165    {
    174166        int rc = RTErrConvertFromErrno(errno);
    175         Log(("RTFileSetTimes(%RTfile,%p,%p,,): returns %Rrc\n", File, pAccessTime, pModificationTime, rc));
     167        Log(("RTFileSetTimes(%RTfile,%p,%p,,): returns %Rrc\n", hFile, pAccessTime, pModificationTime, rc));
    176168        return rc;
    177169    }
  • trunk/src/VBox/Runtime/r3/posix/filelock-posix.cpp

    r28800 r37596  
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2011 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    5050
    5151
    52 RTR3DECL(int)  RTFileLock(RTFILE File, unsigned fLock, int64_t offLock, uint64_t cbLock)
     52RTR3DECL(int)  RTFileLock(RTFILE hFile, unsigned fLock, int64_t offLock, uint64_t cbLock)
    5353{
    5454    Assert(offLock >= 0);
     
    8383
    8484    Assert(RTFILE_LOCK_WAIT);
    85     if (fcntl(File, (fLock & RTFILE_LOCK_WAIT) ? F_SETLKW : F_SETLK, &fl) >= 0)
     85    if (fcntl(RTFileToNative(hFile), (fLock & RTFILE_LOCK_WAIT) ? F_SETLKW : F_SETLK, &fl) >= 0)
    8686        return VINF_SUCCESS;
    8787
     
    9595
    9696
    97 RTR3DECL(int)  RTFileChangeLock(RTFILE File, unsigned fLock, int64_t offLock, uint64_t cbLock)
     97RTR3DECL(int)  RTFileChangeLock(RTFILE hFile, unsigned fLock, int64_t offLock, uint64_t cbLock)
    9898{
    9999    /** @todo We never returns VERR_FILE_NOT_LOCKED for now. */
    100     return RTFileLock(File, fLock, offLock, cbLock);
     100    return RTFileLock(hFile, fLock, offLock, cbLock);
    101101}
    102102
    103103
    104 RTR3DECL(int)  RTFileUnlock(RTFILE File, int64_t offLock, uint64_t cbLock)
     104RTR3DECL(int)  RTFileUnlock(RTFILE hFile, int64_t offLock, uint64_t cbLock)
    105105{
    106106    Assert(offLock >= 0);
     
    126126    fl.l_pid    = 0;
    127127
    128     if (fcntl(File, F_SETLK, &fl) >= 0)
     128    if (fcntl(RTFileToNative(hFile), F_SETLK, &fl) >= 0)
    129129        return VINF_SUCCESS;
    130130
  • trunk/src/VBox/Runtime/r3/posix/rand-posix.cpp

    r28800 r37596  
    7979    pThis->u32Magic = ~RTRANDINT_MAGIC;
    8080    int fd = pThis->u.File.hFile;
    81     pThis->u.File.hFile = NIL_RTFILE;
     81    pThis->u.File.hFile = -1;
    8282    RTMemFree(pThis);
    8383    close(fd);
  • trunk/src/VBox/Runtime/r3/win/fileaio-win.cpp

    r35408 r37596  
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2011 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    189189
    190190    pReqInt->enmTransferDirection  = enmTransferDirection;
    191     pReqInt->hFile                 = (HANDLE)hFile;
     191    pReqInt->hFile                 = RTFileToNative(hFile);
    192192    pReqInt->Overlapped.Offset     = (DWORD)(off & 0xffffffff);
    193193    pReqInt->Overlapped.OffsetHigh = (DWORD)(off >> 32);
     
    318318    RTFILEAIOCTX_VALID_RETURN(pCtxInt);
    319319
    320     HANDLE hTemp = CreateIoCompletionPort((HANDLE)hFile, pCtxInt->hIoCompletionPort, 0, 1);
     320    HANDLE hTemp = CreateIoCompletionPort(RTFileToNative(hFile), pCtxInt->hIoCompletionPort, 0, 1);
    321321    if (hTemp != pCtxInt->hIoCompletionPort)
    322322        rc = RTErrConvertFromWin32(GetLastError());
  • trunk/src/VBox/Runtime/r3/win/fileio-win.cpp

    r36601 r37596  
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2011 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    5555 *
    5656 * @returns Success indicator. Extended error information obtainable using GetLastError().
    57  * @param   File        Filehandle.
     57 * @param   hFile       Filehandle.
    5858 * @param   offSeek     Offset to seek.
    5959 * @param   poffNew     Where to store the new file offset. NULL allowed.
    6060 * @param   uMethod     Seek method. (The windows one!)
    6161 */
    62 DECLINLINE(bool) MySetFilePointer(RTFILE File, uint64_t offSeek, uint64_t *poffNew, unsigned uMethod)
     62DECLINLINE(bool) MySetFilePointer(RTFILE hFile, uint64_t offSeek, uint64_t *poffNew, unsigned uMethod)
    6363{
    6464    bool            fRc;
     
    6969    if (off.LowPart != INVALID_SET_FILE_POINTER)
    7070    {
    71         off.LowPart = SetFilePointer((HANDLE)File, off.LowPart, &off.HighPart, uMethod);
     71        off.LowPart = SetFilePointer((HANDLE)RTFileToNative(hFile), off.LowPart, &off.HighPart, uMethod);
    7272        fRc = off.LowPart != INVALID_SET_FILE_POINTER;
    7373    }
     
    7575    {
    7676        SetLastError(NO_ERROR);
    77         off.LowPart = SetFilePointer((HANDLE)File, off.LowPart, &off.HighPart, uMethod);
     77        off.LowPart = SetFilePointer(RTFileToNative(hFile), off.LowPart, &off.HighPart, uMethod);
    7878        fRc = GetLastError() == NO_ERROR;
    7979    }
    8080#else
    81     fRc = SetFilePointerEx((HANDLE)File, off, &off, uMethod);
     81    fRc = SetFilePointerEx((HANDLE)RTFileToNative(hFile), off, &off, uMethod);
    8282#endif
    8383    if (fRc && poffNew)
     
    9292 *
    9393 * @returns true for file size limit exceeded.
    94  * @param   File        Filehandle.
     94 * @param   hFile       Filehandle.
    9595 * @param   offSeek     Offset to seek.
    9696 * @param   uMethod     The seek method.
    9797 */
    98 DECLINLINE(bool) IsBeyondLimit(RTFILE File, uint64_t offSeek, unsigned uMethod)
     98DECLINLINE(bool) IsBeyondLimit(RTFILE hFile, uint64_t offSeek, unsigned uMethod)
    9999{
    100100    bool fIsBeyondLimit = false;
     
    108108 * file seeking, only at the time of writing (and some other odd ones we cannot make use of). */
    109109    uint64_t offCurrent;
    110     if (MySetFilePointer(File, 0, &offCurrent, FILE_CURRENT))
    111     {
    112         if (!MySetFilePointer(File, offSeek, NULL, uMethod))
     110    if (MySetFilePointer(hFile, 0, &offCurrent, FILE_CURRENT))
     111    {
     112        if (!MySetFilePointer(hFile, offSeek, NULL, uMethod))
    113113            fIsBeyondLimit = GetLastError() == ERROR_SEEK;
    114114        else /* Restore file pointer on success. */
    115             MySetFilePointer(File, offCurrent, NULL, FILE_BEGIN);
     115            MySetFilePointer(hFile, offCurrent, NULL, FILE_BEGIN);
    116116    }
    117117
     
    135135
    136136
    137 RTR3DECL(RTHCINTPTR) RTFileToNative(RTFILE File)
    138 {
    139     AssertReturn(File != NIL_RTFILE, (RTHCINTPTR)INVALID_HANDLE_VALUE);
    140     return (RTHCINTPTR)File;
    141 }
    142 
    143 
    144 RTR3DECL(int) RTFileOpen(PRTFILE pFile, const char *pszFilename, uint32_t fOpen)
     137RTR3DECL(RTHCINTPTR) RTFileToNative(RTFILE hFile)
     138{
     139    AssertReturn(hFile != NIL_RTFILE, (RTHCINTPTR)INVALID_HANDLE_VALUE);
     140    return (RTHCINTPTR)hFile;
     141}
     142
     143
     144RTR3DECL(int) RTFileOpen(PRTFILE pFile, const char *pszFilename, uint64_t fOpen)
    145145{
    146146    /*
     
    186186            break;
    187187        default:
    188             AssertMsgFailed(("Impossible fOpen=%#x\n", fOpen));
     188            AssertMsgFailed(("Impossible fOpen=%#llx\n", fOpen));
    189189            return VERR_INVALID_PARAMETER;
    190190    }
     
    207207            break;
    208208        default:
    209             AssertMsgFailed(("Impossible fOpen=%#x\n", fOpen));
     209            AssertMsgFailed(("Impossible fOpen=%#llx\n", fOpen));
    210210            return VERR_INVALID_PARAMETER;
    211211    }
     
    228228                case RTFILE_O_READWRITE:     dwDesiredAccess |= FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES | SYNCHRONIZE; break;
    229229                default:
    230                     AssertMsgFailed(("Impossible fOpen=%#x\n", fOpen));
     230                    AssertMsgFailed(("Impossible fOpen=%#llx\n", fOpen));
    231231                    return VERR_INVALID_PARAMETER;
    232232            }
     
    246246        case RTFILE_O_DENY_NOT_DELETE | RTFILE_O_DENY_READWRITE:dwShareMode = FILE_SHARE_DELETE; break;
    247247        default:
    248             AssertMsgFailed(("Impossible fOpen=%#x\n", fOpen));
     248            AssertMsgFailed(("Impossible fOpen=%#llx\n", fOpen));
    249249            return VERR_INVALID_PARAMETER;
    250250    }
     
    329329
    330330
    331 RTR3DECL(int)  RTFileOpenBitBucket(PRTFILE phFile, uint32_t fAccess)
     331RTR3DECL(int)  RTFileOpenBitBucket(PRTFILE phFile, uint64_t fAccess)
    332332{
    333333    AssertReturn(   fAccess == RTFILE_O_READ
     
    339339
    340340
    341 RTR3DECL(int)  RTFileClose(RTFILE File)
    342 {
    343     if (File == NIL_RTFILE)
    344         return VINF_SUCCESS;
    345     if (CloseHandle((HANDLE)File))
     341RTR3DECL(int)  RTFileClose(RTFILE hFile)
     342{
     343    if (hFile == NIL_RTFILE)
     344        return VINF_SUCCESS;
     345    if (CloseHandle((HANDLE)RTFileToNative(hFile)))
    346346        return VINF_SUCCESS;
    347347    return RTErrConvertFromWin32(GetLastError());
     
    372372
    373373
    374 RTR3DECL(int)  RTFileSeek(RTFILE File, int64_t offSeek, unsigned uMethod, uint64_t *poffActual)
     374RTR3DECL(int)  RTFileSeek(RTFILE hFile, int64_t offSeek, unsigned uMethod, uint64_t *poffActual)
    375375{
    376376    static ULONG aulSeekRecode[] =
     
    393393     * Execute the seek.
    394394     */
    395     if (MySetFilePointer(File, offSeek, poffActual, aulSeekRecode[uMethod]))
     395    if (MySetFilePointer(hFile, offSeek, poffActual, aulSeekRecode[uMethod]))
    396396        return VINF_SUCCESS;
    397397    return RTErrConvertFromWin32(GetLastError());
     
    399399
    400400
    401 RTR3DECL(int)  RTFileRead(RTFILE File, void *pvBuf, size_t cbToRead, size_t *pcbRead)
     401RTR3DECL(int)  RTFileRead(RTFILE hFile, void *pvBuf, size_t cbToRead, size_t *pcbRead)
    402402{
    403403    if (cbToRead <= 0)
     
    407407
    408408    ULONG cbRead = 0;
    409     if (ReadFile((HANDLE)File, pvBuf, cbToReadAdj, &cbRead, NULL))
     409    if (ReadFile((HANDLE)RTFileToNative(hFile), pvBuf, cbToReadAdj, &cbRead, NULL))
    410410    {
    411411        if (pcbRead)
     
    418418            {
    419419                ULONG cbReadPart = 0;
    420                 if (!ReadFile((HANDLE)File, (char*)pvBuf + cbRead, cbToReadAdj - cbRead, &cbReadPart, NULL))
     420                if (!ReadFile((HANDLE)RTFileToNative(hFile), (char*)pvBuf + cbRead, cbToReadAdj - cbRead, &cbReadPart, NULL))
    421421                    return RTErrConvertFromWin32(GetLastError());
    422422                if (cbReadPart == 0)
     
    446446            ULONG cbToRead   = RT_MIN(cbChunk, cbToReadAdj - cbRead);
    447447            ULONG cbReadPart = 0;
    448             if (!ReadFile((HANDLE)File, (char *)pvBuf + cbRead, cbToRead, &cbReadPart, NULL))
     448            if (!ReadFile((HANDLE)RTFileToNative(hFile), (char *)pvBuf + cbRead, cbToRead, &cbReadPart, NULL))
    449449            {
    450450                /* If we failed because the buffer is too big, shrink it and
     
    478478
    479479
    480 RTR3DECL(int)  RTFileWrite(RTFILE File, const void *pvBuf, size_t cbToWrite, size_t *pcbWritten)
     480RTR3DECL(int)  RTFileWrite(RTFILE hFile, const void *pvBuf, size_t cbToWrite, size_t *pcbWritten)
    481481{
    482482    if (cbToWrite <= 0)
     
    486486
    487487    ULONG cbWritten = 0;
    488     if (WriteFile((HANDLE)File, pvBuf, cbToWriteAdj, &cbWritten, NULL))
     488    if (WriteFile((HANDLE)RTFileToNative(hFile), pvBuf, cbToWriteAdj, &cbWritten, NULL))
    489489    {
    490490        if (pcbWritten)
     
    497497            {
    498498                ULONG cbWrittenPart = 0;
    499                 if (!WriteFile((HANDLE)File, (char*)pvBuf + cbWritten, cbToWriteAdj - cbWritten, &cbWrittenPart, NULL))
     499                if (!WriteFile((HANDLE)RTFileToNative(hFile), (char*)pvBuf + cbWritten,
     500                               cbToWriteAdj - cbWritten, &cbWrittenPart, NULL))
    500501                {
    501502                    int rc = RTErrConvertFromWin32(GetLastError());
    502503                    if (   rc == VERR_DISK_FULL
    503                         && IsBeyondLimit(File, cbToWriteAdj - cbWritten, FILE_CURRENT)
     504                        && IsBeyondLimit(RTFileToNative(hFile), cbToWriteAdj - cbWritten, FILE_CURRENT)
    504505                       )
    505506                        rc = VERR_FILE_TOO_BIG;
     
    532533            ULONG cbToWrite     = RT_MIN(cbChunk, cbToWriteAdj - cbWritten);
    533534            ULONG cbWrittenPart = 0;
    534             if (!WriteFile((HANDLE)File, (const char *)pvBuf + cbWritten, cbToWrite, &cbWrittenPart, NULL))
     535            if (!WriteFile((HANDLE)RTFileToNative(hFile), (const char *)pvBuf + cbWritten, cbToWrite, &cbWrittenPart, NULL))
    535536            {
    536537                /* If we failed because the buffer is too big, shrink it and
     
    545546                int rc = RTErrConvertFromWin32(dwErr);
    546547                if (   rc == VERR_DISK_FULL
    547                     && IsBeyondLimit(File, cbToWriteAdj - cbWritten, FILE_CURRENT))
     548                    && IsBeyondLimit(hFile, cbToWriteAdj - cbWritten, FILE_CURRENT))
    548549                    rc = VERR_FILE_TOO_BIG;
    549550                return rc;
     
    566567    int rc = RTErrConvertFromWin32(dwErr);
    567568    if (   rc == VERR_DISK_FULL
    568         && IsBeyondLimit(File, cbToWriteAdj - cbWritten, FILE_CURRENT))
     569        && IsBeyondLimit(hFile, cbToWriteAdj - cbWritten, FILE_CURRENT))
    569570        rc = VERR_FILE_TOO_BIG;
    570571    return rc;
     
    572573
    573574
    574 RTR3DECL(int)  RTFileFlush(RTFILE File)
    575 {
    576     if (!FlushFileBuffers((HANDLE)File))
     575RTR3DECL(int)  RTFileFlush(RTFILE hFile)
     576{
     577    if (!FlushFileBuffers((HANDLE)RTFileToNative(hFile)))
    577578    {
    578579        int rc = GetLastError();
     
    584585
    585586
    586 RTR3DECL(int)  RTFileSetSize(RTFILE File, uint64_t cbSize)
     587RTR3DECL(int)  RTFileSetSize(RTFILE hFile, uint64_t cbSize)
    587588{
    588589    /*
     
    591592    int         rc;
    592593    uint64_t    offCurrent;
    593     if (MySetFilePointer(File, 0, &offCurrent, FILE_CURRENT))
     594    if (MySetFilePointer(hFile, 0, &offCurrent, FILE_CURRENT))
    594595    {
    595596        /*
    596597         * Set new file pointer.
    597598         */
    598         if (MySetFilePointer(File, cbSize, NULL, FILE_BEGIN))
     599        if (MySetFilePointer(hFile, cbSize, NULL, FILE_BEGIN))
    599600        {
    600601            /* set file pointer */
    601             if (SetEndOfFile((HANDLE)File))
     602            if (SetEndOfFile((HANDLE)RTFileToNative(hFile)))
    602603            {
    603604                /*
     
    605606                 * If the old pointer was beyond the new file end, ignore failure.
    606607                 */
    607                 if (    MySetFilePointer(File, offCurrent, NULL, FILE_BEGIN)
     608                if (    MySetFilePointer(hFile, offCurrent, NULL, FILE_BEGIN)
    608609                    ||  offCurrent > cbSize)
    609610                    return VINF_SUCCESS;
     
    614615             */
    615616            rc = GetLastError();
    616             MySetFilePointer(File, offCurrent, NULL, FILE_BEGIN);
     617            MySetFilePointer(hFile, offCurrent, NULL, FILE_BEGIN);
    617618        }
    618619        else
     
    626627
    627628
    628 RTR3DECL(int)  RTFileGetSize(RTFILE File, uint64_t *pcbSize)
     629RTR3DECL(int)  RTFileGetSize(RTFILE hFile, uint64_t *pcbSize)
    629630{
    630631    ULARGE_INTEGER  Size;
    631     Size.LowPart = GetFileSize((HANDLE)File, &Size.HighPart);
     632    Size.LowPart = GetFileSize((HANDLE)RTFileToNative(hFile), &Size.HighPart);
    632633    if (Size.LowPart != INVALID_FILE_SIZE)
    633634    {
     
    641642
    642643
    643 RTR3DECL(int) RTFileGetMaxSizeEx(RTFILE File, PRTFOFF pcbMax)
     644RTR3DECL(int) RTFileGetMaxSizeEx(RTFILE hFile, PRTFOFF pcbMax)
    644645{
    645646    /** @todo r=bird:
     
    653654
    654655
    655 RTR3DECL(bool) RTFileIsValid(RTFILE File)
    656 {
    657     if (File != NIL_RTFILE)
    658     {
    659         DWORD dwType = GetFileType((HANDLE)File);
     656RTR3DECL(bool) RTFileIsValid(RTFILE hFile)
     657{
     658    if (hFile != NIL_RTFILE)
     659    {
     660        DWORD dwType = GetFileType((HANDLE)RTFileToNative(hFile));
    660661        switch (dwType)
    661662        {
     
    679680#define HIGH_DWORD(u64) (((DWORD *)&u64)[1])
    680681
    681 RTR3DECL(int)  RTFileLock(RTFILE File, unsigned fLock, int64_t offLock, uint64_t cbLock)
     682RTR3DECL(int)  RTFileLock(RTFILE hFile, unsigned fLock, int64_t offLock, uint64_t cbLock)
    682683{
    683684    Assert(offLock >= 0);
     
    704705
    705706    /* Note: according to Microsoft, LockFileEx API call is available starting from NT 3.5 */
    706     if (LockFileEx((HANDLE)File, dwFlags, 0, LOW_DWORD(cbLock), HIGH_DWORD(cbLock), &Overlapped))
     707    if (LockFileEx((HANDLE)RTFileToNative(hFile), dwFlags, 0, LOW_DWORD(cbLock), HIGH_DWORD(cbLock), &Overlapped))
    707708        return VINF_SUCCESS;
    708709
     
    711712
    712713
    713 RTR3DECL(int)  RTFileChangeLock(RTFILE File, unsigned fLock, int64_t offLock, uint64_t cbLock)
     714RTR3DECL(int)  RTFileChangeLock(RTFILE hFile, unsigned fLock, int64_t offLock, uint64_t cbLock)
    714715{
    715716    Assert(offLock >= 0);
     
    723724
    724725    /* Remove old lock. */
    725     int rc = RTFileUnlock(File, offLock, cbLock);
     726    int rc = RTFileUnlock(hFile, offLock, cbLock);
    726727    if (RT_FAILURE(rc))
    727728        return rc;
    728729
    729730    /* Set new lock. */
    730     rc = RTFileLock(File, fLock, offLock, cbLock);
     731    rc = RTFileLock(hFile, fLock, offLock, cbLock);
    731732    if (RT_SUCCESS(rc))
    732733        return rc;
     
    734735    /* Try to restore old lock. */
    735736    unsigned fLockOld = (fLock & RTFILE_LOCK_WRITE) ? fLock & ~RTFILE_LOCK_WRITE : fLock | RTFILE_LOCK_WRITE;
    736     rc = RTFileLock(File, fLockOld, offLock, cbLock);
     737    rc = RTFileLock(hFile, fLockOld, offLock, cbLock);
    737738    if (RT_SUCCESS(rc))
    738739        return VERR_FILE_LOCK_VIOLATION;
     
    742743
    743744
    744 RTR3DECL(int)  RTFileUnlock(RTFILE File, int64_t offLock, uint64_t cbLock)
     745RTR3DECL(int)  RTFileUnlock(RTFILE hFile, int64_t offLock, uint64_t cbLock)
    745746{
    746747    Assert(offLock >= 0);
    747748
    748     if (UnlockFile((HANDLE)File, LOW_DWORD(offLock), HIGH_DWORD(offLock), LOW_DWORD(cbLock), HIGH_DWORD(cbLock)))
     749    if (UnlockFile((HANDLE)RTFileToNative(hFile),
     750                   LOW_DWORD(offLock), HIGH_DWORD(offLock),
     751                   LOW_DWORD(cbLock), HIGH_DWORD(cbLock)))
    749752        return VINF_SUCCESS;
    750753
     
    754757
    755758
    756 RTR3DECL(int) RTFileQueryInfo(RTFILE File, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAdditionalAttribs)
     759RTR3DECL(int) RTFileQueryInfo(RTFILE hFile, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAdditionalAttribs)
    757760{
    758761    /*
    759762     * Validate input.
    760763     */
    761     if (File == NIL_RTFILE)
    762     {
    763         AssertMsgFailed(("Invalid File=%RTfile\n", File));
     764    if (hFile == NIL_RTFILE)
     765    {
     766        AssertMsgFailed(("Invalid hFile=%RTfile\n", hFile));
    764767        return VERR_INVALID_PARAMETER;
    765768    }
     
    780783     */
    781784    BY_HANDLE_FILE_INFORMATION Data;
    782     if (!GetFileInformationByHandle((HANDLE)File, &Data))
     785    if (!GetFileInformationByHandle((HANDLE)RTFileToNative(hFile), &Data))
    783786    {
    784787        DWORD dwErr = GetLastError();
     
    851854
    852855
    853 RTR3DECL(int) RTFileSetTimes(RTFILE File, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
     856RTR3DECL(int) RTFileSetTimes(RTFILE hFile, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
    854857                             PCRTTIMESPEC pChangeTime, PCRTTIMESPEC pBirthTime)
    855858{
     
    873876
    874877    int rc = VINF_SUCCESS;
    875     if (!SetFileTime((HANDLE)File, pCreationTimeFT, pLastAccessTimeFT, pLastWriteTimeFT))
     878    if (!SetFileTime((HANDLE)RTFileToNative(hFile), pCreationTimeFT, pLastAccessTimeFT, pLastWriteTimeFT))
    876879    {
    877880        DWORD Err = GetLastError();
    878881        rc = RTErrConvertFromWin32(Err);
    879882        Log(("RTFileSetTimes(%RTfile, %p, %p, %p, %p): SetFileTime failed with lasterr %d (%Rrc)\n",
    880              File, pAccessTime, pModificationTime, pChangeTime, pBirthTime, Err, rc));
     883             hFile, pAccessTime, pModificationTime, pChangeTime, pBirthTime, Err, rc));
    881884    }
    882885    return rc;
     
    890893
    891894
    892 RTR3DECL(int) RTFileSetMode(RTFILE File, RTFMODE fMode)
     895RTR3DECL(int) RTFileSetMode(RTFILE hFile, RTFMODE fMode)
    893896{
    894897    /*
     
    900903
    901904    ULONG FileAttributes = (fMode & RTFS_DOS_MASK) >> RTFS_DOS_SHIFT;
    902     int Err = rtFileNativeSetAttributes((HANDLE)File, FileAttributes);
     905    int Err = rtFileNativeSetAttributes((HANDLE)hFile, FileAttributes);
    903906    if (Err != ERROR_SUCCESS)
    904907    {
    905908        int rc = RTErrConvertFromWin32(Err);
    906909        Log(("RTFileSetMode(%RTfile, %RTfmode): rtFileNativeSetAttributes (0x%08X) failed with err %d (%Rrc)\n",
    907              File, fMode, FileAttributes, Err, rc));
     910             hFile, fMode, FileAttributes, Err, rc));
    908911        return rc;
    909912    }
  • trunk/src/VBox/Runtime/r3/win/rtFileNativeSetAttributes-win.cpp

    r28800 r37596  
    6060
    6161    /** @todo resolve dynamically to avoid dragging in NtDll? */
    62     NTSTATUS Status = NtSetInformationFile(hFile,
     62    NTSTATUS Status = NtSetInformationFile(RTFileToNative(hFile),
    6363                                           &IoStatusBlock,
    6464                                           &Info,
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