diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2008-11-16 18:14:33 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2008-11-16 18:14:33 -0500 |
commit | 952974e3eccaefc667466e8309e15a7fbb867326 (patch) | |
tree | 3388804ea0ca999a065103e0a1af92542a65cbfa /src/gen-defs.h | |
parent | 3eac009553c4ecee2840a1d56358e0bb6bb0bf45 (diff) | |
download | seabios-952974e3eccaefc667466e8309e15a7fbb867326.tar.gz |
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.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gen-defs.h b/src/gen-defs.h new file mode 100644 index 00000000..dabf64cd --- /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 |