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.
 
 
 
 
 
 

220 lines
4.2 KiB

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
Monitorp.h
Abstract:
This contains the function prototypes, constants, and types for
the monitor.
Author:
Dave Hastings (daveh) 16 Mar 1991
Revision History:
--*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <windows.h>
#include <vdm.h>
#include <vint.h>
#include "bop.h"
#include "softpc.h"
//bugbug
typedef unsigned int UINT;
#include <nt_mon.h> // for softpc base definitions
#include <nt_reset.h>
#include <monregs.h>
//extern VDM_TIB VdmTib;
#define EFLAGS_INTERRUPT_MASK 0x00000200L
#define EFLAGS_V86_MASK 0x00020000L
#define VDM_BASE_ADDRESS 0x00000001L
#define RPL_MASK 3
// Types borrowed from windef.h
typedef unsigned char BYTE;
// Memory type record
typedef struct _Memory_Type {
struct _Memory_Type *Previous;
struct _Memory_Type *Next;
ULONG Start;
ULONG End;
half_word Type;
} MEMTYPE, *PMEMTYPE;
// private flags
#define VDM_IDLE 0x00000001L
// external data
extern ULONG VdmFlags;
extern ULONG VdmSize;
extern LDT_ENTRY *Ldt;
extern ULONG IntelBase; // base memory address
extern ULONG VdmDebugLevel; // used to control debugging
extern ULONG VdmSize; // Size of memory in VDM
extern PVOID CurrentMonitorTeb; // thread that is currently executing instructions.
extern BOOLEAN IRQ13BeingHandled; // true until IRQ13 eoi'ed
extern CONTEXT InitialContext; // Initial floating point context for all threads
extern BOOLEAN DebugContextActive;
#define MAX_BOP 256
VOID reset(VOID);
VOID dummy_int(VOID);
VOID unexpected_int(VOID);
VOID illegal_bop(VOID);
VOID illegal_op_int(VOID);
VOID print_screen(VOID);
VOID time_int(VOID);
VOID keyboard_int(VOID);
VOID diskette_int(VOID);
VOID video_io(VOID);
VOID equipment(VOID);
VOID memory_size(VOID);
VOID disk_io(VOID);
VOID rs232_io(VOID);
VOID cassette_io(VOID);
VOID keyboard_io(VOID);
VOID printer_io(VOID);
VOID rom_basic(VOID);
VOID bootstrap(VOID);
VOID time_of_day(VOID);
VOID critical_region(VOID);
VOID cmd_install(VOID);
VOID cmd_load(VOID);
VOID redirector(VOID);
VOID ega_video_io(VOID);
VOID MsBop0(VOID);
VOID MsBop1(VOID);
VOID MsBop2(VOID);
VOID MsBop3(VOID);
VOID MsBop4(VOID);
VOID MsBop5(VOID);
VOID MsBop6(VOID);
VOID MsBop7(VOID);
VOID MsBop8(VOID);
VOID MsBop9(VOID);
VOID MsBopA(VOID);
VOID MsBopB(VOID);
VOID MsBopC(VOID);
VOID MsBopD(VOID);
VOID MsBopE(VOID);
VOID MsBopF(VOID);
VOID emm_init(VOID);
VOID emm_io(VOID);
VOID return_from_call(VOID);
VOID rtc_int(VOID);
VOID re_direct(VOID);
VOID D11_int(VOID);
VOID int_287(VOID);
VOID worm_init(VOID);
VOID worm_io(VOID);
VOID ps_private_1(VOID);
VOID ps_private_2(VOID);
VOID ps_private_3(VOID);
VOID ps_private_4(VOID);
VOID ps_private_5(VOID);
VOID ps_private_6(VOID);
VOID ps_private_7(VOID);
VOID ps_private_8(VOID);
VOID ps_private_9(VOID);
VOID ps_private_10(VOID);
VOID ps_private_11(VOID);
VOID ps_private_12(VOID);
VOID ps_private_13(VOID);
VOID ps_private_14(VOID);
VOID ps_private_15(VOID);
VOID bootstrap1(VOID);
VOID bootstrap2(VOID);
VOID bootstrap3(VOID);
VOID ms_windows(VOID);
VOID msw_mouse(VOID);
VOID mouse_install1(VOID);
VOID mouse_install2(VOID);
VOID mouse_int1(VOID);
VOID mouse_int2(VOID);
VOID mouse_io_language(VOID);
VOID mouse_io_interrupt(VOID);
VOID mouse_video_io(VOID);
VOID switch_to_real_mode(VOID);
VOID control_bop(VOID);
VOID diskette_io(VOID);
VOID host_unsimulate(VOID);
VOID DispatchPageFault (ULONG,ULONG);
NTSTATUS
FastEnterPm(
);
VOID
DispatchInterrupts(
VOID
);
VOID
DispatchHwInterrupt(
);
ULONG
GetInterruptHandler(
ULONG InterruptNumber,
BOOLEAN ProtectedMode
);
PVOID
GetInterruptStack(
ULONG InterruptNumber,
PUSHORT StackSelector,
PUSHORT StackPointer,
BOOLEAN ProtectedMode
);
VOID
CpuOnetimeInit(
VOID
);
VOID
CpuOnetimeTerm(
VOID
);
VOID
cpu_createthread();
VOID
cpu_exitthread();
HANDLE
ThreadLookUp(
PVOID
);
VOID
cpu_exit();
VOID
InterruptInit(
VOID
);
VOID
InterruptTerminate(
VOID
);