commit 1369edef9f26a5a127b60b1163564c2570d9a7d9 parent e2f52703c2387a34f7edc86845a0b15f04830bb8 Author: rsc <devnull@localhost> Date: Tue, 28 Dec 2004 17:35:10 +0000 move linux ureg code to portable file Diffstat:
M | src/libmach/mkfile | | | 1 | + |
A | src/libmach/ureg386.c | | | 36 | ++++++++++++++++++++++++++++++++++++ |
2 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/src/libmach/mkfile b/src/libmach/mkfile @@ -41,6 +41,7 @@ OFILES=\ symelf.$O\ symmacho.$O\ symstabs.$O\ + ureg386.$O\ HFILES=mach.h diff --git a/src/libmach/ureg386.c b/src/libmach/ureg386.c @@ -0,0 +1,36 @@ +#include <u.h> +#include <libc.h> +#include <mach.h> +#include <elf.h> +#include "ureg386.h" + + +Ureg* +_linux2ureg386(UregLinux386 *l) +{ + Ureg *u; + + u = malloc(sizeof(Ureg)); + if(u == nil) + return nil; + u->di = l->edi; + u->si = l->esi; + u->bp = l->ebp; + u->nsp = l->esp; + u->bx = l->ebx; + u->dx = l->edx; + u->cx = l->ecx; + u->ax = l->eax; + u->gs = l->xgs; + u->fs = l->xfs; + u->es = l->xes; + u->ds = l->xds; + u->trap = ~0; // l->trapno; + u->ecode = ~0; // l->err; + u->pc = l->eip; + u->cs = l->xcs; + u->flags = l->eflags; + u->sp = l->esp; + u->ss = l->xss; + return u; +}