aboutsummaryrefslogtreecommitdiffstats
path: root/tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h')
-rw-r--r--tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h b/tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h
new file mode 100644
index 000000000..dd3a820ff
--- /dev/null
+++ b/tests/zfs-tests/cmd/linux_dos_attributes/dos_attributes.h
@@ -0,0 +1,82 @@
+// 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");