2004-12-28 17:35:10 +00:00
|
|
|
#include <u.h>
|
|
|
|
|
#include <libc.h>
|
|
|
|
|
#include <mach.h>
|
|
|
|
|
#include "ureg386.h"
|
|
|
|
|
|
2005-01-23 22:33:04 +00:00
|
|
|
void
|
|
|
|
|
linux2ureg386(UregLinux386 *l, Ureg *u)
|
2004-12-28 17:35:10 +00:00
|
|
|
{
|
|
|
|
|
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;
|
2006-04-01 19:24:03 +00:00
|
|
|
u->trap = ~0; /* l->trapno; */
|
|
|
|
|
u->ecode = ~0; /* l->err; */
|
2004-12-28 17:35:10 +00:00
|
|
|
u->pc = l->eip;
|
|
|
|
|
u->cs = l->xcs;
|
|
|
|
|
u->flags = l->eflags;
|
|
|
|
|
u->sp = l->esp;
|
|
|
|
|
u->ss = l->xss;
|
|
|
|
|
}
|
2005-01-23 22:33:04 +00:00
|
|
|
|
|
|
|
|
void
|
|
|
|
|
ureg2linux386(Ureg *u, UregLinux386 *l)
|
|
|
|
|
{
|
|
|
|
|
l->edi = u->di;
|
|
|
|
|
l->esi = u->si;
|
|
|
|
|
l->ebp = u->bp;
|
|
|
|
|
l->esp = u->nsp;
|
|
|
|
|
l->ebx = u->bx;
|
|
|
|
|
l->edx = u->dx;
|
|
|
|
|
l->ecx = u->cx;
|
|
|
|
|
l->eax = u->ax;
|
|
|
|
|
l->xgs = u->gs;
|
|
|
|
|
l->xfs = u->fs;
|
|
|
|
|
l->xes = u->es;
|
|
|
|
|
l->xds = u->ds;
|
|
|
|
|
l->eip = u->pc;
|
|
|
|
|
l->xcs = u->cs;
|
|
|
|
|
l->eflags = u->flags;
|
|
|
|
|
l->esp = u->sp;
|
|
|
|
|
l->xss = u->ss;
|
|
|
|
|
}
|
|
|
|
|
|