aboutsummaryrefslogtreecommitdiff
path: root/hikari/fs/afs/constants.zig
diff options
context:
space:
mode:
Diffstat (limited to 'hikari/fs/afs/constants.zig')
-rw-r--r--hikari/fs/afs/constants.zig66
1 files changed, 66 insertions, 0 deletions
diff --git a/hikari/fs/afs/constants.zig b/hikari/fs/afs/constants.zig
new file mode 100644
index 0000000..892fef1
--- /dev/null
+++ b/hikari/fs/afs/constants.zig
@@ -0,0 +1,66 @@
+//! Hikari AFS Constants
+
+pub const signature: u64 = 0x2153464142494B41; // "AKIBAFS!"
+pub const version: u16 = 0x0001;
+
+pub const volume_header_cell: u64 = 0;
+pub const volume_header_size: u32 = 512;
+pub const alternate_volume_header_offset: u64 = 1024;
+
+pub const default_cell_size: u32 = 4096;
+pub const minimum_cell_size: u32 = 512;
+pub const maximum_cell_size: u32 = 65536;
+
+pub const max_identity_length: usize = 1024;
+
+pub const special_node_id_origin: u32 = 1;
+pub const special_node_id_origin_stack: u32 = 2;
+pub const special_node_id_span_overflow: u32 = 3;
+pub const special_node_id_index: u32 = 4;
+pub const special_node_id_attributes: u32 = 5;
+pub const special_node_id_allocation_map: u32 = 6;
+pub const special_node_id_startup: u32 = 7;
+pub const special_node_id_repair: u32 = 8;
+pub const first_user_node_id: u32 = 16;
+
+pub const index_record_type_stack: u16 = 0x0001;
+pub const index_record_type_unit: u16 = 0x0002;
+pub const index_record_type_stack_thread: u16 = 0x0003;
+pub const index_record_type_unit_thread: u16 = 0x0004;
+
+pub const btree_node_type_leaf: i8 = -1;
+pub const btree_node_type_index: i8 = 0;
+pub const btree_node_type_header: i8 = 1;
+pub const btree_node_type_map: i8 = 2;
+
+pub const btree_header_node_number: u32 = 0;
+
+pub const channel_data: u8 = 0x00;
+pub const channel_resource: u8 = 0xFF;
+
+pub const unit_flag_locked: u16 = 0x0001;
+pub const unit_flag_has_thread: u16 = 0x0002;
+pub const unit_flag_has_alias: u16 = 0x0004;
+pub const unit_flag_has_security: u16 = 0x0008;
+pub const unit_flag_has_twins: u16 = 0x0010;
+pub const unit_flag_has_resource_channel: u16 = 0x0020;
+
+pub const compression_none: u32 = 0;
+pub const compression_zlib: u32 = 1;
+pub const compression_lz4: u32 = 2;
+pub const compression_zstd: u32 = 3;
+
+pub const encryption_none: u32 = 0;
+pub const encryption_aes_128_xts: u32 = 1;
+pub const encryption_aes_256_xts: u32 = 2;
+
+pub const attribute_inline_data_max: u32 = 3802;
+
+pub const journal_signature: u32 = 0x4A4E524C; // "JNRL"
+pub const journal_header_size: u32 = 512;
+pub const journal_info_cell: u64 = 2;
+
+pub const journal_info_on_other_device: u32 = 0x00000001;
+pub const journal_info_needs_init: u32 = 0x00000002;
+
+pub const span_inline_count: usize = 8;