Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / ntoskrnl / mm / ARM3 / iosup.c
diff --git a/reactos/ntoskrnl/mm/ARM3/iosup.c b/reactos/ntoskrnl/mm/ARM3/iosup.c
deleted file mode 100644 (file)
index 2549e92..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * PROJECT:         ReactOS Kernel
- * LICENSE:         BSD - See COPYING.ARM in the top level directory
- * FILE:            ntoskrnl/mm/ARM3/iosup.c
- * PURPOSE:         ARM Memory Manager I/O Mapping Functionality
- * PROGRAMMERS:     ReactOS Portable Systems Group
- */
-
-/* INCLUDES *******************************************************************/
-
-#include <ntoskrnl.h>
-#define NDEBUG
-#include <debug.h>
-
-#define MODULE_INVOLVED_IN_ARM3
-#include <mm/ARM3/miarm.h>
-
-/* GLOBALS ********************************************************************/
-
-//
-// Each architecture has its own caching attributes for both I/O and Physical
-// memory mappings.
-//
-// This describes the attributes for the x86 architecture. It eventually needs
-// to go in the appropriate i386 directory.
-//
-MI_PFN_CACHE_ATTRIBUTE MiPlatformCacheAttributes[2][MmMaximumCacheType] =
-{
-    //
-    // RAM
-    //
-    {MiNonCached,MiCached,MiWriteCombined,MiCached,MiNonCached,MiWriteCombined},
-
-    //
-    // Device Memory
-    //
-    {MiNonCached,MiCached,MiWriteCombined,MiCached,MiNonCached,MiWriteCombined},
-};
-
-/* PUBLIC FUNCTIONS ***********************************************************/
-
-/*
- * @implemented
- */
-PVOID
-NTAPI
-MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress,
-             IN SIZE_T NumberOfBytes,
-             IN MEMORY_CACHING_TYPE CacheType)
-{
-
-    PFN_NUMBER Pfn;
-    PFN_COUNT PageCount;
-    PMMPTE PointerPte;
-    PVOID BaseAddress;
-    MMPTE TempPte;
-    PMMPFN Pfn1 = NULL;
-    MI_PFN_CACHE_ATTRIBUTE CacheAttribute;
-    BOOLEAN IsIoMapping;
-
-    //
-    // Must be called with a non-zero count
-    //
-    ASSERT(NumberOfBytes != 0);
-
-    //
-    // Make sure the upper bits are 0 if this system
-    // can't describe more than 4 GB of physical memory.
-    // FIXME: This doesn't respect PAE, but we currently don't
-    // define a PAE build flag since there is no such build.
-    //
-#if !defined(_M_AMD64)
-    ASSERT(PhysicalAddress.HighPart == 0);
-#endif
-
-    //
-    // Normalize and validate the caching attributes
-    //
-    CacheType &= 0xFF;
-    if (CacheType >= MmMaximumCacheType) return NULL;
-
-    //
-    // Calculate page count
-    //
-    PageCount = ADDRESS_AND_SIZE_TO_SPAN_PAGES(PhysicalAddress.LowPart,
-                                               NumberOfBytes);
-
-    //
-    // Compute the PFN and check if it's a known I/O mapping
-    // Also translate the cache attribute
-    //
-    Pfn = (PFN_NUMBER)(PhysicalAddress.QuadPart >> PAGE_SHIFT);
-    Pfn1 = MiGetPfnEntry(Pfn);
-    IsIoMapping = (Pfn1 == NULL) ? TRUE : FALSE;
-    CacheAttribute = MiPlatformCacheAttributes[IsIoMapping][CacheType];
-
-    //
-    // Now allocate system PTEs for the mapping, and get the VA
-    //
-    PointerPte = MiReserveSystemPtes(PageCount, SystemPteSpace);
-    if (!PointerPte) return NULL;
-    BaseAddress = MiPteToAddress(PointerPte);
-
-    //
-    // Check if this is uncached
-    //
-    if (CacheAttribute != MiCached)
-    {
-        //
-        // Flush all caches
-        //
-        KeFlushEntireTb(TRUE, TRUE);
-        KeInvalidateAllCaches();
-    }
-
-    //
-    // Now compute the VA offset
-    //
-    BaseAddress = (PVOID)((ULONG_PTR)BaseAddress +
-                          BYTE_OFFSET(PhysicalAddress.LowPart));
-
-    //
-    // Get the template and configure caching
-    //
-    TempPte = ValidKernelPte;
-    switch (CacheAttribute)
-    {
-        case MiNonCached:
-
-            //
-            // Disable the cache
-            //
-            MI_PAGE_DISABLE_CACHE(&TempPte);
-            MI_PAGE_WRITE_THROUGH(&TempPte);
-            break;
-
-        case MiCached:
-
-            //
-            // Leave defaults
-            //
-            break;
-
-        case MiWriteCombined:
-
-            //
-            // Disable the cache and allow combined writing
-            //
-            MI_PAGE_DISABLE_CACHE(&TempPte);
-            MI_PAGE_WRITE_COMBINED(&TempPte);
-            break;
-
-        default:
-
-            //
-            // Should never happen
-            //
-            ASSERT(FALSE);
-            break;
-    }
-
-    //
-    // Sanity check and re-flush
-    //
-    Pfn = (PFN_NUMBER)(PhysicalAddress.QuadPart >> PAGE_SHIFT);
-    ASSERT((Pfn1 == MiGetPfnEntry(Pfn)) || (Pfn1 == NULL));
-    KeFlushEntireTb(TRUE, TRUE);
-    KeInvalidateAllCaches();
-
-    //
-    // Do the mapping
-    //
-    do
-    {
-        //
-        // Write the PFN
-        //
-        TempPte.u.Hard.PageFrameNumber = Pfn++;
-        MI_WRITE_VALID_PTE(PointerPte++, TempPte);
-    } while (--PageCount);
-
-    //
-    // We're done!
-    //
-    return BaseAddress;
-}
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-MmUnmapIoSpace(IN PVOID BaseAddress,
-               IN SIZE_T NumberOfBytes)
-{
-    PFN_NUMBER Pfn;
-    PFN_COUNT PageCount;
-    PMMPTE PointerPte;
-
-    //
-    // Sanity check
-    //
-    ASSERT(NumberOfBytes != 0);
-
-    //
-    // Get the page count
-    //
-    PageCount = ADDRESS_AND_SIZE_TO_SPAN_PAGES(BaseAddress, NumberOfBytes);
-
-    //
-    // Get the PTE and PFN
-    //
-    PointerPte = MiAddressToPte(BaseAddress);
-    Pfn = PFN_FROM_PTE(PointerPte);
-
-    //
-    // Is this an I/O mapping?
-    //
-    if (!MiGetPfnEntry(Pfn))
-    {
-        //
-        // Destroy the PTE
-        //
-        RtlZeroMemory(PointerPte, PageCount * sizeof(MMPTE));
-
-        //
-        // Blow the TLB
-        //
-        KeFlushEntireTb(TRUE, TRUE);
-    }
-
-    //
-    // Release the PTEs
-    //
-    MiReleaseSystemPtes(PointerPte, PageCount, 0);
-}
-
-/*
- * @implemented
- */
-PVOID
-NTAPI
-MmMapVideoDisplay(IN PHYSICAL_ADDRESS PhysicalAddress,
-                  IN SIZE_T NumberOfBytes,
-                  IN MEMORY_CACHING_TYPE CacheType)
-{
-    PAGED_CODE();
-
-    //
-    // Call the real function
-    //
-    return MmMapIoSpace(PhysicalAddress, NumberOfBytes, CacheType);
-}
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-MmUnmapVideoDisplay(IN PVOID BaseAddress,
-                    IN SIZE_T NumberOfBytes)
-{
-    //
-    // Call the real function
-    //
-    MmUnmapIoSpace(BaseAddress, NumberOfBytes);
-}
-
-LOGICAL
-NTAPI
-MmIsIoSpaceActive(IN PHYSICAL_ADDRESS StartAddress,
-                  IN SIZE_T NumberOfBytes)
-{
-    UNIMPLEMENTED;
-    return FALSE;
-}
-
-/* EOF */