From fc00c656c96528112d05cf0edf8631bd5eaea446 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 20:10:31 +0100 Subject: Add build system scaffolding and libc headers --- include/arch/x86_64/linux/romfs_fs.h | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 include/arch/x86_64/linux/romfs_fs.h (limited to 'include/arch/x86_64/linux/romfs_fs.h') diff --git a/include/arch/x86_64/linux/romfs_fs.h b/include/arch/x86_64/linux/romfs_fs.h new file mode 100644 index 00000000..7d9aeb24 --- /dev/null +++ b/include/arch/x86_64/linux/romfs_fs.h @@ -0,0 +1,60 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef __LINUX_ROMFS_FS_H +#define __LINUX_ROMFS_FS_H + +#include +#include + +/* The basic structures of the romfs filesystem */ + +#define ROMBSIZE BLOCK_SIZE +#define ROMBSBITS BLOCK_SIZE_BITS +#define ROMBMASK (ROMBSIZE - 1) +#define ROMFS_MAGIC 0x7275 + +#define ROMFS_MAXFN 128 + +#define __mkw(h, l) (((h) & 0x00ff) << 8 | ((l) & 0x00ff)) +#define __mkl(h, l) (((h) & 0xffff) << 16 | ((l) & 0xffff)) +#define __mk4(a, b, c, d) cpu_to_be32(__mkl(__mkw(a, b), __mkw(c, d))) +#define ROMSB_WORD0 __mk4('-', 'r', 'o', 'm') +#define ROMSB_WORD1 __mk4('1', 'f', 's', '-') + +/* On-disk "super block" */ + +struct romfs_super_block { + __be32 word0; + __be32 word1; + __be32 size; + __be32 checksum; + char name[]; /* volume name */ +}; + +/* On disk inode */ + +struct romfs_inode { + __be32 next; /* low 4 bits see ROMFH_ */ + __be32 spec; + __be32 size; + __be32 checksum; + char name[]; +}; + +#define ROMFH_TYPE 7 +#define ROMFH_HRD 0 +#define ROMFH_DIR 1 +#define ROMFH_REG 2 +#define ROMFH_SYM 3 +#define ROMFH_BLK 4 +#define ROMFH_CHR 5 +#define ROMFH_SCK 6 +#define ROMFH_FIF 7 +#define ROMFH_EXEC 8 + +/* Alignment */ + +#define ROMFH_SIZE 16 +#define ROMFH_PAD (ROMFH_SIZE - 1) +#define ROMFH_MASK (~ROMFH_PAD) + +#endif -- cgit v1.2.3