VirtualBox

Changeset 69600 in vbox


Ignore:
Timestamp:
Nov 6, 2017 3:36:02 PM (7 years ago)
Author:
vboxsync
Message:

rtFsFatDir_CreateDir: imlemented, but untested

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/fs/fatvfs.cpp

    r69599 r69600  
    37073707static DECLCALLBACK(int) rtFsFatDir_CreateDir(void *pvThis, const char *pszSubDir, RTFMODE fMode, PRTVFSDIR phVfsDir)
    37083708{
    3709     RT_NOREF(pvThis, pszSubDir, fMode, phVfsDir);
    3710     return VERR_NOT_IMPLEMENTED;
     3709    PRTFSFATDIR     pThis   = (PRTFSFATDIR)pvThis;
     3710    PRTFSFATDIRSHRD pShared = pThis->pShared;
     3711    RT_NOREF(fMode);
     3712
     3713    /*
     3714     * Check if it already exists in any form.
     3715     */
     3716    uint32_t    offEntryInDir;
     3717    bool        fLong;
     3718    FATDIRENTRY DirEntry;
     3719    int rc = rtFsFatDirShrd_FindEntry(pShared, pszSubDir, &offEntryInDir, &fLong, &DirEntry);
     3720    if (rc != VERR_FILE_NOT_FOUND)
     3721        return RT_SUCCESS(rc) ? VERR_ALREADY_EXISTS : rc;
     3722
     3723    /*
     3724     * Okay, create it.
     3725     */
     3726    rc = rtFsFatDirShrd_CreateEntry(pShared, pszSubDir, FAT_ATTR_ARCHIVE | FAT_ATTR_DIRECTORY,
     3727                                    pShared->Core.pVol->cbCluster, &offEntryInDir, &DirEntry);
     3728    if (RT_SUCCESS(rc))
     3729        rc = rtFsFatDir_New(pShared->Core.pVol, pShared, &DirEntry, offEntryInDir,
     3730                            RTFSFAT_GET_CLUSTER(&DirEntry, pShared->Core.pVol), UINT64_MAX /*offDisk*/,
     3731                            DirEntry.cbFile, phVfsDir);
     3732    return rc;
    37113733}
    37123734
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette