f3bc537f6ef93e4aac9fee8485b06d290e917a30
[reactos.git] / reactos / subsystems / mvdm / ntvdm / memory.h
1 /*
2 * COPYRIGHT: GPLv2+ - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: 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 EmulatorSetA20(BOOLEAN Enabled);
59 BOOLEAN EmulatorGetA20(VOID);
60
61 BOOL
62 MemInstallFastMemoryHook
63 (
64 PVOID Address,
65 ULONG Size,
66 PMEMORY_READ_HANDLER ReadHandler,
67 PMEMORY_WRITE_HANDLER WriteHandler
68 );
69
70 BOOL
71 MemRemoveFastMemoryHook
72 (
73 PVOID Address,
74 ULONG Size
75 );
76
77 BOOLEAN
78 MemQueryMemoryZone
79 (
80 ULONG StartAddress,
81 PULONG Length,
82 PBOOLEAN Hooked
83 );
84
85 #endif // _MEMORY_H_
86
87 /* EOF */