diff options
| author | 2025-10-19 08:09:09 +0200 | |
|---|---|---|
| committer | 2025-10-19 08:09:09 +0200 | |
| commit | dea8fd171acb54b6d9685422d5e391fb55074008 (patch) | |
| tree | 2c149892f35c5183c9b2a1da4ab437228dc432ef /obj/obj.h | |
| parent | 3437945692f2b87883a4f066473c9deed50f25f5 (diff) | |
Organize source files into directories
Diffstat (limited to 'obj/obj.h')
| -rw-r--r-- | obj/obj.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/obj/obj.h b/obj/obj.h new file mode 100644 index 0000000..235ab4d --- /dev/null +++ b/obj/obj.h @@ -0,0 +1,30 @@ +#include "../common.h" + +extern struct objfile { + const char *infile, *outfile; + uchar *textbegin, *textend; + uchar *code; + uchar dataalign, rodataalign, bssalign; + uint nbss; + vec_of(uchar) data, rodata; +} objout; + +enum relockind { + REL_ABS64, + REL_ABS32, + REL_ABS32S, + REL_PCREL32, + REL_PLT32, + REL_GOTPCRELX, + REL_GOTPCRELX_REX, + NRELOCKIND, +}; +enum section { Snone, Stext, Srodata, Sdata, Sbss }; + +void objini(const char *infile, const char *outfile); +void objdeffunc(const char *nam, bool globl, uint off, uint siz); +uint objnewdat(const char *name, enum section, bool globl, uint siz, uint align); +void objreloc(const char *sym, enum relockind, enum section, uint off, vlong addend); +void objfini(void); + +/* vim:set ts=3 sw=3 expandtab: */ |