mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 17:44:45 +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
|
||||
* 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
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
|
||||
* 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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue