Files
zig-squashfs/inode.zig
T
Caleb Gardner 58e89c0981 Initial commit
2025-05-11 09:39:24 -05:00

51 lines
1.0 KiB
Zig

pub const InodeRef = packed struct {
_: u16,
block_start: u32,
offset: u16,
};
const InodeType = enum(u16) {
dir = 1,
file,
symlink,
block_device,
char_device,
fifo,
socket,
ext_dir,
ext_file,
ext_symlink,
ext_block_device,
ext_char_device,
ext_fifo,
ext_socket,
};
pub const InodeHeader = packed struct {
inode_type: InodeType,
perm: u16,
uid_index: u16,
gid_index: u16,
mod_time: u32,
inode_num: u32,
};
const itypes = @import("inode_types.zig");
const InodeData = union(enum) {
dir: itypes.DirInode,
file: itypes.FileInode,
symlink: itypes.SymlinkInode,
block_device: itypes.DeviceInode,
char_device: itypes.DeviceInode,
fifo: itypes.FifoInode,
socket: itypes.FifoInode,
ext_dir: itypes.ExtDirInode,
ext_file: itypes.ExtFileInode,
ext_symlink: itypes.ExtSymlinkInode,
ext_block_device: itypes.ExtDeviceInode,
ext_char_device: itypes.ExtDeviceInode,
ext_fifo: itypes.ExtFifoInode,
ext_socket: itypes.ExtFifoInode,
};