Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

234 lines
6.5 KiB

;/*
; * Microsoft Confidential
; * Copyright (C) Microsoft Corporation 1988 - 1991
; * All Rights Reserved.
; */
/* MEM.H - general equates and externals for the MEM command.
* Extracted from the original MEM.C file.
*/
/* Structure definitions */
struct DEVICEHEADER {
struct DEVICEHEADER far *NextDeviceHeader;
unsigned Attributes;
unsigned Strategy;
unsigned Interrupt;
char Name[8];
};
struct SYSIVAR {
char far *DpbChain;
char far *SftChain;
char far *Clock;
char far *Con;
unsigned MaxSectorSize;
char far *BufferChain;
char far *CdsList;
char far *FcbChain;
unsigned FcbKeepCount;
unsigned char BlockDeviceCount;
char CdsCount;
struct DEVICEHEADER far *DeviceDriverChain;
unsigned NullDeviceAttributes;
unsigned NullDeviceStrategyEntryPoint;
unsigned NullDeviceInterruptEntryPoint;
char NullDeviceName[8];
char SpliceIndicator;
unsigned DosParagraphs;
char far *DosServiceRntryPoint;
char far *IfsChain;
unsigned BufferValues;
unsigned LastDriveValue;
char BootDrive;
char MoveType;
unsigned ExtendedMemory;
};
struct ARENA {
char Signature;
unsigned Owner;
unsigned Paragraphs;
char Dummy[3];
char OwnerName[8];
};
struct sublistx {
unsigned char size; /* sublist size */
unsigned char reserved; /* reserved for future growth */
unsigned far *value; /* pointer to replaceable parm */
unsigned char id; /* type of replaceable parm */
unsigned char flags; /* how parm is to be displayed */
unsigned char max_width; /* max width of replaceable field */
unsigned char min_width; /* min width of replaceable field */
unsigned char pad_char; /* pad character for replaceable field */
};
struct mem_classif { /* M003 - struct for storing sizes */
unsigned int psp_add; /* acc. to PSPs */
unsigned int mem_conv; /* conv.mem for PSP */
unsigned int mem_umb; /* umb mem for PSP */
};
/* miscellaneous defines */
#define DA_TYPE 0x8000;
#define DA_IOCTL 0x4000;
#define a(fp) ((char) fp)
/* relevant DOS functions */
#define GET_VECT 0x35
#define GET_UMB_LINK_STATE 0x5802
#define SET_UMB_LINK_STATE 0x5803
#define LINK_UMBS 1
#define UNLINK_UMBS 0
#define EMS 0x67
#define CASSETTE 0x15 /* interrupt to get extended memory */
#define DOSEMSVER 0x40 /* EMS version */
#define EMSGetStat 0x4000 /* get stat */
#define EMSGetVer 0x4600 /* get version */
#define EMSGetFreePgs 0x4200 /* get free pages */
#define GetExtended 0x8800 /* get extended memory size */
/* defines used by total memory determination */
#define GET_PSP (unsigned char ) 0x62 /* get PSP function call */
#define MEMORY_DET 0x12 /* BIOS interrupt used to get total memory size */
#define FALSE (char)(1==0)
#define TRUE !(FALSE)
#define CR '\x0d'
#define LF '\x0a'
#define NUL (char) '\0'
#define TAB '\x09'
#define BLANK ' '
#define MAX_CLDATA_INDEX 100
/* max index no for mem_table array */
/* this is the max no of progs or free arenas that mem/c can used */
/* to process ; if the memory is fragmented and too many progs are */
/* loaded such that this no exceeds 100, we terminate with errmsg */
/* external variables */
extern unsigned DOS_TopOfMemory; /* PSP Top of memory from 'C' init code */ /* ;an005; */
extern unsigned far *ArenaHeadPtr;
extern struct SYSIVAR far *SysVarsPtr;
extern unsigned UMB_Head;
extern unsigned LastPSP;
extern char OwnerName[128];
extern char TypeText[128];
extern char cmd_line[128];
extern char far *cmdline;
extern char UseArgvZero;
extern char EMSInstalledFlag;
extern union REGS InRegs;
extern union REGS OutRegs;
extern struct SREGS SegRegs;
extern int DataLevel;
extern int Classify;
extern int i;
extern int BlockDeviceNumber;
extern char *Parse_Ptr; /* ;an003; dms; pointer to command */
extern struct mem_classif mem_table[MAX_CLDATA_INDEX];
extern int noof_progs;
extern struct sublistx sublist[5];
extern char *SingleDrive;
extern char *MultipleDrives;
extern char *UnOwned;
extern char *Ibmbio;
extern char *Ibmdos;
/* function prototypes */
int main(void);
int printf();
int sprintf();
int strcmp(const char *, const char *);
int sscanf();
void exit(int);
int kbhit();
char *OwnerOf(struct ARENA far *);
char *TypeOf(struct ARENA far *);
unsigned long AddressOf(char far *);
void CSwitch_init(void);
char EMSInstalled(void);
void DisplayEMSSummary(void);
void DisplayEMSDetail(void);
void DisplayBaseSummary(void);
void DisplayExtendedSummary(void);
unsigned CheckDOSHigh(void);
unsigned CheckVDisk(void);
unsigned int DisplayBaseDetail(void);
void DisplayClassification(void); /* M003 */
unsigned long DispMemClass(int); /* M003 */
void DispBigFree(char,unsigned int); /* M003 */
unsigned int AddMem_to_PSP(unsigned int,unsigned long,unsigned long); /* M003 */
void GetFromArgvZero(unsigned,unsigned far *);
void DisplayDeviceDriver(struct DEVICEHEADER far *,int);
void parse_init(void);
void Parse_Message(int,int,unsigned char,char far *);
void Sub0_Message(int,int,unsigned char);
void Sub1_Message(int,int,unsigned char,unsigned long int *);
void Sub2_Message(int,int,unsigned char,char *,int);
void Sub3_Message(int,int,unsigned char,
char *,
unsigned long int *,
int);
void Sub4_Message(int,int,unsigned char,
unsigned long int *,
int,
unsigned long int *,
int);
void Sub4a_Message(int,int,unsigned char,
unsigned long int *,
char *,
unsigned long int *,
char *);
void EMSPrint(int,int,unsigned char,
int *,
char *,
unsigned long int *);
void SubC2_Message(int,int,unsigned long int*,char*); /* M003 */
void SubC4_Message(int,int,char *,int, /* M003 */
unsigned long int *,
char *);
extern void sysloadmsg(union REGS *, union REGS *);
extern void sysdispmsg(union REGS *, union REGS *);
extern void sysgetmsg(union REGS *, struct SREGS *, union REGS *);
extern void parse(union REGS *, union REGS *);