about summary refs log tree commit diff stats
path: root/src/include
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-02 10:47:22 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-02 10:47:22 +0100
commit26201d7e705714cd8ecca3fa28f51e819f9eb520 (patch)
treea53914e9b6b28285ed5ee1f22d7d2900f608faec /src/include
parent542a2a0775e5fe2921ce7893a9c1d77915a87bc4 (diff)
downloadbox64-26201d7e705714cd8ecca3fa28f51e819f9eb520.tar.gz
box64-26201d7e705714cd8ecca3fa28f51e819f9eb520.zip
More elf loader and parsing and stack preparing
Diffstat (limited to 'src/include')
-rwxr-xr-xsrc/include/box64stack.h17
-rwxr-xr-xsrc/include/elfloader.h4
2 files changed, 19 insertions, 2 deletions
diff --git a/src/include/box64stack.h b/src/include/box64stack.h
new file mode 100755
index 00000000..a6b00fea
--- /dev/null
+++ b/src/include/box64stack.h
@@ -0,0 +1,17 @@
+#ifndef __BOX64_STACK_H_
+#define __BOX64_STACK_H_
+
+#include <stdint.h>
+
+typedef struct box64context_s box64context_t;
+//typedef struct x64emu_s x64emu_t;
+
+int CalcStackSize(box64context_t *context);
+//void SetupInitialStack(x64emu_t *emu);
+
+//uint16_t Pop16(x64emu_t *emu);
+//void Push16(x64emu_t *emu, uint16_t v);
+//uint32_t Pop32(x64emu_t *emu);
+//void Push32(x64emu_t *emu, uint32_t v);
+
+#endif //__BOX64_STACK_H_
\ No newline at end of file
diff --git a/src/include/elfloader.h b/src/include/elfloader.h
index 2046865d..28ce4844 100755
--- a/src/include/elfloader.h
+++ b/src/include/elfloader.h
@@ -26,9 +26,9 @@ int LoadElfMemory(FILE* f, box64context_t* context, elfheader_t* head);
 int ReloadElfMemory(FILE* f, box64context_t* context, elfheader_t* head);
 //int RelocateElf(lib_t *maplib, lib_t* local_maplib, elfheader_t* head);
 //int RelocateElfPlt(lib_t *maplib, lib_t* local_maplib, elfheader_t* head);
-//void CalcStack(elfheader_t* h, uint32_t* stacksz, int* stackalign);
+void CalcStack(elfheader_t* h, uint32_t* stacksz, int* stackalign);
 //uintptr_t GetEntryPoint(lib_t* maplib, elfheader_t* h);
-//uintptr_t GetLastByte(elfheader_t* h);
+uintptr_t GetLastByte(elfheader_t* h);
 //void AddSymbols(lib_t *maplib, kh_mapsymbols_t* mapsymbols, kh_mapsymbols_t* weaksymbols, kh_mapsymbols_t* localsymbols, elfheader_t* h);
 //int LoadNeededLibs(elfheader_t* h, lib_t *maplib, needed_libs_t* neededlibs, int local, box64context_t *box86, x86emu_t* emu);
 //uintptr_t GetElfInit(elfheader_t* h);