[NTVDM]
[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 (WINAPI *PMEMORY_READ_HANDLER)
18 (
19 ULONG Address,
20 PVOID Buffer,
21 ULONG Size
22 );
23
24 typedef BOOLEAN
25 (WINAPI *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 MemRead
40 (
41 ULONG Address,
42 PVOID Buffer,
43 ULONG Size
44 );
45
46 VOID
47 MemWrite
48 (
49 ULONG Address,
50 PVOID Buffer,
51 ULONG Size
52 );
53
54 BOOL
55 MemInstallFastMemoryHook
56 (
57 PVOID Address,
58 ULONG Size,
59 PMEMORY_READ_HANDLER ReadHandler,
60 PMEMORY_WRITE_HANDLER WriteHandler
61 );
62
63 BOOL
64 MemRemoveFastMemoryHook
65 (
66 PVOID Address,
67 ULONG Size
68 );
69
70 BOOLEAN
71 MemQueryMemoryZone
72 (
73 ULONG StartAddress,
74 PULONG Length,
75 PBOOLEAN Hooked
76 );
77
78 #endif // _MEMORY_H_
79
80 /* EOF */