aboutsummaryrefslogtreecommitdiff
path: root/src/libmach/ureg386.h
blob: 9c4853d6822c027055fa9bd6ebf843d964cabb6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
typedef struct Ureg Ureg;
struct Ureg
{
	ulong	di;		/* general registers */
	ulong	si;		/* ... */
	ulong	bp;		/* ... */
	ulong	nsp;
	ulong	bx;		/* ... */
	ulong	dx;		/* ... */
	ulong	cx;		/* ... */
	ulong	ax;		/* ... */
	ulong	gs;		/* data segments */
	ulong	fs;		/* ... */
	ulong	es;		/* ... */
	ulong	ds;		/* ... */
	ulong	trap;		/* trap type */
	ulong	ecode;		/* error code (or zero) */
	ulong	pc;		/* pc */
	ulong	cs;		/* old context */
	ulong	flags;		/* old flags */
	ulong	sp;
	ulong	ss;		/* old stack segment */
};

typedef struct UregLinux386 UregLinux386;
struct UregLinux386
{
	u32int	ebx;
	u32int	ecx;
	u32int	edx;
	u32int	esi;
	u32int	edi;
	u32int	ebp;
	u32int	eax;
	u32int	xds;
	u32int	xes;
	u32int	xfs;
	u32int	xgs;
	u32int	origeax;
	u32int	eip;
	u32int	xcs;
	u32int	eflags;
	u32int	esp;
	u32int	xss;
};

void linux2ureg386(UregLinux386*, Ureg*);
void ureg2linux386(Ureg*, UregLinux386*);