Changeset 34031 in vbox for trunk/src/VBox/Runtime/common/vfs
- Timestamp:
- Nov 12, 2010 3:02:30 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67711
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/vfs/vfsbase.cpp
r34030 r34031 41 41 42 42 #include "internal/file.h" 43 #include "internal/fs.h" 43 44 #include "internal/magics.h" 44 45 //#include "internal/vfs.h" … … 351 352 RTVFSLOCKINTERNAL *pThis = hLock; 352 353 AssertPtrReturn(pThis, UINT32_MAX); 353 Assert PtrReturn(pThis->enmType > RTVFSLOCKTYPE_INVALID && pThis->enmType < RTVFSLOCKTYPE_END, UINT32_MAX);354 AssertReturn(pThis->enmType > RTVFSLOCKTYPE_INVALID && pThis->enmType < RTVFSLOCKTYPE_END, UINT32_MAX); 354 355 355 356 uint32_t cRefs = ASMAtomicIncU32(&pThis->cRefs); … … 396 397 RTVFSLOCKINTERNAL *pThis = hLock; 397 398 AssertPtrReturn(pThis, UINT32_MAX); 398 Assert PtrReturn(pThis->enmType > RTVFSLOCKTYPE_INVALID && pThis->enmType < RTVFSLOCKTYPE_END, UINT32_MAX);399 AssertReturn(pThis->enmType > RTVFSLOCKTYPE_INVALID && pThis->enmType < RTVFSLOCKTYPE_END, UINT32_MAX); 399 400 400 401 uint32_t cRefs = ASMAtomicDecU32(&pThis->cRefs); … … 1708 1709 1709 1710 1710 RTDECL(int) RTVfsSymlinkRead(RTVFSSYMLINK hVfsSym, char *pszTarget, size_t cbTarget) 1711 RTDECL(int) RTVfsSymlinkQueryInfo(RTVFSSYMLINK hVfsSym, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttr) 1712 { 1713 RTVFSSYMLINKINTERNAL *pThis = hVfsSym; 1714 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 1715 AssertReturn(pThis->uMagic == RTVFSSYMLINK_MAGIC, VERR_INVALID_HANDLE); 1716 return RTVfsObjQueryInfo(&pThis->Base, pObjInfo, enmAddAttr); 1717 } 1718 1719 1720 RTDECL(int) RTVfsSymlinkSetMode(RTVFSSYMLINK hVfsSym, RTFMODE fMode, RTFMODE fMask) 1721 { 1722 RTVFSSYMLINKINTERNAL *pThis = hVfsSym; 1723 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 1724 AssertReturn(pThis->uMagic == RTVFSSYMLINK_MAGIC, VERR_INVALID_HANDLE); 1725 1726 fMode = rtFsModeNormalize(fMode, NULL, 0); 1727 if (!rtFsModeIsValid(fMode)) 1728 return VERR_INVALID_PARAMETER; 1729 1730 RTVfsLockAcquireWrite(pThis->Base.hLock); 1731 int rc = pThis->pOps->ObjSet.pfnSetMode(pThis->Base.pvThis, fMode, fMask); 1732 RTVfsLockReleaseWrite(pThis->Base.hLock); 1733 return rc; 1734 } 1735 1736 1737 RTDECL(int) RTVfsSymlinkSetTimes(RTVFSSYMLINK hVfsSym, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime, 1738 PCRTTIMESPEC pChangeTime, PCRTTIMESPEC pBirthTime) 1739 { 1740 RTVFSSYMLINKINTERNAL *pThis = hVfsSym; 1741 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 1742 AssertReturn(pThis->uMagic == RTVFSSYMLINK_MAGIC, VERR_INVALID_HANDLE); 1743 1744 AssertPtrNullReturn(pAccessTime, VERR_INVALID_POINTER); 1745 AssertPtrNullReturn(pModificationTime, VERR_INVALID_POINTER); 1746 AssertPtrNullReturn(pChangeTime, VERR_INVALID_POINTER); 1747 AssertPtrNullReturn(pBirthTime, VERR_INVALID_POINTER); 1748 1749 RTVfsLockAcquireWrite(pThis->Base.hLock); 1750 int rc = pThis->pOps->ObjSet.pfnSetTimes(pThis->Base.pvThis, pAccessTime, pModificationTime, pChangeTime, pBirthTime); 1751 RTVfsLockReleaseWrite(pThis->Base.hLock); 1752 return rc; 1753 } 1754 1755 1756 RTDECL(int) RTVfsSymlinkSetOwner(RTVFSSYMLINK hVfsSym, RTUID uid, RTGID gid) 1757 { 1758 RTVFSSYMLINKINTERNAL *pThis = hVfsSym; 1759 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 1760 AssertReturn(pThis->uMagic == RTVFSSYMLINK_MAGIC, VERR_INVALID_HANDLE); 1761 1762 RTVfsLockAcquireWrite(pThis->Base.hLock); 1763 int rc = pThis->pOps->ObjSet.pfnSetOwner(pThis->Base.pvThis, uid, gid); 1764 RTVfsLockReleaseWrite(pThis->Base.hLock); 1765 return rc; 1766 } 1767 1768 1769 RTDECL(int) RTVfsSymlinkRead(RTVFSSYMLINK hVfsSym, char *pszTarget, size_t cbTarget) 1711 1770 { 1712 1771 RTVFSSYMLINKINTERNAL *pThis = hVfsSym; … … 2019 2078 2020 2079 2080 RTDECL(bool) RTVfsIoStrmIsAtEnd(RTVFSIOSTREAM hVfsIos) 2081 { 2082 /* 2083 * There is where the zero read behavior comes in handy. 2084 */ 2085 char bDummy; 2086 size_t cbRead; 2087 int rc = RTVfsIoStrmRead(hVfsIos, &bDummy, 0 /*cbToRead*/, false /*fBlocking*/, &cbRead); 2088 return rc == VINF_EOF; 2089 } 2090 2091 2092 2021 2093 2022 2094
Note:
See TracChangeset
for help on using the changeset viewer.