mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
- Implement beginnings of Ramdisk Port Driver. Planning compatibility with ISO, SDI and WIM files and full Windows support.
- New license for our code. svn path=/trunk/; revision=34170
This commit is contained in:
parent
4d7d62eded
commit
c50bcc2c12
36 changed files with 517 additions and 36 deletions
23
reactos/COPYING.ARM
Normal file
23
reactos/COPYING.ARM
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Copyright 2008 ReactOS Portable Systems Group. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||||
|
that the following conditions are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright notice, this list of conditions and
|
||||||
|
the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||||
|
and the following disclaimer in the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE REACTOS PORTABLE SYSTEMS GROUP ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REACTOS PORTABLE SYSTEMS GROUP
|
||||||
|
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
The views and conclusions contained in the software and documentation are those of the authors and
|
||||||
|
should not be interpreted as representing official policies, either expressed or implied, of the ReactOS
|
||||||
|
Project.
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/arm/boot.s
|
* FILE: boot/freeldr/arch/arm/boot.s
|
||||||
* PURPOSE: Implements the entry point for ARM machines
|
* PURPOSE: Implements the entry point for ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/arm/ferouart.c
|
* FILE: boot/freeldr/arch/arm/ferouart.c
|
||||||
* PURPOSE: Implements code for Feroceon boards using the 16550 UART
|
* PURPOSE: Implements code for Feroceon boards using the 16550 UART
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/arm/loader.c
|
* FILE: boot/freeldr/arch/arm/loader.c
|
||||||
* PURPOSE: ARM Kernel Loader
|
* PURPOSE: ARM Kernel Loader
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/arm/marcharm.c
|
* FILE: boot/freeldr/arch/arm/marcharm.c
|
||||||
* PURPOSE: Provides abstraction between the ARM Boot Loader and FreeLDR
|
* PURPOSE: Provides abstraction between the ARM Boot Loader and FreeLDR
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/arm/versuart.c
|
* FILE: boot/freeldr/arch/arm/versuart.c
|
||||||
* PURPOSE: Implements code for Versatile boards using the PL011 UART
|
* PURPOSE: Implements code for Versatile boards using the PL011 UART
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/cmdline.c
|
* FILE: boot/freeldr/cmdline.c
|
||||||
* PURPOSE: FreeLDR Command Line Parsing
|
* PURPOSE: FreeLDR Command Line Parsing
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/arch/i386/ramdisk.c
|
* FILE: boot/freeldr/arch/i386/ramdisk.c
|
||||||
* PURPOSE: Implements routines to support booting from a RAM Disk
|
* PURPOSE: Implements routines to support booting from a RAM Disk
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/include/arch/arm/hardware.h
|
* FILE: boot/freeldr/include/arch/arm/hardware.h
|
||||||
* PURPOSE: Header for ARC definitions (to be cleaned up)
|
* PURPOSE: Header for ARC definitions (to be cleaned up)
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Boot Loader
|
* PROJECT: ReactOS Boot Loader
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: boot/freeldr/include/ramdisk.h
|
* FILE: boot/freeldr/include/ramdisk.h
|
||||||
* PURPOSE: Header file for ramdisk support
|
* PURPOSE: Header file for ramdisk support
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -10,4 +10,7 @@
|
||||||
<directory name="disk">
|
<directory name="disk">
|
||||||
<xi:include href="disk/disk.rbuild" />
|
<xi:include href="disk/disk.rbuild" />
|
||||||
</directory>
|
</directory>
|
||||||
|
<directory name="ramdisk">
|
||||||
|
<xi:include href="ramdisk/ramdisk.rbuild" />
|
||||||
|
</directory>
|
||||||
</group>
|
</group>
|
||||||
|
|
438
reactos/drivers/storage/class/ramdisk/ramdisk.c
Normal file
438
reactos/drivers/storage/class/ramdisk/ramdisk.c
Normal file
|
@ -0,0 +1,438 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: Ramdisk Class Driver
|
||||||
|
* LICENSE: 2-clause BSD - See COPYING.ARM
|
||||||
|
* FILE: drivers/storage/class/ramdisk/ramdisk.c
|
||||||
|
* PURPOSE: Main Driver Routines
|
||||||
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *******************************************************************/
|
||||||
|
|
||||||
|
#include <ntddk.h>
|
||||||
|
#include <ntdddisk.h>
|
||||||
|
#include <scsi.h>
|
||||||
|
#include <ntddscsi.h>
|
||||||
|
#include <mountdev.h>
|
||||||
|
#include <mountmgr.h>
|
||||||
|
#include <helper.h>
|
||||||
|
#include <ketypes.h>
|
||||||
|
#include <arc/arc.h>
|
||||||
|
#define NDEBUG
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* GLOBALS ********************************************************************/
|
||||||
|
|
||||||
|
ULONG MaximumViewLength;
|
||||||
|
ULONG MaximumPerDiskViewLength;
|
||||||
|
ULONG ReportDetectedDevice;
|
||||||
|
ULONG MarkRamdisksAsRemovable;
|
||||||
|
ULONG MinimumViewCount;
|
||||||
|
ULONG DefaultViewCount;
|
||||||
|
ULONG MaximumViewCount;
|
||||||
|
ULONG MinimumViewLength;
|
||||||
|
ULONG DefaultViewLength;
|
||||||
|
UNICODE_STRING DriverRegistryPath;
|
||||||
|
BOOLEAN ExportBootDiskAsCd;
|
||||||
|
BOOLEAN IsWinPEBoot;
|
||||||
|
|
||||||
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
QueryParameters(IN PUNICODE_STRING RegistryPath)
|
||||||
|
{
|
||||||
|
ULONG MinView, DefView, MinViewLength, DefViewLength, MaxViewLength;
|
||||||
|
RTL_QUERY_REGISTRY_TABLE QueryTable[10];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set defaults
|
||||||
|
//
|
||||||
|
MaximumViewLength = 0x10000000u;
|
||||||
|
MaximumPerDiskViewLength = 0x10000000u;
|
||||||
|
ReportDetectedDevice = 0;
|
||||||
|
MarkRamdisksAsRemovable = 0;
|
||||||
|
MinimumViewCount = 2;
|
||||||
|
DefaultViewCount = 16;
|
||||||
|
MaximumViewCount = 64;
|
||||||
|
MinimumViewLength = 0x10000u;
|
||||||
|
DefaultViewLength = 0x100000u;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Setup the query table and query the registry
|
||||||
|
//
|
||||||
|
RtlZeroMemory(QueryTable, sizeof(QueryTable));
|
||||||
|
QueryTable[0].Flags = 1;
|
||||||
|
QueryTable[0].Name = L"Parameters";
|
||||||
|
QueryTable[1].Flags = 32;
|
||||||
|
QueryTable[1].Name = L"ReportDetectedDevice";
|
||||||
|
QueryTable[1].EntryContext = &ReportDetectedDevice;
|
||||||
|
QueryTable[2].Flags = 32;
|
||||||
|
QueryTable[2].Name = L"MarkRamdisksAsRemovable";
|
||||||
|
QueryTable[2].EntryContext = &MarkRamdisksAsRemovable;
|
||||||
|
QueryTable[3].Flags = 32;
|
||||||
|
QueryTable[3].Name = L"MinimumViewCount";
|
||||||
|
QueryTable[3].EntryContext = &MinimumViewCount;
|
||||||
|
QueryTable[4].Flags = 32;
|
||||||
|
QueryTable[4].Name = L"DefaultViewCount";
|
||||||
|
QueryTable[4].EntryContext = &DefaultViewCount;
|
||||||
|
QueryTable[5].Flags = 32;
|
||||||
|
QueryTable[5].Name = L"MaximumViewCount";
|
||||||
|
QueryTable[5].EntryContext = &MaximumViewCount;
|
||||||
|
QueryTable[6].Flags = 32;
|
||||||
|
QueryTable[6].Name = L"MinimumViewLength";
|
||||||
|
QueryTable[6].EntryContext = &MinimumViewLength;
|
||||||
|
QueryTable[7].Flags = 32;
|
||||||
|
QueryTable[7].Name = L"DefaultViewLength";
|
||||||
|
QueryTable[7].EntryContext = &DefaultViewLength;
|
||||||
|
QueryTable[8].Flags = 32;
|
||||||
|
QueryTable[8].Name = L"MaximumViewLength";
|
||||||
|
QueryTable[8].EntryContext = &MaximumViewLength;
|
||||||
|
QueryTable[9].Flags = 32;
|
||||||
|
QueryTable[9].Name = L"MaximumPerDiskViewLength";
|
||||||
|
QueryTable[9].EntryContext = &MaximumPerDiskViewLength;
|
||||||
|
RtlQueryRegistryValues(RTL_REGISTRY_OPTIONAL,
|
||||||
|
RegistryPath->Buffer,
|
||||||
|
QueryTable,
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse minimum view count, cannot be bigger than 256 or smaller than 2
|
||||||
|
//
|
||||||
|
MinView = MinimumViewCount;
|
||||||
|
if (MinimumViewCount >= 2)
|
||||||
|
{
|
||||||
|
if (MinimumViewCount > 256) MinView = 256;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MinView = 2;
|
||||||
|
}
|
||||||
|
MinimumViewCount = MinView;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse default view count, cannot be bigger than 256 or smaller than minimum
|
||||||
|
//
|
||||||
|
DefView = DefaultViewCount;
|
||||||
|
if (DefaultViewCount >= MinView)
|
||||||
|
{
|
||||||
|
if (DefaultViewCount > 256) DefView = 256;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DefView = MinView;
|
||||||
|
}
|
||||||
|
DefaultViewCount = DefView;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse maximum view count, cannot be bigger than 256 or smaller than default
|
||||||
|
//
|
||||||
|
if (MaximumViewCount >= DefView)
|
||||||
|
{
|
||||||
|
if (MaximumViewCount > 256) MaximumViewCount = 256;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MaximumViewCount = DefView;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse minimum view length, cannot be bigger than 1GB or smaller than 64KB
|
||||||
|
//
|
||||||
|
MinViewLength = MinimumViewLength;
|
||||||
|
if (MinimumViewLength >= 0x10000)
|
||||||
|
{
|
||||||
|
if (MinimumViewLength > 0x40000000) MinViewLength = 0x40000000u;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MinViewLength = 0x10000u;
|
||||||
|
}
|
||||||
|
MinimumViewLength = MinViewLength;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse default view length, cannot be bigger than 1GB or smaller than minimum
|
||||||
|
//
|
||||||
|
DefViewLength = DefaultViewLength;
|
||||||
|
if (DefaultViewLength >= MinViewLength)
|
||||||
|
{
|
||||||
|
if (DefaultViewLength > 0x40000000) DefViewLength = 0x40000000u;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DefViewLength = MinViewLength;
|
||||||
|
}
|
||||||
|
DefaultViewLength = DefViewLength;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse maximum view length, cannot be bigger than 1GB or smaller than default
|
||||||
|
//
|
||||||
|
MaxViewLength = MaximumViewLength;
|
||||||
|
if (MaximumViewLength >= DefViewLength)
|
||||||
|
{
|
||||||
|
if (MaximumViewLength > 0x40000000) MaxViewLength = 0x40000000u;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MaxViewLength = DefViewLength;
|
||||||
|
}
|
||||||
|
MaximumViewLength = MaxViewLength;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parse maximum view length per disk, cannot be smaller than 16MB
|
||||||
|
//
|
||||||
|
if (MaximumPerDiskViewLength >= 0x1000000)
|
||||||
|
{
|
||||||
|
if (MaxViewLength > 0xFFFFFFFF) MaximumPerDiskViewLength = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MaximumPerDiskViewLength = 0x1000000u;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskOpenClose(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskReadWrite(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskPnp(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskPower(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskSystemControl(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskScsi(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskFlushBuffers(IN PDEVICE_OBJECT DeviceObject,
|
||||||
|
IN PIRP Irp)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
RamdiskUnload(IN PDRIVER_OBJECT DriverObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
RamdiskAddDevice(IN PDRIVER_OBJECT DriverObject,
|
||||||
|
IN PDEVICE_OBJECT PhysicalDeviceObject)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
while (TRUE);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
|
IN PUNICODE_STRING RegistryPath)
|
||||||
|
{
|
||||||
|
PCHAR BootDeviceName, CommandLine;
|
||||||
|
PDEVICE_OBJECT PhysicalDeviceObject;
|
||||||
|
NTSTATUS Status;
|
||||||
|
DPRINT1("RAMDISK Class Driver\n");
|
||||||
|
|
||||||
|
//
|
||||||
|
// Query ramdisk parameters
|
||||||
|
//
|
||||||
|
QueryParameters(RegistryPath);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Save the registry path
|
||||||
|
//
|
||||||
|
DriverRegistryPath = *RegistryPath;
|
||||||
|
DriverRegistryPath.Buffer = ExAllocatePoolWithTag(PagedPool,
|
||||||
|
RegistryPath->Length +
|
||||||
|
sizeof(WCHAR),
|
||||||
|
TAG('R', 'a', 'm', 'd'));
|
||||||
|
if (!DriverRegistryPath.Buffer) return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
RtlCopyUnicodeString(&DriverRegistryPath, RegistryPath);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set device routines
|
||||||
|
//
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_CREATE] = RamdiskOpenClose;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_CLOSE] = RamdiskOpenClose;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_READ] = RamdiskReadWrite;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_WRITE] = RamdiskReadWrite;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = RamdiskDeviceControl;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_PNP] = RamdiskPnp;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_POWER] = RamdiskPower;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = RamdiskSystemControl;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_SCSI] = RamdiskScsi;
|
||||||
|
DriverObject->MajorFunction[IRP_MJ_FLUSH_BUFFERS] = RamdiskFlushBuffers;
|
||||||
|
DriverObject->DriverExtension->AddDevice = RamdiskAddDevice;
|
||||||
|
DriverObject->DriverUnload = RamdiskUnload;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check for a loader block
|
||||||
|
//
|
||||||
|
if (KeLoaderBlock)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Get the boot device name
|
||||||
|
//
|
||||||
|
BootDeviceName = KeLoaderBlock->ArcBootDeviceName;
|
||||||
|
if (BootDeviceName)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Check if we're booting from ramdisk
|
||||||
|
//
|
||||||
|
if ((strlen(BootDeviceName) >= 10) &&
|
||||||
|
!(_strnicmp(BootDeviceName, "ramdisk(0)", 10)))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// We'll have to tell the PnP Manager
|
||||||
|
//
|
||||||
|
ReportDetectedDevice = TRUE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check for a command line
|
||||||
|
//
|
||||||
|
CommandLine = KeLoaderBlock->LoadOptions;
|
||||||
|
if (CommandLine)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Check if this is an ISO boot
|
||||||
|
//
|
||||||
|
if (strstr(CommandLine, "RDEXPORTASCD"))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Remember for later
|
||||||
|
//
|
||||||
|
ExportBootDiskAsCd = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check if this is PE boot
|
||||||
|
//
|
||||||
|
if (strstr(CommandLine, "MININT"))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Remember for later
|
||||||
|
//
|
||||||
|
IsWinPEBoot = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Installing from Ramdisk isn't supported yet
|
||||||
|
//
|
||||||
|
ASSERT(KeLoaderBlock->SetupLdrBlock);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Are we reporting the device
|
||||||
|
//
|
||||||
|
if (ReportDetectedDevice)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Do it
|
||||||
|
//
|
||||||
|
Status = IoReportDetectedDevice(DriverObject,
|
||||||
|
InterfaceTypeUndefined,
|
||||||
|
0xFFFFFFFF,
|
||||||
|
0xFFFFFFFF,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
&PhysicalDeviceObject);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Create the device object
|
||||||
|
//
|
||||||
|
Status = RamdiskAddDevice(DriverObject, PhysicalDeviceObject);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// We're done
|
||||||
|
//
|
||||||
|
PhysicalDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||||
|
Status = STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Done
|
||||||
|
//
|
||||||
|
Status = STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Done
|
||||||
|
//
|
||||||
|
return Status;
|
||||||
|
}
|
12
reactos/drivers/storage/class/ramdisk/ramdisk.rbuild
Normal file
12
reactos/drivers/storage/class/ramdisk/ramdisk.rbuild
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
|
||||||
|
<module name="ramdisk" type="kernelmodedriver" installbase="system32/drivers" installname="ramdisk.sys">
|
||||||
|
<bootstrap installbase="$(CDOUTPUT)" />
|
||||||
|
<linkerflag>-lgcc</linkerflag>
|
||||||
|
<library>ntoskrnl</library>
|
||||||
|
<library>hal</library>
|
||||||
|
<library>class2</library>
|
||||||
|
<library>scsiport</library>
|
||||||
|
<file>ramdisk.c</file>
|
||||||
|
<file>ramdisk.rc</file>
|
||||||
|
</module>
|
5
reactos/drivers/storage/class/ramdisk/ramdisk.rc
Normal file
5
reactos/drivers/storage/class/ramdisk/ramdisk.rc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#define REACTOS_VERSION_DLL
|
||||||
|
#define REACTOS_STR_FILE_DESCRIPTION "Ramdisk Class Driver\0"
|
||||||
|
#define REACTOS_STR_INTERNAL_NAME "ramdisk\0"
|
||||||
|
#define REACTOS_STR_ORIGINAL_FILENAME "ramdisk.sys\0"
|
||||||
|
#include <reactos/version.rc>
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS HAL
|
* PROJECT: ReactOS HAL
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: hal/halarm/generic/hal.c
|
* FILE: hal/halarm/generic/hal.c
|
||||||
* PURPOSE: Hardware Abstraction Layer
|
* PURPOSE: Hardware Abstraction Layer
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS HAL
|
* PROJECT: ReactOS HAL
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: hal/halarm/include/hal.h
|
* FILE: hal/halarm/include/hal.h
|
||||||
* PURPOSE: Hardware Abstraction Layer Header
|
* PURPOSE: Hardware Abstraction Layer Header
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: include/reactos/arm/targets/pl011.h
|
* FILE: include/reactos/arm/targets/pl011.h
|
||||||
* PURPOSE: PL011 Registers and Constants
|
* PURPOSE: PL011 Registers and Constants
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: include/reactos/arm/targets/pl190.h
|
* FILE: include/reactos/arm/targets/pl190.h
|
||||||
* PURPOSE: PL190 Registers and Constants
|
* PURPOSE: PL190 Registers and Constants
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: include/reactos/arm/targets/pl011.h
|
* FILE: include/reactos/arm/targets/pl011.h
|
||||||
* PURPOSE: SB804 Registers and Constants
|
* PURPOSE: SB804 Registers and Constants
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: rtl/arm/debug_asm.S
|
* FILE: rtl/arm/debug_asm.S
|
||||||
* PURPOSE: Cross-privilege Debugging and Exception Support for ARM
|
* PURPOSE: Cross-privilege Debugging and Exception Support for ARM
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/config/arm/cmhardwr.c
|
* FILE: ntoskrnl/config/arm/cmhardwr.c
|
||||||
* PURPOSE: Configuration Manager - ARM Specific Code
|
* PURPOSE: Configuration Manager - ARM Specific Code
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ex/exinrin.c
|
* FILE: ntoskrnl/ex/exintrin.c
|
||||||
* PURPOSE: Exported kernel functions which are now intrinsics
|
* PURPOSE: Exported kernel functions which are now intrinsics
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ex/fastinterlck.c
|
* FILE: ntoskrnl/ex/fastinterlck.c
|
||||||
* PURPOSE: Portable Ex*Interlocked and REGISTER routines for non-x86
|
* PURPOSE: Portable Ex*Interlocked and REGISTER routines for non-x86
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/include/internal/arm/ksarm.h
|
* FILE: ntoskrnl/include/internal/arm/ksarm.h
|
||||||
* PURPOSE: Definitions and offsets for ARM Assembly and C code
|
* PURPOSE: Definitions and offsets for ARM Assembly and C code
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/arm_kprintf.c
|
* FILE: ntoskrnl/ke/arm/arm_kprintf.c
|
||||||
* PURPOSE: Early serial printf-style kernel debugging (ARM bringup)
|
* PURPOSE: Early serial printf-style kernel debugging (ARM bringup)
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/boot.s
|
* FILE: ntoskrnl/ke/arm/boot.s
|
||||||
* PURPOSE: Implements the kernel entry point for ARM machines
|
* PURPOSE: Implements the kernel entry point for ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/cpu.c
|
* FILE: ntoskrnl/ke/arm/cpu.c
|
||||||
* PURPOSE: Implements routines for ARM CPU support
|
* PURPOSE: Implements routines for ARM CPU support
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/ctxswtch.s
|
* FILE: ntoskrnl/ke/arm/ctxswtch.s
|
||||||
* PURPOSE: Context Switch and Idle Thread on ARM
|
* PURPOSE: Context Switch and Idle Thread on ARM
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/exp.c
|
* FILE: ntoskrnl/ke/arm/exp.c
|
||||||
* PURPOSE: Implements exception helper routines for ARM machines
|
* PURPOSE: Implements exception helper routines for ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/kiinit.c
|
* FILE: ntoskrnl/ke/arm/kiinit.c
|
||||||
* PURPOSE: Implements the kernel entry point for ARM machines
|
* PURPOSE: Implements the kernel entry point for ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/thrdini.c
|
* FILE: ntoskrnl/ke/arm/thrdini.c
|
||||||
* PURPOSE: Implements thread context setup and startup for ARM machines
|
* PURPOSE: Implements thread context setup and startup for ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/trap.s
|
* FILE: ntoskrnl/ke/arm/trap.s
|
||||||
* PURPOSE: Support for exceptions and interrupts on ARM machines
|
* PURPOSE: Support for exceptions and interrupts on ARM machines
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ke/arm/trapc.c
|
* FILE: ntoskrnl/ke/arm/trapc.c
|
||||||
* PURPOSE: Implements the various trap handlers for ARM exceptions
|
* PURPOSE: Implements the various trap handlers for ARM exceptions
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/mm/arm/stubs.c
|
* FILE: ntoskrnl/mm/arm/stubs.c
|
||||||
* PURPOSE: ARM Memory Manager
|
* PURPOSE: ARM Memory Manager
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
@ -124,7 +124,7 @@ MmDeletePageTable(IN PEPROCESS Process,
|
||||||
//
|
//
|
||||||
// Not valid for kernel addresses
|
// Not valid for kernel addresses
|
||||||
//
|
//
|
||||||
DPRINT1("MmDeletePageTable(%p, %p)\n", Process, Address);
|
DPRINT("MmDeletePageTable(%p, %p)\n", Process, Address);
|
||||||
ASSERT(Address < MmSystemRangeStart);
|
ASSERT(Address < MmSystemRangeStart);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -388,7 +388,7 @@ MmCreateVirtualMappingForKernel(IN PVOID Address,
|
||||||
MMPTE TempPte, TempPde;
|
MMPTE TempPte, TempPde;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PFN_NUMBER Pfn;
|
PFN_NUMBER Pfn;
|
||||||
DPRINT1("[KMAP]: %p %d\n", Address, PageCount);
|
DPRINT("[KMAP]: %p %d\n", Address, PageCount);
|
||||||
//ASSERT(Address >= MmSystemRangeStart);
|
//ASSERT(Address >= MmSystemRangeStart);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -679,7 +679,7 @@ MmCreateHyperspaceMapping(IN PFN_TYPE Page)
|
||||||
//
|
//
|
||||||
Address = HYPER_SPACE + ((PointerPte - FirstPte) * PAGE_SIZE);
|
Address = HYPER_SPACE + ((PointerPte - FirstPte) * PAGE_SIZE);
|
||||||
KiFlushSingleTb(FALSE, Address);
|
KiFlushSingleTb(FALSE, Address);
|
||||||
DPRINT1("[HMAP]: %p %lx\n", Address, Page);
|
DPRINT("[HMAP]: %p %lx\n", Address, Page);
|
||||||
return Address;
|
return Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -689,7 +689,7 @@ MmDeleteHyperspaceMapping(IN PVOID Address)
|
||||||
{
|
{
|
||||||
PFN_TYPE Pfn;
|
PFN_TYPE Pfn;
|
||||||
PMMPTE PointerPte;
|
PMMPTE PointerPte;
|
||||||
DPRINT1("[HUNMAP]: %p\n", Address);
|
DPRINT("[HUNMAP]: %p\n", Address);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get the PTE
|
// Get the PTE
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/ps/arm/pxctx.c
|
* FILE: ntoskrnl/ps/arm/pxctx.c
|
||||||
* PURPOSE: Process Manager: Set/Get Context for ARM
|
* PURPOSE: Process Manager: Set/Get Context for ARM
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* PROJECT: ReactOS Kernel
|
* PROJECT: ReactOS Kernel
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
* LICENSE: BSD - See COPYING.ARM in the top level directory
|
||||||
* FILE: ntoskrnl/rtl/arm/rtlexcpt.c
|
* FILE: ntoskrnl/rtl/arm/rtlexcpt.c
|
||||||
* PURPOSE: ARM Exception Helper Routines for Stack Walking
|
* PURPOSE: ARM Exception Helper Routines for Stack Walking
|
||||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||||
|
|
Loading…
Reference in a new issue