[GDI32_APITEST] Add a PCH.
[reactos.git] / subsystems / mvdm / ntvdm / memory.h
1 /*
2 * COPYRIGHT: GPLv2+ - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: subsystems/mvdm/ntvdm/memory.h
5 * PURPOSE: Memory Management
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _MEMORY_H_
10 #define _MEMORY_H_
11
12 /* DEFINITIONS ****************************************************************/
13
14 #define TOTAL_PAGES (MAX_ADDRESS / PAGE_SIZE)
15
16 typedef VOID
17 (FASTCALL *PMEMORY_READ_HANDLER)
18 (
19 ULONG Address,
20 PVOID Buffer,
21 ULONG Size
22 );
23
24 typedef BOOLEAN
25 (FASTCALL *PMEMORY_WRITE_HANDLER)
26 (
27 ULONG Address,
28 PVOID Buffer,
29 ULONG Size
30 );
31
32 /* FUNCTIONS ******************************************************************/
33
34 BOOLEAN MemInitialize(VOID);
35 VOID MemCleanup(VOID);
36 VOID MemExceptionHandler(ULONG FaultAddress, BOOLEAN Writing);
37
38 VOID
39 FASTCALL
40 EmulatorReadMemory
41 (
42 PFAST486_STATE State,
43 ULONG Address,
44 PVOID Buffer,
45 ULONG Size
46 );
47
48 VOID
49 FASTCALL
50 EmulatorWriteMemory
51 (
52 PFAST486_STATE State,
53 ULONG Address,
54 PVOID Buffer,
55 ULONG Size
56 );
57
58 VOID
59 FASTCALL
60 EmulatorCopyMemory
61 (
62 PFAST486_STATE State,
63 ULONG DestAddress,
64 ULONG SrcAddress,
65 ULONG Size
66 );
67
68 VOID EmulatorSetA20(BOOLEAN Enabled);
69 BOOLEAN EmulatorGetA20(VOID);
70
71 BOOL
72 MemInstallFastMemoryHook
73 (
74 PVOID Address,
75 ULONG Size,
76 PMEMORY_READ_HANDLER ReadHandler,
77 PMEMORY_WRITE_HANDLER WriteHandler
78 );
79
80 BOOL
81 MemRemoveFastMemoryHook
82 (
83 PVOID Address,
84 ULONG Size
85 );
86
87 BOOLEAN
88 MemQueryMemoryZone
89 (
90 ULONG StartAddress,
91 PULONG Length,
92 PBOOLEAN Hooked
93 );
94
95 #endif /* _MEMORY_H_ */