181 lines
4.8 KiB
C
181 lines
4.8 KiB
C
/** SVC Defines
|
||
*
|
||
* Revision history:
|
||
*
|
||
* sudeepb 27-Feb-1991 Created
|
||
*/
|
||
|
||
/* VHE - Virtual Hard Error packet.
|
||
*
|
||
* DEM makes fbInt24 to true if an hard error happens.
|
||
*/
|
||
|
||
typedef struct vhe_s {
|
||
char vhe_fbInt24; // Was there a hard error?
|
||
char vhe_HrdErrCode; // If hard error then this is the error code
|
||
char vhe_bDriveNum; // If so on which drive
|
||
} VHE;
|
||
|
||
typedef VHE *PVHE;
|
||
|
||
/* DEMEXTERR - Extended Error structure. The following structure contains the
|
||
* DOS extended error elements which are loosely coupled in the DOS data
|
||
* segment
|
||
*
|
||
*/
|
||
|
||
/* XLATOFF */
|
||
#include <packon.h>
|
||
|
||
typedef struct _DEMEXTERR {
|
||
UCHAR ExtendedErrorLocus;
|
||
USHORT ExtendedError;
|
||
UCHAR ExtendedErrorAction;
|
||
UCHAR ExtendedErrorClass;
|
||
PUCHAR ExtendedErrorPointer;
|
||
} DEMEXTERR;
|
||
|
||
typedef DEMEXTERR* PDEMEXTERR;
|
||
|
||
|
||
/* SYSDEV - Device chain node
|
||
*/
|
||
|
||
typedef struct _SYSDEV {
|
||
|
||
ULONG sdevNext; // REAL mode pointer to next device. -1 for end of chain.
|
||
char sdevIgnore[6];
|
||
UCHAR sdevDevName[8]; // device name
|
||
|
||
} SYSDEV;
|
||
|
||
typedef SYSDEV UNALIGNED *PSYSDEV;
|
||
|
||
#ifndef _DEMINCLUDED_
|
||
extern DECLSPEC_IMPORT PSYSDEV pDeviceChain;
|
||
#else
|
||
extern PSYSDEV pDeviceChain;
|
||
#endif
|
||
|
||
|
||
/* XLATON */
|
||
|
||
/* XLATOFF */
|
||
#include <packoff.h>
|
||
/* XLATON */
|
||
|
||
/* Note : To add a new SVC:
|
||
* New SVC gets the current value of SVC_LASTSVC. Increment
|
||
* the SVC_LASTSVC value. Add the appropriate SVC handler
|
||
* in apfnSVC (file dem\demdisp.c) at the end.
|
||
* To delete a SVC :
|
||
* Move each SVC one level up. Appropriatly adjust the
|
||
* apfnSVC (file dem\demdisp.c).
|
||
*/
|
||
|
||
/* SVC - Supervisory Call macro.
|
||
*
|
||
* This macro is used by NTDOS and NTBIO to call DEM.
|
||
*
|
||
*/
|
||
|
||
#define NTVDMDBG 1
|
||
|
||
/* ASM
|
||
include bop.inc
|
||
|
||
svc macro func
|
||
BOP BOP_DOS
|
||
db func
|
||
endm
|
||
*/
|
||
#define SVC_DEMCHGFILEPTR 0x00
|
||
#define SVC_DEMCHMOD 0x01
|
||
#define SVC_DEMCLOSE 0x02
|
||
#define SVC_DEMCREATE 0x03
|
||
#define SVC_DEMCREATEDIR 0x04
|
||
#define SVC_DEMDELETE 0x05
|
||
#define SVC_DEMDELETEDIR 0x06
|
||
#define SVC_DEMDELETEFCB 0x07
|
||
#define SVC_DEMFILETIMES 0x08
|
||
#define SVC_DEMFINDFIRST 0x09
|
||
#define SVC_DEMFINDFIRSTFCB 0x0a
|
||
#define SVC_DEMFINDNEXT 0x0b
|
||
#define SVC_DEMFINDNEXTFCB 0x0c
|
||
#define SVC_DEMGETBOOTDRIVE 0x0d
|
||
#define SVC_DEMGETDRIVEFREESPACE 0x0e
|
||
#define SVC_DEMGETDRIVES 0x0f
|
||
#define SVC_DEMGSETMEDIAID 0x10
|
||
#define SVC_DEMLOADDOS 0x11
|
||
#define SVC_DEMOPEN 0x12
|
||
#define SVC_DEMQUERYCURRENTDIR 0x13
|
||
#define SVC_DEMQUERYDATE 0x14
|
||
#define SVC_DEMQUERYTIME 0x15
|
||
#define SVC_DEMREAD 0x16
|
||
#define SVC_DEMRENAME 0x17
|
||
#define SVC_DEMSETCURRENTDIR 0x18
|
||
#define SVC_DEMSETDATE 0x19
|
||
#define SVC_DEMSETDEFAULTDRIVE 0x1a
|
||
#define SVC_DEMSETDTALOCATION 0x1b
|
||
#define SVC_DEMSETTIME 0x1c
|
||
#define SVC_DEMSETV86KERNELADDR 0x1d
|
||
#define SVC_DEMWRITE 0x1e
|
||
#define SVC_GETDRIVEINFO 0x1f
|
||
#define SVC_DEMRENAMEFCB 0x20
|
||
#define SVC_DEMIOCTL 0x21
|
||
#define SVC_DEMCREATENEW 0x22
|
||
#define SVC_DEMDISKRESET 0x23
|
||
#define SVC_DEMSETDPB 0x24
|
||
#define SVC_DEMGETDPB 0x25
|
||
#define SVC_DEMSLEAZEFUNC 0x26
|
||
#define SVC_DEMCOMMIT 0x27
|
||
#define SVC_DEMEXTHANDLE 0x28
|
||
#define SVC_DEMABSDRD 0x29
|
||
#define SVC_DEMABSDWRT 0x2a
|
||
#define SVC_DEMGSETCDPG 0x2b
|
||
#define SVC_DEMCREATEFCB 0x2c
|
||
#define SVC_DEMOPENFCB 0x2d
|
||
#define SVC_DEMCLOSEFCB 0x2e
|
||
#define SVC_DEMFCBIO 0x2f
|
||
#define SVC_DEMDATE16 0x30
|
||
#define SVC_DEMGETFILEINFO 0x31
|
||
#define SVC_DEMSETHARDERRORINFO 0x32
|
||
#define SVC_DEMRETRY 0x33
|
||
#define SVC_DEMLOADDOSAPPSYM 0x34
|
||
#define SVC_DEMFREEDOSAPPSYM 0x35
|
||
#define SVC_DEMENTRYDOSAPP 0x36
|
||
#define SVC_DEMDOSDISPCALL 0x37
|
||
#define SVC_DEMDOSDISPRET 0x38
|
||
#define SVC_OUTPUT_STRING 0x39
|
||
#define SVC_INPUT_STRING 0x3A
|
||
#define SVC_ISDEBUG 0x3B
|
||
#define SVC_PDBTERMINATE 0x3C
|
||
#define SVC_DEMEXITVDM 0x3D
|
||
#define SVC_DEMWOWFILES 0x3E
|
||
#define SVC_DEMLOCKOPER 0x3F
|
||
#define SVC_DEMDRIVEFROMHANDLE 0x40
|
||
#define SVC_DEMGETCOMPUTERNAME 0x41
|
||
#define SVC_DEMFASTREAD 0x42
|
||
#define SVC_DEMFASTWRITE 0x43
|
||
#define SVC_DEMCHECKPATH 0x44
|
||
#define SVC_DEMSYSTEMSYMBOLOP 0x45
|
||
#define SVC_DEMGETDPBLIST 0x46
|
||
|
||
#define SVC_DEMPIPEFILEDATAEOF 0x47
|
||
#define SVC_DEMPIPEFILEEOF 0x48
|
||
#define SVC_DEMLFNENTRY 0x49
|
||
#define SVC_SETDOSVARLOCATION 0x4A
|
||
#define SVC_DEMLASTSVC 0x4B
|
||
|
||
|
||
/*
|
||
* Equates used in the DEMxxxSYSTEMxxx calls
|
||
*/
|
||
#define SYMOP_LOAD 1
|
||
#define SYMOP_FREE 2
|
||
#define SYMOP_MOVE 3
|
||
#define SYMOP_CLEANUP 0x80
|
||
|
||
#define ID_NTIO 1
|
||
#define ID_NTDOS 2
|
||
|