;***	propp.inc - PRIVATE VDM properties definitions
;
;
;	IBM/Microsoft Confidential
;
;	Copyright (c) IBM Corporation 1987, 1989
;	Copyright (c) Microsoft Corporation 1987, 1989
;
;	All Rights Reserved
;
;	Title:
;	    Kernel VDM Properties private definitions
;
;	Modification History:
;	    03-Nov-1989 bens	Initial version.
;
;    -	002	3/22/91	  Mark Rogalski,   IBM
;	CP20 DCR 1360  Add DOS=HIGH support
;
;***********************************************************************;BN011
; 19Jun91 - G.L.Fulk							;BN011
; Add support for a DOS ONLY "FILES=" statement in CONFIG.SYS.		;BN011
;***********************************************************************;BN011
;
;


;***	VDMINITCONFIG - Sysinit_Create_DOS_Mode configuration structure
;
;	SysInit_Create_DOS_Mode passes this structure to VDMMInit at
;	initialization time to allow communication with the
;	nonfatal error handler thread.  To signal that a nonfatal error
;	has occurred, the following steps must be taken:
;
;	    1.  Fill pFailureBuf with a failure cause, if applicable.
;	    2.  Store the error code through pusErrorCode.
;	    3.  Set hsemErrHBusy.
;	    4.  Clear hsemBufEmpty.
;	    5.  Wait for hsemErrHBusy to clear.
;
;	When VDMMInit receives the structure, all pointers are still 16:16.
;	It is incumbent upon VDMMInit to convert non-semaphore pointers
;	before dereferencing them.
;

RMSIZE_DEFAULT	EQU	640
CFCBS_DEFAULT	EQU	16
CFCBS_NOCLOSE_DEFAULT	EQU	8


DefStruc ,vdminitconfig_s
    ULONG   ulcbFailureBuf ;Length of failure cause buffer in bytes
    PSZ	    pFailureBuf	   ;Failure cause buffer.  VDMMInit fills this
			    ;buffer with the failure cause before returning
			    ;(if the error was fatal) or signalling the
			    ;nonfatal error handler.
    PUSHORT pusErrorCode   ;If the error was nonfatal, the error code
			    ;is stored here before signalling the nonfatal
			    ;error handler.
    ULONG   hsemBufEmpty   ;Semaphore to clear when the failure cause
			    ;buffer has been loaded with information.
    ULONG   hsemErrHBusy   ;Semaphore to wait on to let the nonfatal error
			    ;handler do its thing.
EndStruc VDMINITCONFIG

DefType PVDMINITCONFIG,dd			;pVDMInitconfig



;***	VDMCONFIG - Configuration structure from SysInit to VDMMInit
;
;	SysInit passes information parsed out of CONFIG.SYS to MVDM
;	initialization.
;

DefStruc ,vdmconfig_s
    PSZ	    pszSHELL	   ;VDM shell pathname + arguments (excluding /C)
			    ;  whatever follows "SHELL=" in CONFIG.SYS
			    ;  if NULL, VDMM assumes "X:\COMMAND.COM /P"

    USHORT  usRMSIZE	   ;VDM size
			    ;  whatever follows "RMSIZE=" in CONFIG.SYS
			    ;  if ZERO, VDMM assumes RMSIZE_DEFAULT

    USHORT  nFCBs	   ;Maximum open FCBs
			    ;  whatever follows "FCBS=" in CONFIG.SYS
			    ;  if USHRT_MAX, VDMM assumes CFCBS_DEFAULT

    USHORT  nFCBsNoClose   ;Maximum uncloseable FCBs
			    ;  whatever follows "FCBS=n," in CONFIG.SYS
			    ;  if USHRT_MAX, VDMM assumes CFCBS_NOCLOSE_DEFAULT

    USHORT  nFILES	   ;Maximum open File handles			;BN011
			    ;  whatever follows "FILES=" in CONFIG.SYS	;BN011
			    ;  if USHRT_MAX, VDMM assumes DefaultFilesCount;BN011
									   ;BN011
    USHORT  iBREAK	   ;VDM initial BREAK setting
			    ;  IBREAK_ON if BREAK=ON, IBREAK_OFF if BREAK=OFF
			    ;  if IBREAK_DEFAULT, VDMM assumes OFF

    USHORT  Dos_Flags	   ;flags from DOS= statement	;BN002

    PSZZ    pszzDOSDDs	   ;VDM DOS DD list
			    ;  <DDpathname parameters>\0
			    ;  ...
			    ;  <DDpathname parameters>\0
			    ;  \0
			    ;  which are collected from all the
			    ;  "DEVICE=<DDpathname>" strings in CONFIG.SYS
			    ;  if NULL, no DOS DDs were specified
EndStruc VDMCONFIG

DefType PVDMCONFIG,dd			;pVDMconfig



DefType HPROPINST,ULONG			;hprin
DefType PHPROPINST,dd			;phprin

