
;***	VPM.INC
;
;
;	Version 1.10, for src/dos/mvdm/vpm.inc, em86, mer.krnl, 960610.1
;
;	IBM/Microsoft Confidential
;
;	Copyright (c) IBM Corporation 1987, 1989
;	Copyright (c) Microsoft Corporation 1987, 1989
;
;	All Rights Reserved
;
;	Title:
;
;	DPMI host per task data
;
;	Description:
;
;	Contains the vpm definitions
;
;	Modification History:
;
;	03-12-96 Gil Pratte - Implementing feature 149002    * 149002 *
;	  Changed DPMI Version Number from 0.95 to 1.0	     * 149002 *
;
;	Gordon Kuo    02-24-96		       149007
;	Add vpmd_pav86exc to VPMD to handle the V86 Excepton Handler
;
;	Gordon Kuo    05-29-96		       153491
;	Dbase IV Check Version # to process its timer process
;
;

;DPMI_VERSION	EQU	0100h				      ;149002
DPMI_VERSION	EQU	005Fh		  ;Put back to 0.95	 153491

DefType LIDTS,df			;fword for lidt
DefType SELSWINFO,selswitchvdm_s

;***	VPMD - DPMI em86 per task data block
;
;	This is the em86 DPMI instance data for a task.
;	Note: there is one structure per dpmi start call in a VDM.
;

DefStruc ,vpmd_s
  PVOID	 vpmd_pavpmint		  ;Interrupt shadow table
  PVOID	 vpmd_pavpmexc		  ;Exception shadow table
  PVOID	 vpmd_pav86exc		  ;Exception shadow table  149007
  PVOID	 vpmd_pagateVPMIDT	  ;IDT base address
    SEL	   vpmd_selBIOSarea	   ;LDT selector for BIOS data area
    SEL	   vpmd_selVIDEOarea	   ;LDT selector for video data area
    ULONG  vpmd_flSaveVdmStatus	   ;VDM status flags for this client
    ULONG  vpmd_aulVPMCurrentState,,VSF_ALT_SIZE/4
    PVOID  vpmd_pVPMStack	   ;ptr to protect mode stack
    SEL	   vpmd_selVPMStack	   ;selector for PM "locked" stack
    ULONG  vpmd_cVPMStack	   ;usage count for PM stack
    SEL	   vpmd_selOldVPMSS	   ;sel before stack switch
    ULONG  vpmd_ulOldVPMESP	   ;offset before stack switch
    SELSWINFO vpmd_LDTswinfo	   ;Info for SELSwitchVdmLDT
  LIDTS	 vpmd_lidtVPMIDT	  ;limit/base of VDM prot mode IDT
    em86AssertDef VPMD		      ;assertion checking
EndStruc VPMD

DefType PVPMD,dd


VPMD_SIGNATURE	EQU	0444D5056h	;"VPMD"
