mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-30 04:13:33 +00:00
- Changed all internal memory functions to use the page frame number instead of the physical address.
- Allowed MmCreateVirtualMapping to create mappings for more than one page. - Used invplg to invalidate a single tlb entry. - Simplified the access to the page tables/directories. svn path=/trunk/; revision=10332
This commit is contained in:
@@ -24,9 +24,7 @@ struct _EPROCESS;
|
||||
#define PA_SYSTEM (0)
|
||||
#endif
|
||||
|
||||
// #define PAGE_SIZE (4096)
|
||||
|
||||
PULONG MmGetPageEntry(PVOID Address);
|
||||
|
||||
#define KERNEL_BASE (0xc0000000)
|
||||
|
||||
@@ -41,6 +39,13 @@ PULONG MmGetPageEntry(PVOID Address);
|
||||
:: "memory"); \
|
||||
}
|
||||
|
||||
#define FLUSH_TLB_ONE(addr) __asm__ __volatile__( \
|
||||
"invlpg %0" \
|
||||
: \
|
||||
: "m" (*(volatile long *) (addr)))
|
||||
|
||||
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
/* TODO: Need some way to tell the compiler this is a memory barrier. */
|
||||
#define FLUSH_TLB __asm mov eax, cr3 __asm mov cr3, eax;
|
||||
|
||||
+280
-471
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user