Changeset 66762 in vbox for trunk/src/VBox/Runtime/common/fs
- Timestamp:
- May 3, 2017 10:20:16 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115174
- Location:
- trunk/src/VBox/Runtime/common/fs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/fs/fatvfs.cpp
r66742 r66762 51 51 #include <iprt/zero.h> 52 52 #include <iprt/formats/fat.h> 53 54 #include "internal/fs.h" 53 55 54 56 … … 1458 1460 pObj->offEntryInDir = offEntryInDir; 1459 1461 pObj->fAttrib = ((RTFMODE)pDirEntry->fAttrib << RTFS_DOS_SHIFT) & RTFS_DOS_MASK_OS2; 1462 pObj->fAttrib = rtFsModeFromDos(pObj->fAttrib, (char *)&pDirEntry->achName[0], sizeof(pDirEntry->achName), 0); 1460 1463 pObj->cbObject = pDirEntry->cbFile; 1461 1464 pObj->fMaybeDirtyFat = false; … … 3481 3484 3482 3485 /** 3486 * @interface_method_impl{RTVFSDIROPS,pfnQueryEntryInfo} 3487 */ 3488 static DECLCALLBACK(int) rtFsFatDir_QueryEntryInfo(void *pvThis, const char *pszEntry, 3489 PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttr) 3490 { 3491 /* 3492 * Try locate the entry. 3493 */ 3494 PRTFSFATDIR pThis = (PRTFSFATDIR)pvThis; 3495 uint32_t offEntryInDir; 3496 bool fLong; 3497 FATDIRENTRY DirEntry; 3498 int rc = rtFsFatDir_FindEntry(pThis, pszEntry, &offEntryInDir, &fLong, &DirEntry); 3499 Log2(("rtFsFatDir_QueryEntryInfo: FindEntry(,%s,) -> %Rrc\n", pszEntry, rc)); 3500 if (RT_SUCCESS(rc)) 3501 { 3502 /* 3503 * To avoid duplicating code in rtFsFatObj_InitFromDirRec and 3504 * rtFsFatObj_QueryInfo, we create a dummy RTFSFATOBJ on the stack. 3505 */ 3506 RTFSFATOBJ TmpObj; 3507 RT_ZERO(TmpObj); 3508 rtFsFatObj_InitFromDirEntry(&TmpObj, &DirEntry, offEntryInDir, pThis->Core.pVol); 3509 rc = rtFsFatObj_QueryInfo(&TmpObj, pObjInfo, enmAddAttr); 3510 } 3511 return rc; 3512 } 3513 3514 3515 /** 3483 3516 * @interface_method_impl{RTVFSDIROPS,pfnUnlinkEntry} 3484 3517 */ … … 3486 3519 { 3487 3520 RT_NOREF(pvThis, pszEntry, fType); 3521 RTAssertMsg2("%s: %s\n", __FUNCTION__, pszEntry); 3522 return VERR_NOT_IMPLEMENTED; 3523 } 3524 3525 3526 /** 3527 * @interface_method_impl{RTVFSDIROPS,pfnRenameEntry} 3528 */ 3529 static DECLCALLBACK(int) rtFsFatDir_RenameEntry(void *pvThis, const char *pszEntry, RTFMODE fType, const char *pszNewName) 3530 { 3531 RT_NOREF(pvThis, pszEntry, fType, pszNewName); 3488 3532 RTAssertMsg2("%s: %s\n", __FUNCTION__, pszEntry); 3489 3533 return VERR_NOT_IMPLEMENTED; … … 3543 3587 rtFsFatDir_OpenSymlink, 3544 3588 rtFsFatDir_CreateSymlink, 3589 rtFsFatDir_QueryEntryInfo, 3545 3590 rtFsFatDir_UnlinkEntry, 3591 rtFsFatDir_RenameEntry, 3546 3592 rtFsFatDir_RewindDir, 3547 3593 rtFsFatDir_ReadDir, … … 3664 3710 rtFsFatObj_InitFromDirEntry(&pNewDir->Core, pDirEntry, offEntryInDir, pThis); 3665 3711 else 3666 rtFsFatObj_InitDummy(&pNewDir->Core, cbDir, RTFS_ DOS_DIRECTORY, pThis);3712 rtFsFatObj_InitDummy(&pNewDir->Core, cbDir, RTFS_TYPE_DIRECTORY | RTFS_DOS_DIRECTORY | RTFS_UNIX_ALL_PERMS, pThis); 3667 3713 3668 3714 pNewDir->hVfsSelf = *phVfsDir; -
trunk/src/VBox/Runtime/common/fs/iso9660vfs.cpp
r66742 r66762 937 937 */ 938 938 static DECLCALLBACK(int) rtFsIso9660Dir_CreateSymlink(void *pvThis, const char *pszSymlink, const char *pszTarget, 939 RTSYMLINKTYPE enmType, PRTVFSSYMLINK phVfsSymlink)939 RTSYMLINKTYPE enmType, PRTVFSSYMLINK phVfsSymlink) 940 940 { 941 941 RT_NOREF(pvThis, pszSymlink, pszTarget, enmType, phVfsSymlink); … … 945 945 946 946 /** 947 * @interface_method_impl{RTVFSDIROPS,pfnQueryEntryInfo} 948 */ 949 static DECLCALLBACK(int) rtFsIso9660Dir_QueryEntryInfo(void *pvThis, const char *pszEntry, 950 PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttr) 951 { 952 /* 953 * Try locate the entry. 954 */ 955 PRTFSISO9660DIR pThis = (PRTFSISO9660DIR)pvThis; 956 PCISO9660DIRREC pDirRec; 957 uint64_t offDirRec; 958 uint32_t cDirRecs; 959 RTFMODE fMode; 960 int rc = rtFsIso9660Dir_FindEntry(pThis, pszEntry, &offDirRec, &pDirRec, &cDirRecs, &fMode); 961 Log2(("rtFsIso9660Dir_QueryEntryInfo: FindEntry(,%s,) -> %Rrc\n", pszEntry, rc)); 962 if (RT_SUCCESS(rc)) 963 { 964 /* 965 * To avoid duplicating code in rtFsIso9660Obj_InitFromDirRec and 966 * rtFsIso9660Obj_QueryInfo, we create a dummy RTFSISO9660OBJ on the stack. 967 */ 968 RTFSISO9660OBJ TmpObj; 969 RT_ZERO(TmpObj); 970 rtFsIso9660Obj_InitFromDirRec(&TmpObj, pDirRec, cDirRecs, offDirRec, pThis->Core.pVol); 971 rc = rtFsIso9660Obj_QueryInfo(&TmpObj, pObjInfo, enmAddAttr); 972 } 973 return rc; 974 } 975 976 977 /** 947 978 * @interface_method_impl{RTVFSDIROPS,pfnUnlinkEntry} 948 979 */ … … 950 981 { 951 982 RT_NOREF(pvThis, pszEntry, fType); 983 return VERR_WRITE_PROTECT; 984 } 985 986 987 /** 988 * @interface_method_impl{RTVFSDIROPS,pfnRenameEntry} 989 */ 990 static DECLCALLBACK(int) rtFsIso9660Dir_RenameEntry(void *pvThis, const char *pszEntry, RTFMODE fType, const char *pszNewName) 991 { 992 RT_NOREF(pvThis, pszEntry, fType, pszNewName); 952 993 return VERR_WRITE_PROTECT; 953 994 } … … 1006 1047 rtFsIso9660Dir_OpenSymlink, 1007 1048 rtFsIso9660Dir_CreateSymlink, 1049 rtFsIso9660Dir_QueryEntryInfo, 1008 1050 rtFsIso9660Dir_UnlinkEntry, 1051 rtFsIso9660Dir_RenameEntry, 1009 1052 rtFsIso9660Dir_RewindDir, 1010 1053 rtFsIso9660Dir_ReadDir,
Note:
See TracChangeset
for help on using the changeset viewer.