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
|
|||
|
|