// /*************************************************************************** // The Disc Image Chef // ---------------------------------------------------------------------------- // // Filename : AppleHFS.cs // Author(s) : Natalia Portillo // // Component : Apple Hierarchical File System plugin. // // --[ Description ] ---------------------------------------------------------- // // Identifies the Apple Hierarchical File System and shows information. // // --[ License ] -------------------------------------------------------------- // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, see . // // ---------------------------------------------------------------------------- // Copyright © 2011-2020 Natalia Portillo // ****************************************************************************/ using System; namespace DiscImageChef.Filesystems { // Information from Inside Macintosh // https://developer.apple.com/legacy/library/documentation/mac/pdf/Files/File_Manager.pdf internal static partial class AppleCommon { [Flags] internal enum VolumeAttributes : ushort { HardwareLock = 0x80, Unmounted = 0x100, SparedBadBlocks = 0x200, DoesNotNeedCache = 0x400, BootInconsistent = 0x800, ReusedIds = 0x1000, Journaled = 0x2000, Inconsistent = 0x4000, SoftwareLock = 0x8000 } [Flags] internal enum FinderFlags : ushort { /// Is on desktop. kIsOnDesk = 0x0001, /// Color mask. kColor = 0x000E, kRequireSwitchLaunch = 0x0020, /// If clear, the application needs to write to its resource fork, and therefore cannot be shared on a server. kIsShared = 0x0040, /// Extension or control panel with no INIT entries in resource fork. kHasNoINITs = 0x0080, /// /// Clear if the file contains desktop database resources ('BNDL', 'FREF', 'open', 'kind'...) that have not been /// added yet. Set only by the Finder. Reserved for folders - make sure this bit is cleared for folders. /// kHasBeenInited = 0x0100, /// PowerTalk kAOCE = 0x200, kChanged = 0x0200, /// Has a custom icon in the resource fork. kHasCustomIcon = 0x0400, /// Is a stationery. kIsStationery = 0x0800, /// Cannot be renamed. kNameLocked = 0x1000, /// Indicates that a file has a BNDL resource or that a folder is displayed as a package. kHasBundle = 0x2000, /// Hidden. kIsInvisible = 0x4000, /// Is an alias kIsAlias = 0x8000 } internal enum FinderFolder : short { fTrash = -3, fDesktop = -2, fDisk = 0 } } }