From a8d6f8bf30c07edb775e56889f568ca20240bedf Mon Sep 17 00:00:00 2001 From: lemon Date: Tue, 17 Mar 2026 13:22:00 +0100 Subject: REFACTOR: move sources to src/ --- src/obj.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/obj.h (limited to 'src/obj.h') diff --git a/src/obj.h b/src/obj.h new file mode 100644 index 0000000..1982033 --- /dev/null +++ b/src/obj.h @@ -0,0 +1,36 @@ +#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, + REL_CALL26, + REL_ADR_PREL_LO21, + REL_ADR_PREL_PG_HI21, + REL_ADD_ABS_LO12_NC, + REL_LD_PREL_LO19, + NRELOCKIND, +}; +enum section { Snone, Stext, Srodata, Sdata, Sbss }; + +void objini(const char *infile, const char *outfile); +void objdeffunc(internstr nam, bool globl, uint off, uint siz); +enum section objhassym(internstr name, uint *off); +uint objnewdat(internstr name, enum section, bool globl, uint siz, uint align); +void objreloc(internstr sym, enum relockind, enum section, uint off, vlong addend); +void objfini(void); + +/* vim:set ts=3 sw=3 expandtab: */ -- cgit v1.2.3