zfs/tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h

83 lines
2.1 KiB
C

// SPDX-License-Identifier: 0BSD
#include <inttypes.h>
#define U_APPEND_SHORT "uappnd"
#define U_APPEND_FULL "uappend"
#define SU_APPEND_SHORT "sappnd"
#define SU_APPEND_FULL "sappend"
#define U_ARCH_SHORT "uarch"
#define U_ARCH_FULL "uarchive"
#define SU_ARCH_SHORT "arch"
#define SU_ARCH_FULL "archived"
#define U_HIDDEN_SHORT "hidden"
#define U_HIDDEN_FULL "uhidden"
#define SU_IMMUTABLE_FULL "simmutable"
#define SU_IMMUTABLE_SHORT "schange"
#define SU_IMMUTABLE "schg"
#define U_IMMUTABLE_FULL "uimmutable"
#define U_IMMUTABLE_SHORT "uchange"
#define U_IMMUTABLE "uchg"
#define SU_NODUMP "nodump"
#define UNSET_NODUMP "dump"
#define U_UNLINK_SHORT "uunlnk"
#define U_UNLINK_FULL "uunlink"
#define SU_UNLINK_SHORT "sunlnk"
#define SU_UNLINK_FULL "sunlink"
#define U_OFFLINE_SHORT "offline"
#define U_OFFLINE_FULL "uoffline"
#define U_RDONLY "rdonly"
#define U_RDONLY_SHORT "urdonly"
#define U_RDONLY_FULL "readonly"
#define U_REPARSE_SHORT "reparse"
#define U_REPARSE_FULL "ureparse"
#define U_SPARSE_SHORT "sparse"
#define U_SPARSE_FULL "usparse"
#define U_SYSTEM_SHORT "system"
#define U_SYSTEM_FULL "usystem"
static const uint64_t all_dos_attributes[] = {
ZFS_ARCHIVE,
ZFS_APPENDONLY,
ZFS_IMMUTABLE,
ZFS_NOUNLINK,
ZFS_NODUMP,
ZFS_HIDDEN,
ZFS_OFFLINE,
ZFS_READONLY,
ZFS_SPARSE,
ZFS_SYSTEM,
ZFS_REPARSE,
};
static const char *const all_dos_attribute_names[][7] = {
{U_ARCH_SHORT, U_ARCH_FULL, SU_ARCH_SHORT, SU_ARCH_FULL},
{U_APPEND_SHORT, U_APPEND_FULL, SU_APPEND_SHORT, SU_APPEND_FULL},
{SU_IMMUTABLE_FULL, SU_IMMUTABLE_SHORT, SU_IMMUTABLE,
U_IMMUTABLE_FULL, U_IMMUTABLE_SHORT, U_IMMUTABLE},
{U_UNLINK_SHORT, U_UNLINK_FULL, SU_UNLINK_FULL, SU_UNLINK_SHORT},
{SU_NODUMP, /* UNSET_NODUMP */},
{U_HIDDEN_SHORT, U_HIDDEN_FULL},
{U_OFFLINE_SHORT, U_OFFLINE_FULL},
{U_RDONLY, U_RDONLY_SHORT, U_RDONLY_FULL},
{U_SPARSE_SHORT, U_SPARSE_FULL},
{U_SYSTEM_SHORT, U_SYSTEM_FULL},
{U_REPARSE_SHORT, U_REPARSE_FULL},
};
_Static_assert(
ARRAY_SIZE(all_dos_attributes) == ARRAY_SIZE(all_dos_attribute_names),
"attribute list length mismatch");