/* $Header:loadall.h 12.0$ */
/* $ACIS:loadall.h 12.0$ */
/* $Source: /ibm/acis/usr/sys/pc_code/RCS/loadall.h,v $ */

#if !defined(lint) && !defined(LOCORE)	&& defined(RCS_HDRS)
static char *rcsidrb = "$Header:loadall.h 12.0$";
#endif

/*
 * $Header:loadall.h 12.0$
 * $ACIS:loadall.h 12.0$
 */

#define LOADALLAREA 0x00000800


/* --------------------------------------------- *
 * This is used for LOADALL descriptor registers *
 *   WARNING!	  WARNING!	  WARNING!	 *
 * DO NOT change the order of this structure	 *
 * --------------------------------------------- */
struct	LADES {

	u_short LoWord; 	/* low order address */
	char	HiByte; 	/* high order address */
	char	Access; 	/* access */
	u_short Limit;		/* limit */
};


/* --------------------------------------------- *
 * This is used for LOADALL GDT descriptor only  *
 *   WARNING!	  WARNING!	  WARNING!	 *
 * DO NOT change the order of this structure	 *
 * --------------------------------------------- */
struct	LAGDT {

	u_short gdt_LoWord;	/* low order address */
	char	gdt_HiByte;	/* high order address */
	char	gdt_Access;	/* access */
	u_short gdt_Limit;	/* limit */
};

/* -------------------------------------------- *
 *   WARNING!	  WARNING!	  WARNING!	*
 * DO NOT change the order of this structure	*
 * -------------------------------------------- */
struct	loadall_area {		/* At segment 0:800 */
	char	t_unused0[6];	/* unused */
	u_short t_msw;		/* 80286 status */
	char	t_unused1[14];	/* unused */
	u_short t_tr;		/* task register */
	u_short t_flags;	/* 80286 flags */
	u_short t_ip;		/* instruction pointer */
	u_short t_ldt;		/* ldt register */
	u_short t_ds;		/* ds register */
	u_short t_ss;		/* ss register */
	u_short t_cs;		/* cs register */
	u_short t_es;		/* es register */
	u_short t_di;		/* di register */
	u_short t_si;		/* si register */
	u_short t_bp;		/* bp register */
	u_short t_sp;		/* sp register */
	u_short t_bx;		/* bx register */
	u_short t_dx;		/* dx register */
	u_short t_cx;		/* cx register */
	u_short t_ax;		/* ax register */
	struct	LADES t_esdes;	/* es descriptor */
	struct	LADES t_csdes;	/* cs descriptor */
	struct	LADES t_ssdes;	/* ss descriptor */
	struct	LADES t_dsdes;	/* ds descriptor */
	struct	LAGDT t_gdtdes; /* gdt descriptor */
	struct	LADES t_ldtdes; /* ldt descriptor */
	struct	LADES t_idtdes; /* idt descriptor */
	struct	LADES t_tssdes; /* tss descriptor */
};

