You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
2.5 KiB
140 lines
2.5 KiB
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ramdisk.h
|
|
|
|
Abstract:
|
|
|
|
Provides the ARC emulation routines for I/O to a RAM disk device.
|
|
|
|
Author:
|
|
|
|
Chuck Lenzmeier (chuckl) 29-Apr-2001
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
//
|
|
// Ramdisk error Codes. These are defined in \bldr\msg.* or
|
|
// \setup\msgs.*. They are redefined here since ramdisk.c
|
|
// is in \lib and is used in both osloader and setupldr.
|
|
//
|
|
#define RAMDISK_GENERAL_FAILURE 15000
|
|
#define RAMDISK_INVALID_OPTIONS 15001
|
|
#define RAMDISK_BUILD_FAILURE 15002
|
|
#define RAMDISK_BOOT_FAILURE 15003
|
|
#define RAMDISK_BUILD_DISCOVER 15004
|
|
#define RAMDISK_BUILD_REQUEST 15005
|
|
#define RAMDISK_BUILD_PROGRESS_TIMEOUT 15006
|
|
#define RAMDISK_BUILD_PROGRESS_PENDING 15007
|
|
#define RAMDISK_BUILD_PROGRESS_ERROR 15008
|
|
#define RAMDISK_BUILD_PROGRESS 15009
|
|
#define RAMDISK_DOWNLOAD 15010
|
|
#define RAMDISK_DOWNLOAD_NETWORK 15011
|
|
#define RAMDISK_DOWNLOAD_NETWORK_MCAST 15012
|
|
|
|
//
|
|
// Ramdisk Initialization
|
|
//
|
|
|
|
ARC_STATUS
|
|
RamdiskInitialize(
|
|
IN PCHAR LoadOptions,
|
|
IN BOOLEAN SdiBoot
|
|
);
|
|
|
|
#if defined(_X86_)
|
|
VOID
|
|
RamdiskSdiBoot(
|
|
PCHAR SdiFile
|
|
);
|
|
#endif
|
|
|
|
//
|
|
// ARC I/O functions
|
|
//
|
|
|
|
ARC_STATUS
|
|
RamdiskClose(
|
|
IN ULONG FileId
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskMount(
|
|
IN CHAR * FIRMWARE_PTR MountPath,
|
|
IN MOUNT_OPERATION Operation
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskOpen(
|
|
IN PCHAR OpenPath,
|
|
IN OPEN_MODE OpenMode,
|
|
OUT PULONG FileId
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskRead(
|
|
IN ULONG FileId,
|
|
OUT PVOID Buffer,
|
|
IN ULONG Length,
|
|
OUT PULONG Count
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskReadStatus(
|
|
IN ULONG FileId
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskSeek (
|
|
IN ULONG FileId,
|
|
IN PLARGE_INTEGER Offset,
|
|
IN SEEK_MODE SeekMode
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskWrite(
|
|
IN ULONG FileId,
|
|
OUT PVOID Buffer,
|
|
IN ULONG Length,
|
|
OUT PULONG Count
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskGetFileInfo(
|
|
IN ULONG FileId,
|
|
OUT PFILE_INFORMATION Finfo
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskSetFileInfo (
|
|
IN ULONG FileId,
|
|
IN ULONG AttributeFlags,
|
|
IN ULONG AttributeMask
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskRename (
|
|
IN ULONG FileId,
|
|
IN CHAR * FIRMWARE_PTR NewName
|
|
);
|
|
|
|
ARC_STATUS
|
|
RamdiskGetDirectoryEntry (
|
|
IN ULONG FileId,
|
|
OUT PDIRECTORY_ENTRY Buffer,
|
|
IN ULONG Length,
|
|
OUT ULONG * FIRMWARE_PTR Count
|
|
);
|
|
|
|
//
|
|
// Global variables
|
|
//
|
|
|
|
ULONG_PTR SdiAddress;
|
|
|