Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <mach.h>
4 #include "ureg386.h"
6 void
7 linux2ureg386(UregLinux386 *l, Ureg *u)
8 {
9 u->di = l->edi;
10 u->si = l->esi;
11 u->bp = l->ebp;
12 u->nsp = l->esp;
13 u->bx = l->ebx;
14 u->dx = l->edx;
15 u->cx = l->ecx;
16 u->ax = l->eax;
17 u->gs = l->xgs;
18 u->fs = l->xfs;
19 u->es = l->xes;
20 u->ds = l->xds;
21 u->trap = ~0; /* l->trapno; */
22 u->ecode = ~0; /* l->err; */
23 u->pc = l->eip;
24 u->cs = l->xcs;
25 u->flags = l->eflags;
26 u->sp = l->esp;
27 u->ss = l->xss;
28 }
30 void
31 ureg2linux386(Ureg *u, UregLinux386 *l)
32 {
33 l->edi = u->di;
34 l->esi = u->si;
35 l->ebp = u->bp;
36 l->esp = u->nsp;
37 l->ebx = u->bx;
38 l->edx = u->dx;
39 l->ecx = u->cx;
40 l->eax = u->ax;
41 l->xgs = u->gs;
42 l->xfs = u->fs;
43 l->xes = u->es;
44 l->xds = u->ds;
45 l->eip = u->pc;
46 l->xcs = u->cs;
47 l->eflags = u->flags;
48 l->esp = u->sp;
49 l->xss = u->ss;
50 }