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
{
	ulong	ebx;
	ulong	ecx;
	ulong	edx;
	ulong	esi;
	ulong	edi;
	ulong	ebp;
	ulong	eax;
	ulong	xds;
	ulong	xes;
	ulong	xfs;
	ulong	xgs;
	ulong	origeax;
	ulong	eip;
	ulong	xcs;
	ulong	eflags;
	ulong	esp;
	ulong	xss;
};

Ureg *_linux2ureg386(UregLinux386*);

