From 6fcf0fd7b88fa787ad340b8af38230a89fc47601 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Mon, 9 Nov 2009 22:05:36 +0000 Subject: [PATCH] - Set and check for the correct PTE write bits on x86 SMP. The MP kernel is now functional again. svn path=/trunk/; revision=44057 --- reactos/ntoskrnl/include/internal/i386/mm.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reactos/ntoskrnl/include/internal/i386/mm.h b/reactos/ntoskrnl/include/internal/i386/mm.h index a649cbb4ae2..b818d5fc303 100644 --- a/reactos/ntoskrnl/include/internal/i386/mm.h +++ b/reactos/ntoskrnl/include/internal/i386/mm.h @@ -45,10 +45,18 @@ PULONG MmGetPageDirectory(VOID); #define MI_PAGE_DISABLE_CACHE(x) ((x)->u.Hard.CacheDisable = 1) #define MI_PAGE_WRITE_THROUGH(x) ((x)->u.Hard.WriteThrough = 1) #define MI_PAGE_WRITE_COMBINED(x) ((x)->u.Hard.WriteThrough = 0) +#if !defined(CONFIG_SMP) #define MI_IS_PAGE_WRITEABLE(x) ((x)->u.Hard.Write == 1) +#else +#define MI_IS_PAGE_WRITEABLE(x) ((x)->u.Hard.Writable == 1) +#endif #define MI_IS_PAGE_COPY_ON_WRITE(x)((x)->u.Hard.CopyOnWrite == 1) #define MI_IS_PAGE_DIRTY(x) ((x)->u.Hard.Dirty == 1) #define MI_MAKE_OWNER_PAGE(x) ((x)->u.Hard.Owner = 1) +#if !defined(CONFIG_SMP) #define MI_MAKE_WRITE_PAGE(x) ((x)->u.Hard.Write = 1) +#else +#define MI_MAKE_WRITE_PAGE(x) ((x)->u.Hard.Writable = 1) +#endif #endif /* __NTOSKRNL_INCLUDE_INTERNAL_I386_MM_H */