rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 1 | #include <u.h> |
| 2 | #include <libc.h> |
| 3 | #include <mach.h> |
rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 4 | #include "ureg386.h" |
| 5 | |
rsc | dd944ec | 2005-01-23 22:33:04 +0000 | [diff] [blame] | 6 | void |
| 7 | linux2ureg386(UregLinux386 *l, Ureg *u) |
rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 8 | { |
rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 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; |
rsc | cbeb0b2 | 2006-04-01 19:24:03 +0000 | [diff] [blame] | 21 | u->trap = ~0; /* l->trapno; */ |
| 22 | u->ecode = ~0; /* l->err; */ |
rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 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; |
rsc | 1369ede | 2004-12-28 17:35:10 +0000 | [diff] [blame] | 28 | } |
rsc | dd944ec | 2005-01-23 22:33:04 +0000 | [diff] [blame] | 29 | |
| 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 | } |
| 51 | |