summaryrefslogtreecommitdiff
path: root/scripts/extract-asm-offsets.sed
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 11:31:46 +0800
commite90b72ec3082588b296956730bd2930cf8d5d671 (patch)
tree36ff6916af9b4176ea5a9662219d11e721f0b691 /scripts/extract-asm-offsets.sed
parent1767d390fbf3d0c65389de46caf0b6d43ef3b6ad (diff)
downloadlume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.gz
lume-e90b72ec3082588b296956730bd2930cf8d5d671.tar.xz
refactor: promote new architecture to repository root
Archive the deprecated implementation under lume-legacy, make the new kernel the default root-level build, and update repository entry points without changing kernel behavior.
Diffstat (limited to 'scripts/extract-asm-offsets.sed')
-rw-r--r--scripts/extract-asm-offsets.sed18
1 files changed, 18 insertions, 0 deletions
diff --git a/scripts/extract-asm-offsets.sed b/scripts/extract-asm-offsets.sed
new file mode 100644
index 0000000..c97ec2c
--- /dev/null
+++ b/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;}