[CMAKE]
[reactos.git] / ntoskrnl / mm / mmfault.c
index bf8b2e0..9a3ecf9 100644 (file)
@@ -9,6 +9,9 @@
 /* INCLUDES *******************************************************************/
 
 #include <ntoskrnl.h>
+#ifdef NEWCC
+#include "../cache/section/newmm.h"
+#endif
 #define NDEBUG
 #include <debug.h>
 
@@ -85,6 +88,18 @@ MmpAccessFault(KPROCESSOR_MODE Mode,
             Status = STATUS_ACCESS_VIOLATION;
             break;
 
+#ifdef NEWCC
+            case MEMORY_AREA_CACHE:
+                       // This code locks for itself to keep from having to break a lock
+                       // passed in.
+                       if (!FromMdl)
+                               MmUnlockAddressSpace(AddressSpace);
+                   Status = MmAccessFaultCacheSection(Mode, Address, Locked);
+                       if (!FromMdl)
+                               MmLockAddressSpace(AddressSpace);
+                       break;
+#endif
+
          default:
             Status = STATUS_ACCESS_VIOLATION;
             break;
@@ -175,6 +190,18 @@ MmNotPresentFault(KPROCESSOR_MODE Mode,
                                                     Locked);
             break;
 
+#ifdef  NEWCC
+           case MEMORY_AREA_CACHE:
+                       // This code locks for itself to keep from having to break a lock
+                       // passed in.
+                       if (!FromMdl)
+                               MmUnlockAddressSpace(AddressSpace);
+                   Status = MmNotPresentFaultCacheSection(Mode, Address, Locked);
+                       if (!FromMdl)
+                               MmLockAddressSpace(AddressSpace);
+                       break;
+#endif
+
          default:
             Status = STATUS_ACCESS_VIOLATION;
             break;