aboutsummaryrefslogtreecommitdiff
path: root/src/gen-defs.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-11-16 18:14:33 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-11-16 18:14:33 -0500
commit952974e3eccaefc667466e8309e15a7fbb867326 (patch)
tree3388804ea0ca999a065103e0a1af92542a65cbfa /src/gen-defs.h
parent3eac009553c4ecee2840a1d56358e0bb6bb0bf45 (diff)
downloadseabios-hppa-952974e3eccaefc667466e8309e15a7fbb867326.zip
seabios-hppa-952974e3eccaefc667466e8309e15a7fbb867326.tar.gz
seabios-hppa-952974e3eccaefc667466e8309e15a7fbb867326.tar.bz2
Add tool for generating assembler offset definition file.
Replace __call16 hardcoded offsets with auto generated struct offsets. Also, load/save %ds register in __call16().
Diffstat (limited to 'src/gen-defs.h')
-rw-r--r--src/gen-defs.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gen-defs.h b/src/gen-defs.h
new file mode 100644
index 0000000..dabf64c
--- /dev/null
+++ b/src/gen-defs.h
@@ -0,0 +1,19 @@
+// Tool for building defintions accessible from assembler code. This
+// is based on code from the Linux Kernel.
+#ifndef __GEN_DEFS_H
+#define __GEN_DEFS_H
+
+
+#define DEFINE(sym, val) \
+ asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+
+#define BLANK() \
+ asm volatile("\n->" : : )
+
+#define OFFSET(sym, str, mem) \
+ DEFINE(sym, offsetof(struct str, mem))
+
+#define COMMENT(x) \
+ asm volatile("\n->#" x)
+
+#endif // gen-defs.h