summaryrefslogtreecommitdiff
path: root/na/scripts/extract-asm-offsets.sed
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:24:56 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:24:56 +0800
commit1767d390fbf3d0c65389de46caf0b6d43ef3b6ad (patch)
tree0f5e01cd7c7a05abb6b1c7472d7f00f49caf02cc /na/scripts/extract-asm-offsets.sed
parent63dc025705f6533b91fb1a7d26e6ed864efd9900 (diff)
downloadlume-1767d390fbf3d0c65389de46caf0b6d43ef3b6ad.tar.gz
lume-1767d390fbf3d0c65389de46caf0b6d43ef3b6ad.tar.xz
feat: establish bootable new architecture checkpoint
Replace the compressed boot path with a relocatable higher-half RISC-V entry, expand memory and SMP support, and add the driver, TTY, VFS, exec, signal, syscall, initramfs, and self-test infrastructure needed for a bootable kernel checkpoint.
Diffstat (limited to 'na/scripts/extract-asm-offsets.sed')
-rw-r--r--na/scripts/extract-asm-offsets.sed18
1 files changed, 18 insertions, 0 deletions
diff --git a/na/scripts/extract-asm-offsets.sed b/na/scripts/extract-asm-offsets.sed
new file mode 100644
index 0000000..c97ec2c
--- /dev/null
+++ b/na/scripts/extract-asm-offsets.sed
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Extract `->SYM val COMMENT` markers emitted by inline asm in
+# asm-offsets.c into proper `#define SYM val /* COMMENT */` lines.
+# 1:1 with Linux scripts/Makefile.lib `sed-offsets`.
+#
+# Input : assembly source produced by `gcc -S asm-offsets.c` —
+# inline asm emits lines like
+# .ascii "->KERNEL_MAP_VIRT_ADDR 0 offsetof(...)"
+# Output : header fragment for include/generated/asm-offsets.h
+#
+# Step 1 unwraps the `.ascii "..."` directive so the actual payload
+# (starting with `->`) is exposed. Steps 2-4 then rewrite into a
+# proper #define.
+s:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:
+/^->/{s:->#\(.*\):/* \1 */:;
+ s:^->\([^ ]*\) [\$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:;
+ s:->::;
+ p;}