Some combined cleaning up and arch-abstraction, involving UME and start-up:
- removed some assumptions that arch==x86 in Makefile.am files
- removed ume_arch.h; moved its contents into ume.h. There was no need for
these to be separate.
- moved ume_go.c into an x86/ subdir; gave it the more meaningful name
jmp_with_stack.c in the process (the corresponding function also got the name
change)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2757 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/ume.h b/coregrind/ume.h
index 1d7cef9..76f4ef5 100644
--- a/coregrind/ume.h
+++ b/coregrind/ume.h
@@ -44,10 +44,6 @@
int maj, int min, int ino, void* extra),
void* extra);
-/*------------------------------------------------------------*/
-/*--- Loading ELF files ---*/
-/*------------------------------------------------------------*/
-
#if ELFSZ == 64
#define ESZ(x) Elf64_##x
#elif ELFSZ == 32
@@ -59,6 +55,20 @@
/* Integer type the same size as a pointer */
typedef ESZ(Addr) addr_t;
+extern void *ume_exec_esp; /* esp on entry at exec time */
+
+// Jump to a new 'ip' with the stack 'sp'.
+void jmp_with_stack(addr_t ip, addr_t sp) __attribute__((noreturn));
+
+void foreach_map(int (*fn)(char *start, char *end,
+ const char *perm, off_t offset,
+ int maj, int min, int ino, void* extra),
+ void* extra);
+
+/*------------------------------------------------------------*/
+/*--- Loading ELF files ---*/
+/*------------------------------------------------------------*/
+
// Info needed to load and run a program. IN/INOUT/OUT refers to the
// inputs/outputs of do_exec().
struct exeinfo