2017-10-09 13:52:26 +01:00
|
|
|
|
// /***************************************************************************
|
2020-02-27 12:31:25 +00:00
|
|
|
|
// Aaru Data Preservation Suite
|
2017-10-09 13:52:26 +01:00
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
//
|
|
|
|
|
|
// Filename : RRIP.cs
|
|
|
|
|
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
|
|
|
|
|
//
|
2017-12-19 03:50:57 +00:00
|
|
|
|
// Component : ISO9660 filesystem plugin.
|
2017-10-09 13:52:26 +01:00
|
|
|
|
//
|
|
|
|
|
|
// --[ Description ] ----------------------------------------------------------
|
|
|
|
|
|
//
|
2017-12-19 03:50:57 +00:00
|
|
|
|
// RRIP extensions constants and enumerations.
|
2017-10-09 13:52:26 +01:00
|
|
|
|
//
|
|
|
|
|
|
// --[ 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
//
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
2022-02-18 10:02:53 +00:00
|
|
|
|
// Copyright © 2011-2022 Natalia Portillo
|
2019-07-31 20:19:22 +01:00
|
|
|
|
// In the loving memory of Facunda "Tata" Suárez Domínguez, R.I.P. 2019/07/24
|
2017-10-09 13:52:26 +01:00
|
|
|
|
// ****************************************************************************/
|
2017-12-19 19:33:46 +00:00
|
|
|
|
|
2020-07-20 07:47:12 +01:00
|
|
|
|
// ReSharper disable UnusedMember.Local
|
|
|
|
|
|
|
2022-03-07 07:36:44 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
|
2022-11-15 15:58:43 +00:00
|
|
|
|
namespace Aaru.Filesystems;
|
|
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
public sealed partial class ISO9660
|
2017-10-09 13:52:26 +01:00
|
|
|
|
{
|
2022-03-06 13:29:38 +00:00
|
|
|
|
const ushort RRIP_MAGIC = 0x5252; // "RR"
|
|
|
|
|
|
const ushort RRIP_POSIX_ATTRIBUTES = 0x5058; // "PX"
|
|
|
|
|
|
const ushort RRIP_POSIX_DEV_NO = 0x504E; // "PN"
|
|
|
|
|
|
const ushort RRIP_SYMLINK = 0x534C; // "SL"
|
|
|
|
|
|
const ushort RRIP_NAME = 0x4E4D; // "NM"
|
|
|
|
|
|
const ushort RRIP_CHILDLINK = 0x434C; // "CL"
|
|
|
|
|
|
const ushort RRIP_PARENTLINK = 0x504C; // "PL"
|
|
|
|
|
|
const ushort RRIP_RELOCATED_DIR = 0x5245; // "RE"
|
|
|
|
|
|
const ushort RRIP_TIMESTAMPS = 0x5446; // "TF"
|
|
|
|
|
|
const ushort RRIP_SPARSE = 0x5346; // "SF"
|
2017-10-09 13:52:26 +01:00
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
|
enum PosixMode : uint
|
|
|
|
|
|
{
|
2022-11-15 15:58:43 +00:00
|
|
|
|
OwnerRead = 0x0100, OwnerWrite = 0x0080, OwnerExecute = 0x0040,
|
|
|
|
|
|
GroupRead = 0x0020, GroupWrite = 0x0010, GroupExecute = 0x0008,
|
|
|
|
|
|
OtherRead = 0x0004, OtherWrite = 0x0002, OtherExecute = 0x0001,
|
|
|
|
|
|
SetUID = 0x0800, SetGid = 0x0400, IsVTX = 0x0200,
|
|
|
|
|
|
Socket = 0xC000, Symlink = 0xA000, Regular = 0x8000,
|
|
|
|
|
|
Block = 0x6000, Character = 0x2000, Directory = 0x4000,
|
|
|
|
|
|
Pipe = 0x1000
|
2022-03-06 13:29:38 +00:00
|
|
|
|
}
|
2017-10-09 13:52:26 +01:00
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
|
enum SymlinkFlags : byte
|
|
|
|
|
|
{
|
|
|
|
|
|
Continue = 1
|
|
|
|
|
|
}
|
2017-10-09 13:52:26 +01:00
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
|
enum SymlinkComponentFlags : byte
|
|
|
|
|
|
{
|
2022-11-15 15:58:43 +00:00
|
|
|
|
Continue = 1, Current = 2, Parent = 4,
|
|
|
|
|
|
Root = 8, Mountpoint = 16, Networkname = 32
|
2022-03-06 13:29:38 +00:00
|
|
|
|
}
|
2017-10-09 13:52:26 +01:00
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
|
enum AlternateNameFlags : byte
|
|
|
|
|
|
{
|
2022-11-15 15:58:43 +00:00
|
|
|
|
Continue = 1, Current = 2, Parent = 4,
|
2022-03-06 13:29:38 +00:00
|
|
|
|
Networkname = 32
|
|
|
|
|
|
}
|
2017-10-09 13:52:26 +01:00
|
|
|
|
|
2022-03-06 13:29:38 +00:00
|
|
|
|
[Flags]
|
|
|
|
|
|
enum TimestampFlags : byte
|
|
|
|
|
|
{
|
2022-11-15 15:58:43 +00:00
|
|
|
|
Creation = 1 << 0, Modification = 1 << 1, Access = 1 << 2,
|
|
|
|
|
|
AttributeChange = 1 << 3, Backup = 1 << 4, Expiration = 1 << 5,
|
|
|
|
|
|
Effective = 1 << 6, LongFormat = 1 << 7
|
2017-10-09 13:52:26 +01:00
|
|
|
|
}
|
2017-12-19 20:33:03 +00:00
|
|
|
|
}
|