Author: ros-arm-bringup Date: Sat Jun 28 21:58:05 2008 New Revision: 34170
URL: http://svn.reactos.org/svn/reactos?rev=34170&view=rev Log: - Implement beginnings of Ramdisk Port Driver. Planning compatibility with ISO, SDI and WIM files and full Windows support. - New license for our code.
Added: trunk/reactos/COPYING.ARM trunk/reactos/drivers/storage/class/ramdisk/ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c (with props) trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild (with props) trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc (with props) Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/boot.s trunk/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c trunk/reactos/boot/freeldr/freeldr/arch/arm/versuart.c trunk/reactos/boot/freeldr/freeldr/cmdline.c trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c trunk/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h trunk/reactos/drivers/storage/class/directory.rbuild trunk/reactos/hal/halarm/generic/hal.c trunk/reactos/hal/halarm/include/hal.h trunk/reactos/include/reactos/arm/peripherals/pl011.h trunk/reactos/include/reactos/arm/peripherals/pl190.h trunk/reactos/include/reactos/arm/peripherals/sp804.h trunk/reactos/lib/rtl/arm/debug_asm.S trunk/reactos/ntoskrnl/config/arm/cmhardwr.c trunk/reactos/ntoskrnl/ex/exintrin.c trunk/reactos/ntoskrnl/ex/fastinterlck.c trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h trunk/reactos/ntoskrnl/ke/arm/arm_kprintf.c trunk/reactos/ntoskrnl/ke/arm/boot.s trunk/reactos/ntoskrnl/ke/arm/cpu.c trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s trunk/reactos/ntoskrnl/ke/arm/exp.c trunk/reactos/ntoskrnl/ke/arm/kiinit.c trunk/reactos/ntoskrnl/ke/arm/thrdini.c trunk/reactos/ntoskrnl/ke/arm/trap.s trunk/reactos/ntoskrnl/ke/arm/trapc.c trunk/reactos/ntoskrnl/mm/arm/stubs.c trunk/reactos/ntoskrnl/ps/arm/psctx.c trunk/reactos/ntoskrnl/rtl/arm/rtlexcpt.c
Added: trunk/reactos/COPYING.ARM URL: http://svn.reactos.org/svn/reactos/trunk/reactos/COPYING.ARM?rev=34170&v... ============================================================================== --- trunk/reactos/COPYING.ARM (added) +++ trunk/reactos/COPYING.ARM [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -1,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.
Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/boot.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/arm/boot.s [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/boot.s [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/ferouart.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/versuart.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/arm/versuart.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/versuart.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/cmdline.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/cmdlin... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/cmdline.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/cmdline.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/disk/r... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch/arm/hardware.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/drivers/storage/class/directory.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/direc... ============================================================================== --- trunk/reactos/drivers/storage/class/directory.rbuild [iso-8859-1] (original) +++ trunk/reactos/drivers/storage/class/directory.rbuild [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -10,4 +10,7 @@ <directory name="disk"> <xi:include href="disk/disk.rbuild" /> </directory> + <directory name="ramdisk"> + <xi:include href="ramdisk/ramdisk.rbuild" /> + </directory> </group>
Added: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/ramdi... ============================================================================== --- trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c (added) +++ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -1,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; +}
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c ------------------------------------------------------------------------------ svn:eol-style = native
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.c ------------------------------------------------------------------------------ svn:mime-type = text/plain
Added: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/ramdi... ============================================================================== --- trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild (added) +++ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -1,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>
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild ------------------------------------------------------------------------------ svn:eol-style = native
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rbuild ------------------------------------------------------------------------------ svn:mime-type = text/plain
Added: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/ramdi... ============================================================================== --- trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc (added) +++ trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -1,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>
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc ------------------------------------------------------------------------------ svn:eol-style = native
Propchange: trunk/reactos/drivers/storage/class/ramdisk/ramdisk.rc ------------------------------------------------------------------------------ svn:mime-type = text/plain
Modified: trunk/reactos/hal/halarm/generic/hal.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halarm/generic/hal.c?re... ============================================================================== --- trunk/reactos/hal/halarm/generic/hal.c [iso-8859-1] (original) +++ trunk/reactos/hal/halarm/generic/hal.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/hal/halarm/include/hal.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halarm/include/hal.h?re... ============================================================================== --- trunk/reactos/hal/halarm/include/hal.h [iso-8859-1] (original) +++ trunk/reactos/hal/halarm/include/hal.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/include/reactos/arm/peripherals/pl011.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/arm/periphe... ============================================================================== --- trunk/reactos/include/reactos/arm/peripherals/pl011.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/arm/peripherals/pl011.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/include/reactos/arm/peripherals/pl190.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/arm/periphe... ============================================================================== --- trunk/reactos/include/reactos/arm/peripherals/pl190.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/arm/peripherals/pl190.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/include/reactos/arm/peripherals/sp804.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/arm/periphe... ============================================================================== --- trunk/reactos/include/reactos/arm/peripherals/sp804.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/arm/peripherals/sp804.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/lib/rtl/arm/debug_asm.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/arm/debug_asm.S?rev... ============================================================================== --- trunk/reactos/lib/rtl/arm/debug_asm.S [iso-8859-1] (original) +++ trunk/reactos/lib/rtl/arm/debug_asm.S [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/config/arm/cmhardwr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/arm/cmhardw... ============================================================================== --- trunk/reactos/ntoskrnl/config/arm/cmhardwr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/config/arm/cmhardwr.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ex/exintrin.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/exintrin.c?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ex/exintrin.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ex/exintrin.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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 */
Modified: trunk/reactos/ntoskrnl/ex/fastinterlck.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/fastinterlck.c?... ============================================================================== --- trunk/reactos/ntoskrnl/ex/fastinterlck.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ex/fastinterlck.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/a... ============================================================================== --- trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/arm_kprintf.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/arm_kprintf... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/arm_kprintf.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/arm_kprintf.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/boot.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/boot.s?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/cpu.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/cpu.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/cpu.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/cpu.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s?... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/exp.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/exp.c?rev=3... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/exp.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/exp.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/kiinit.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/kiinit.c?re... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/kiinit.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/kiinit.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/thrdini.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/thrdini.c?r... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/thrdini.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/thrdini.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/trap.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trap.s?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/ke/arm/trapc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trapc.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/trapc.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/trapc.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/mm/arm/stubs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/arm/stubs.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/mm/arm/stubs.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/arm/stubs.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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 @@ // // 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 @@ 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 @@ // 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 @@ { PFN_TYPE Pfn; PMMPTE PointerPte; - DPRINT1("[HUNMAP]: %p\n", Address); + DPRINT("[HUNMAP]: %p\n", Address);
// // Get the PTE
Modified: trunk/reactos/ntoskrnl/ps/arm/psctx.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/arm/psctx.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/ps/arm/psctx.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ps/arm/psctx.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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
Modified: trunk/reactos/ntoskrnl/rtl/arm/rtlexcpt.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/rtl/arm/rtlexcpt.c... ============================================================================== --- trunk/reactos/ntoskrnl/rtl/arm/rtlexcpt.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/rtl/arm/rtlexcpt.c [iso-8859-1] Sat Jun 28 21:58:05 2008 @@ -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