VirtualBox

Changeset 67328 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Jun 9, 2017 9:43:30 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116041
Message:

IPRT: More ISO maker code.

File:
1 edited

Legend:

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

    r67327 r67328  
    206206    uint64_t                INode;
    207207
     208    /** The offset of the directory entry in the parent directory. */
     209    uint32_t                offDirRec;
    208210    /** Size of the directory record (ISO-9660).
    209211     * This is set when the image is being finalized. */
     
    17311733            pName->cHardlinks           = 1;
    17321734            pName->INode                = pObj->idxObj;
     1735            pName->offDirRec            = UINT32_MAX;
    17331736            pName->cbDirRec             = 0;
    17341737
     
    27812784 * @param   pName           The directory entry to finalize.
    27822785 * @param   offInDir        The offset in the directory of this record.
    2783  * @param   fIsRoot         Indicates whether this is the root and would
    2784  *                          therefore require more rock ridge fun and stuff.
     2786 * @param   uRootRockRidge  This is the rock ridge level when
     2787 *                          root, otherwise it's zero.
    27852788 */
    27862789static int rtFsIsoMakerFinalizeIsoDirectoryEntry(PRTFSISOMAKERFINALIZEDDIRS pFinalizedDirs, PRTFSISOMAKERNAME pName,
    2787                                                  uint32_t offInDir, bool fIsRoot)
    2788 {
    2789     RT_NOREF(pFinalizedDirs, pName, offInDir, fIsRoot);
    2790     return VERR_NOT_IMPLEMENTED;
     2790                                                 uint32_t offInDir, uint8_t uRootRockRidge)
     2791{
     2792    pName->offDirRec = offInDir;
     2793
     2794    size_t cbDirRec  = RT_UOFFSETOF(ISO9660DIRREC, achFileId) + pName->cbNameInDirRec + !(pName->cbNameInDirRec & 1);
     2795    AssertReturn(cbDirRec <= UINT8_MAX, VERR_FILENAME_TOO_LONG);
     2796    pName->cbDirRec  = (uint8_t)cbDirRec;
     2797
     2798    /** @todo rock ridge    */
     2799    if (pFinalizedDirs->pRRSpillFile)
     2800    {
     2801        RT_NOREF(uRootRockRidge);
     2802    }
     2803
     2804    return VINF_SUCCESS;
    27912805}
    27922806
     
    28092823    pFinalizedDirs->offDirs = *poffData;
    28102824
    2811     /* Reset the rock ridge spill file, in case we someone are finalized multiple times. */
     2825    /*
     2826     * Reset the rock ridge spill file, in case we someone are finalized multiple times.
     2827     */
    28122828    if (pFinalizedDirs->pRRSpillFile)
    28132829    {
    28142830        rtFsIsoMakerObjRemoveWorker(pThis, &pFinalizedDirs->pRRSpillFile->Core);
    28152831        pFinalizedDirs->pRRSpillFile = NULL;
     2832    }
     2833    if (pNamespace->fNamespace)
     2834    {
    28162835    }
    28172836
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