From c50bcc2c12d95289048229ec6ce23e413d303655 Mon Sep 17 00:00:00 2001 From: ReactOS Portable Systems Group Date: Sun, 29 Jun 2008 02:58:05 +0000 Subject: [PATCH] - 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 --- reactos/COPYING.ARM | 23 + reactos/boot/freeldr/freeldr/arch/arm/boot.s | 2 +- .../boot/freeldr/freeldr/arch/arm/ferouart.c | 2 +- .../boot/freeldr/freeldr/arch/arm/loader.c | 2 +- .../boot/freeldr/freeldr/arch/arm/macharm.c | 2 +- .../boot/freeldr/freeldr/arch/arm/versuart.c | 2 +- reactos/boot/freeldr/freeldr/cmdline.c | 2 +- reactos/boot/freeldr/freeldr/disk/ramdisk.c | 2 +- .../freeldr/include/arch/arm/hardware.h | 2 +- .../boot/freeldr/freeldr/include/ramdisk.h | 2 +- .../drivers/storage/class/directory.rbuild | 3 + .../drivers/storage/class/ramdisk/ramdisk.c | 438 ++++++++++++++++++ .../storage/class/ramdisk/ramdisk.rbuild | 12 + .../drivers/storage/class/ramdisk/ramdisk.rc | 5 + reactos/hal/halarm/generic/hal.c | 2 +- reactos/hal/halarm/include/hal.h | 2 +- .../include/reactos/arm/peripherals/pl011.h | 2 +- .../include/reactos/arm/peripherals/pl190.h | 2 +- .../include/reactos/arm/peripherals/sp804.h | 2 +- reactos/lib/rtl/arm/debug_asm.S | 2 +- reactos/ntoskrnl/config/arm/cmhardwr.c | 2 +- reactos/ntoskrnl/ex/exintrin.c | 4 +- reactos/ntoskrnl/ex/fastinterlck.c | 2 +- reactos/ntoskrnl/include/internal/arm/ksarm.h | 2 +- reactos/ntoskrnl/ke/arm/arm_kprintf.c | 2 +- reactos/ntoskrnl/ke/arm/boot.s | 2 +- reactos/ntoskrnl/ke/arm/cpu.c | 2 +- reactos/ntoskrnl/ke/arm/ctxswtch.s | 2 +- reactos/ntoskrnl/ke/arm/exp.c | 2 +- reactos/ntoskrnl/ke/arm/kiinit.c | 2 +- reactos/ntoskrnl/ke/arm/thrdini.c | 2 +- reactos/ntoskrnl/ke/arm/trap.s | 2 +- reactos/ntoskrnl/ke/arm/trapc.c | 2 +- reactos/ntoskrnl/mm/arm/stubs.c | 10 +- reactos/ntoskrnl/ps/arm/psctx.c | 2 +- reactos/ntoskrnl/rtl/arm/rtlexcpt.c | 2 +- 36 files changed, 517 insertions(+), 36 deletions(-) create mode 100644 reactos/COPYING.ARM create mode 100644 reactos/drivers/storage/class/ramdisk/ramdisk.c create mode 100644 reactos/drivers/storage/class/ramdisk/ramdisk.rbuild create mode 100644 reactos/drivers/storage/class/ramdisk/ramdisk.rc diff --git a/reactos/COPYING.ARM b/reactos/COPYING.ARM new file mode 100644 index 00000000000..90d23b3263b --- /dev/null +++ b/reactos/COPYING.ARM @@ -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. diff --git a/reactos/boot/freeldr/freeldr/arch/arm/boot.s b/reactos/boot/freeldr/freeldr/arch/arm/boot.s index 3c046c0c622..a4fe1d375ba 100644 --- a/reactos/boot/freeldr/freeldr/arch/arm/boot.s +++ b/reactos/boot/freeldr/freeldr/arch/arm/boot.s @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements the entry point for ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c b/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c index 351c3fbb50c..0c8f9b0f234 100644 --- a/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c +++ b/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements code for Feroceon boards using the 16550 UART * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/arch/arm/loader.c b/reactos/boot/freeldr/freeldr/arch/arm/loader.c index daae174546c..35860b4e972 100644 --- a/reactos/boot/freeldr/freeldr/arch/arm/loader.c +++ b/reactos/boot/freeldr/freeldr/arch/arm/loader.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: ARM Kernel Loader * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/arch/arm/macharm.c b/reactos/boot/freeldr/freeldr/arch/arm/macharm.c index 08dc68918b3..6e2595f48be 100644 --- a/reactos/boot/freeldr/freeldr/arch/arm/macharm.c +++ b/reactos/boot/freeldr/freeldr/arch/arm/macharm.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Provides abstraction between the ARM Boot Loader and FreeLDR * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/arch/arm/versuart.c b/reactos/boot/freeldr/freeldr/arch/arm/versuart.c index 3119bc717d5..36d483088c0 100644 --- a/reactos/boot/freeldr/freeldr/arch/arm/versuart.c +++ b/reactos/boot/freeldr/freeldr/arch/arm/versuart.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements code for Versatile boards using the PL011 UART * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/cmdline.c b/reactos/boot/freeldr/freeldr/cmdline.c index 9a5e4597ea5..d275df68aa2 100644 --- a/reactos/boot/freeldr/freeldr/cmdline.c +++ b/reactos/boot/freeldr/freeldr/cmdline.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: FreeLDR Command Line Parsing * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/disk/ramdisk.c b/reactos/boot/freeldr/freeldr/disk/ramdisk.c index b31a1aae6f0..ee087967b6e 100644 --- a/reactos/boot/freeldr/freeldr/disk/ramdisk.c +++ b/reactos/boot/freeldr/freeldr/disk/ramdisk.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements routines to support booting from a RAM Disk * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h b/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h index 76681e9b78c..60f9186d63f 100644 --- a/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h +++ b/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Header for ARC definitions (to be cleaned up) * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/boot/freeldr/freeldr/include/ramdisk.h b/reactos/boot/freeldr/freeldr/include/ramdisk.h index d1e69aabcc5..f53e8861584 100644 --- a/reactos/boot/freeldr/freeldr/include/ramdisk.h +++ b/reactos/boot/freeldr/freeldr/include/ramdisk.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Header file for ramdisk support * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/drivers/storage/class/directory.rbuild b/reactos/drivers/storage/class/directory.rbuild index 954bba395f4..2d997501541 100644 --- a/reactos/drivers/storage/class/directory.rbuild +++ b/reactos/drivers/storage/class/directory.rbuild @@ -10,4 +10,7 @@ + + + diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.c b/reactos/drivers/storage/class/ramdisk/ramdisk.c new file mode 100644 index 00000000000..e65591e6797 --- /dev/null +++ b/reactos/drivers/storage/class/ramdisk/ramdisk.c @@ -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 +#include +#include +#include +#include +#include +#include +#include +#include +#define NDEBUG +#include + +/* 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; +} diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild b/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild new file mode 100644 index 00000000000..a726f9e7c72 --- /dev/null +++ b/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild @@ -0,0 +1,12 @@ + + + + + -lgcc + ntoskrnl + hal + class2 + scsiport + ramdisk.c + ramdisk.rc + diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.rc b/reactos/drivers/storage/class/ramdisk/ramdisk.rc new file mode 100644 index 00000000000..a9892d4b3f0 --- /dev/null +++ b/reactos/drivers/storage/class/ramdisk/ramdisk.rc @@ -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 diff --git a/reactos/hal/halarm/generic/hal.c b/reactos/hal/halarm/generic/hal.c index 928f4aaa918..a889d08ce35 100644 --- a/reactos/hal/halarm/generic/hal.c +++ b/reactos/hal/halarm/generic/hal.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Hardware Abstraction Layer * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/hal/halarm/include/hal.h b/reactos/hal/halarm/include/hal.h index 859c23136cb..e16859b753f 100644 --- a/reactos/hal/halarm/include/hal.h +++ b/reactos/hal/halarm/include/hal.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Hardware Abstraction Layer Header * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/include/reactos/arm/peripherals/pl011.h b/reactos/include/reactos/arm/peripherals/pl011.h index ec9208f10ef..1f91dcc9578 100644 --- a/reactos/include/reactos/arm/peripherals/pl011.h +++ b/reactos/include/reactos/arm/peripherals/pl011.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: PL011 Registers and Constants * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/include/reactos/arm/peripherals/pl190.h b/reactos/include/reactos/arm/peripherals/pl190.h index 935cced31b4..0d266b4e3ee 100644 --- a/reactos/include/reactos/arm/peripherals/pl190.h +++ b/reactos/include/reactos/arm/peripherals/pl190.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: PL190 Registers and Constants * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/include/reactos/arm/peripherals/sp804.h b/reactos/include/reactos/arm/peripherals/sp804.h index 852134403a3..7dea73b36cf 100644 --- a/reactos/include/reactos/arm/peripherals/sp804.h +++ b/reactos/include/reactos/arm/peripherals/sp804.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: SB804 Registers and Constants * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/lib/rtl/arm/debug_asm.S b/reactos/lib/rtl/arm/debug_asm.S index 772398276d8..8a5813d4f55 100644 --- a/reactos/lib/rtl/arm/debug_asm.S +++ b/reactos/lib/rtl/arm/debug_asm.S @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Cross-privilege Debugging and Exception Support for ARM * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/config/arm/cmhardwr.c b/reactos/ntoskrnl/config/arm/cmhardwr.c index ea7162c9bb2..ba858e91105 100644 --- a/reactos/ntoskrnl/config/arm/cmhardwr.c +++ b/reactos/ntoskrnl/config/arm/cmhardwr.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Configuration Manager - ARM Specific Code * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ex/exintrin.c b/reactos/ntoskrnl/ex/exintrin.c index e9604a9ff34..e8130143675 100644 --- a/reactos/ntoskrnl/ex/exintrin.c +++ b/reactos/ntoskrnl/ex/exintrin.c @@ -1,7 +1,7 @@ /* * PROJECT: ReactOS Kernel - * LICENSE: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ex/exinrin.c + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: ntoskrnl/ex/exintrin.c * PURPOSE: Exported kernel functions which are now intrinsics * PROGRAMMERS: ReactOS Portable Systems Group */ diff --git a/reactos/ntoskrnl/ex/fastinterlck.c b/reactos/ntoskrnl/ex/fastinterlck.c index 42fee848cd8..18fd8545cbb 100644 --- a/reactos/ntoskrnl/ex/fastinterlck.c +++ b/reactos/ntoskrnl/ex/fastinterlck.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Portable Ex*Interlocked and REGISTER routines for non-x86 * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/include/internal/arm/ksarm.h b/reactos/ntoskrnl/include/internal/arm/ksarm.h index 0d93f8d417e..fb3c7b823bb 100644 --- a/reactos/ntoskrnl/include/internal/arm/ksarm.h +++ b/reactos/ntoskrnl/include/internal/arm/ksarm.h @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Definitions and offsets for ARM Assembly and C code * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/arm_kprintf.c b/reactos/ntoskrnl/ke/arm/arm_kprintf.c index 69a59736673..69099c48b6b 100644 --- a/reactos/ntoskrnl/ke/arm/arm_kprintf.c +++ b/reactos/ntoskrnl/ke/arm/arm_kprintf.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Early serial printf-style kernel debugging (ARM bringup) * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/boot.s b/reactos/ntoskrnl/ke/arm/boot.s index 27a4938e1de..d2188b62872 100644 --- a/reactos/ntoskrnl/ke/arm/boot.s +++ b/reactos/ntoskrnl/ke/arm/boot.s @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements the kernel entry point for ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/cpu.c b/reactos/ntoskrnl/ke/arm/cpu.c index 12f3215b4bf..9ea476a04ff 100644 --- a/reactos/ntoskrnl/ke/arm/cpu.c +++ b/reactos/ntoskrnl/ke/arm/cpu.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements routines for ARM CPU support * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/ctxswtch.s b/reactos/ntoskrnl/ke/arm/ctxswtch.s index 40c58ef975e..8cc45827914 100644 --- a/reactos/ntoskrnl/ke/arm/ctxswtch.s +++ b/reactos/ntoskrnl/ke/arm/ctxswtch.s @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Context Switch and Idle Thread on ARM * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/exp.c b/reactos/ntoskrnl/ke/arm/exp.c index 82e0028a466..5fdd93e5752 100644 --- a/reactos/ntoskrnl/ke/arm/exp.c +++ b/reactos/ntoskrnl/ke/arm/exp.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements exception helper routines for ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/kiinit.c b/reactos/ntoskrnl/ke/arm/kiinit.c index f93f58bd4d9..59f69ab8637 100644 --- a/reactos/ntoskrnl/ke/arm/kiinit.c +++ b/reactos/ntoskrnl/ke/arm/kiinit.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements the kernel entry point for ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/thrdini.c b/reactos/ntoskrnl/ke/arm/thrdini.c index 2b94016b885..a94618b2c0b 100644 --- a/reactos/ntoskrnl/ke/arm/thrdini.c +++ b/reactos/ntoskrnl/ke/arm/thrdini.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements thread context setup and startup for ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/trap.s b/reactos/ntoskrnl/ke/arm/trap.s index a4d59608281..3cabe9d62b3 100644 --- a/reactos/ntoskrnl/ke/arm/trap.s +++ b/reactos/ntoskrnl/ke/arm/trap.s @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Support for exceptions and interrupts on ARM machines * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/ke/arm/trapc.c b/reactos/ntoskrnl/ke/arm/trapc.c index 119490366fd..935b22303bc 100644 --- a/reactos/ntoskrnl/ke/arm/trapc.c +++ b/reactos/ntoskrnl/ke/arm/trapc.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Implements the various trap handlers for ARM exceptions * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/mm/arm/stubs.c b/reactos/ntoskrnl/mm/arm/stubs.c index 652c88091ef..04313246388 100644 --- a/reactos/ntoskrnl/mm/arm/stubs.c +++ b/reactos/ntoskrnl/mm/arm/stubs.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: ARM Memory Manager * PROGRAMMERS: ReactOS Portable Systems Group @@ -124,7 +124,7 @@ MmDeletePageTable(IN PEPROCESS Process, // // Not valid for kernel addresses // - DPRINT1("MmDeletePageTable(%p, %p)\n", Process, Address); + DPRINT("MmDeletePageTable(%p, %p)\n", Process, Address); ASSERT(Address < MmSystemRangeStart); // @@ -388,7 +388,7 @@ MmCreateVirtualMappingForKernel(IN PVOID Address, MMPTE TempPte, TempPde; NTSTATUS Status; PFN_NUMBER Pfn; - DPRINT1("[KMAP]: %p %d\n", Address, PageCount); + DPRINT("[KMAP]: %p %d\n", Address, PageCount); //ASSERT(Address >= MmSystemRangeStart); // @@ -679,7 +679,7 @@ MmCreateHyperspaceMapping(IN PFN_TYPE Page) // Address = HYPER_SPACE + ((PointerPte - FirstPte) * PAGE_SIZE); KiFlushSingleTb(FALSE, Address); - DPRINT1("[HMAP]: %p %lx\n", Address, Page); + DPRINT("[HMAP]: %p %lx\n", Address, Page); return Address; } @@ -689,7 +689,7 @@ MmDeleteHyperspaceMapping(IN PVOID Address) { PFN_TYPE Pfn; PMMPTE PointerPte; - DPRINT1("[HUNMAP]: %p\n", Address); + DPRINT("[HUNMAP]: %p\n", Address); // // Get the PTE diff --git a/reactos/ntoskrnl/ps/arm/psctx.c b/reactos/ntoskrnl/ps/arm/psctx.c index c23a3d9aa1e..53bcbe9f4a7 100644 --- a/reactos/ntoskrnl/ps/arm/psctx.c +++ b/reactos/ntoskrnl/ps/arm/psctx.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: Process Manager: Set/Get Context for ARM * PROGRAMMERS: ReactOS Portable Systems Group diff --git a/reactos/ntoskrnl/rtl/arm/rtlexcpt.c b/reactos/ntoskrnl/rtl/arm/rtlexcpt.c index 65547be639e..01db49e12c4 100644 --- a/reactos/ntoskrnl/rtl/arm/rtlexcpt.c +++ b/reactos/ntoskrnl/rtl/arm/rtlexcpt.c @@ -1,6 +1,6 @@ /* * 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 * PURPOSE: ARM Exception Helper Routines for Stack Walking * PROGRAMMERS: ReactOS Portable Systems Group