mirror of
https://github.com/reactos/reactos.git
synced 2024-06-29 01:12:06 +00:00
[FREELDR][INCLUDES]
- ARC disk functions return ARC_STATUS codes (that are ULONG btw, not LONG). Fix prototypes where needed. - Rearrange a bit our arc.h header by putting together related structures. [FREELDR] - Remove arcemul/time.c (put functions back into machine.c). ARC functions should use some SYSTEM_PARAMETER_BLOCK firmware vector array instead... svn path=/trunk/; revision=65964
This commit is contained in:
parent
66ef750fba
commit
9743a65b37
|
@ -40,7 +40,6 @@ list(APPEND FREELDR_COMMON_SOURCE
|
||||||
options.c
|
options.c
|
||||||
oslist.c
|
oslist.c
|
||||||
version.c
|
version.c
|
||||||
arcemul/time.c
|
|
||||||
cache/blocklist.c
|
cache/blocklist.c
|
||||||
cache/cache.c
|
cache/cache.c
|
||||||
comm/rs232.c
|
comm/rs232.c
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* PROJECT: ReactOS Boot Loader (FreeLDR)
|
|
||||||
* LICENSE: GPL - See COPYING in the top level directory
|
|
||||||
* FILE: boot/freeldr/freeldr/arcemul/time.c
|
|
||||||
* PURPOSE: Routines for Time measurement
|
|
||||||
* PROGRAMMERS: Hervé Poussineau <hpoussin@reactos.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* INCLUDES *******************************************************************/
|
|
||||||
|
|
||||||
#include <freeldr.h>
|
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
|
||||||
|
|
||||||
TIMEINFO*
|
|
||||||
ArcGetTime(VOID)
|
|
||||||
{
|
|
||||||
return MachVtbl.GetTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
ArcGetRelativeTime(VOID)
|
|
||||||
{
|
|
||||||
TIMEINFO* TimeInfo;
|
|
||||||
ULONG ret;
|
|
||||||
|
|
||||||
TimeInfo = ArcGetTime();
|
|
||||||
ret = ((TimeInfo->Hour * 24) + TimeInfo->Minute) * 60 + TimeInfo->Second;
|
|
||||||
return ret;
|
|
||||||
}
|
|
|
@ -44,7 +44,7 @@ UCHAR PcBiosDiskCount = 0;
|
||||||
CHAR PcDiskIdentifier[32][20];
|
CHAR PcDiskIdentifier[32][20];
|
||||||
|
|
||||||
|
|
||||||
static LONG DiskClose(ULONG FileId)
|
static ARC_STATUS DiskClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ static LONG DiskClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
static ARC_STATUS DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
static ARC_STATUS DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context;
|
DISKCONTEXT* Context;
|
||||||
UCHAR DriveNumber;
|
UCHAR DriveNumber;
|
||||||
|
@ -110,7 +110,7 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
static ARC_STATUS DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
UCHAR* Ptr = (UCHAR*)Buffer;
|
UCHAR* Ptr = (UCHAR*)Buffer;
|
||||||
|
@ -155,7 +155,7 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return (!ret) ? EIO : ESUCCESS;
|
return (!ret) ? EIO : ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
static ARC_STATUS DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ typedef struct tagDISKCONTEXT
|
||||||
} DISKCONTEXT;
|
} DISKCONTEXT;
|
||||||
|
|
||||||
static
|
static
|
||||||
LONG
|
ARC_STATUS
|
||||||
DiskClose(ULONG FileId)
|
DiskClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
@ -119,7 +119,7 @@ DiskClose(ULONG FileId)
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
LONG
|
ARC_STATUS
|
||||||
DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
@ -132,7 +132,7 @@ DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
LONG
|
ARC_STATUS
|
||||||
DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context;
|
DISKCONTEXT* Context;
|
||||||
|
@ -185,7 +185,7 @@ DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
LONG
|
ARC_STATUS
|
||||||
DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
@ -219,7 +219,7 @@ DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
LONG
|
ARC_STATUS
|
||||||
DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
|
@ -21,7 +21,7 @@ ULONG gRamDiskOffset;
|
||||||
|
|
||||||
/* FUNCTIONS ******************************************************************/
|
/* FUNCTIONS ******************************************************************/
|
||||||
|
|
||||||
static LONG RamDiskClose(ULONG FileId)
|
static ARC_STATUS RamDiskClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Nothing to do
|
// Nothing to do
|
||||||
|
@ -29,7 +29,7 @@ static LONG RamDiskClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG RamDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
static ARC_STATUS RamDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Give current seek offset and ram disk size to caller
|
// Give current seek offset and ram disk size to caller
|
||||||
|
@ -41,7 +41,7 @@ static LONG RamDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG RamDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
static ARC_STATUS RamDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Always return success, as contents are already in memory
|
// Always return success, as contents are already in memory
|
||||||
|
@ -49,7 +49,7 @@ static LONG RamDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG RamDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
static ARC_STATUS RamDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
PVOID StartAddress;
|
PVOID StartAddress;
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ static LONG RamDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG RamDiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
static ARC_STATUS RamDiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Only accept absolute mode now
|
// Only accept absolute mode now
|
||||||
|
|
|
@ -148,7 +148,7 @@ typedef struct tagDISKCONTEXT
|
||||||
ULONGLONG SectorNumber;
|
ULONGLONG SectorNumber;
|
||||||
} DISKCONTEXT;
|
} DISKCONTEXT;
|
||||||
|
|
||||||
static LONG DiskClose(ULONG FileId)
|
static ARC_STATUS DiskClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ static LONG DiskClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
static ARC_STATUS DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
static ARC_STATUS DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
PSCSI_REQUEST_BLOCK Srb;
|
PSCSI_REQUEST_BLOCK Srb;
|
||||||
PCDB Cdb;
|
PCDB Cdb;
|
||||||
|
@ -237,7 +237,7 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
static ARC_STATUS DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
PSCSI_REQUEST_BLOCK Srb;
|
PSCSI_REQUEST_BLOCK Srb;
|
||||||
|
@ -345,7 +345,7 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
static ARC_STATUS DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -1196,7 +1196,7 @@ BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG Ext2Close(ULONG FileId)
|
ARC_STATUS Ext2Close(ULONG FileId)
|
||||||
{
|
{
|
||||||
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -1205,7 +1205,7 @@ LONG Ext2Close(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
ARC_STATUS Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -1221,7 +1221,7 @@ LONG Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
ARC_STATUS Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
PEXT2_FILE_INFO FileHandle;
|
PEXT2_FILE_INFO FileHandle;
|
||||||
//ULONG DeviceId;
|
//ULONG DeviceId;
|
||||||
|
@ -1251,7 +1251,7 @@ LONG Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG Ext2Read(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
ARC_STATUS Ext2Read(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
ULONGLONG BytesReadBig;
|
ULONGLONG BytesReadBig;
|
||||||
|
@ -1272,7 +1272,7 @@ LONG Ext2Read(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return EIO;
|
return EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG Ext2Seek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
ARC_STATUS Ext2Seek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -1397,7 +1397,7 @@ BOOLEAN FatReadVolumeSectors(PFAT_VOLUME_INFO Volume, ULONG SectorNumber, ULONG
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG FatClose(ULONG FileId)
|
ARC_STATUS FatClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -1407,7 +1407,7 @@ LONG FatClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
ARC_STATUS FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -1423,7 +1423,7 @@ LONG FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
ARC_STATUS FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
PFAT_VOLUME_INFO FatVolume;
|
PFAT_VOLUME_INFO FatVolume;
|
||||||
FAT_FILE_INFO TempFileInfo;
|
FAT_FILE_INFO TempFileInfo;
|
||||||
|
@ -1465,7 +1465,7 @@ LONG FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG FatRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
ARC_STATUS FatRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
BOOLEAN ret;
|
BOOLEAN ret;
|
||||||
|
@ -1484,7 +1484,7 @@ LONG FatRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return EIO;
|
return EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG FatSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
ARC_STATUS FatSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -224,7 +224,7 @@ typedef struct tagDEVICE
|
||||||
static FILEDATA FileData[MAX_FDS];
|
static FILEDATA FileData[MAX_FDS];
|
||||||
static LIST_ENTRY DeviceListHead;
|
static LIST_ENTRY DeviceListHead;
|
||||||
|
|
||||||
LONG ArcClose(ULONG FileId)
|
ARC_STATUS ArcClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
LONG ret;
|
LONG ret;
|
||||||
|
|
||||||
|
@ -242,14 +242,14 @@ LONG ArcClose(ULONG FileId)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
||||||
return EBADF;
|
return EBADF;
|
||||||
return FileData[FileId].FuncTable->GetFileInformation(FileId, Information);
|
return FileData[FileId].FuncTable->GetFileInformation(FileId, Information);
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
ARC_STATUS ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
ULONG Count, i, ret;
|
ULONG Count, i, ret;
|
||||||
PLIST_ENTRY pEntry;
|
PLIST_ENTRY pEntry;
|
||||||
|
@ -398,14 +398,14 @@ LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
ARC_STATUS ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
||||||
return EBADF;
|
return EBADF;
|
||||||
return FileData[FileId].FuncTable->Read(FileId, Buffer, N, Count);
|
return FileData[FileId].FuncTable->Read(FileId, Buffer, N, Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
ARC_STATUS ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
if (FileId >= MAX_FDS || !FileData[FileId].FuncTable)
|
||||||
return EBADF;
|
return EBADF;
|
||||||
|
|
|
@ -240,7 +240,7 @@ static LONG IsoLookupFile(PCSTR FileName, ULONG DeviceId, PISO_FILE_INFO IsoFile
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG IsoClose(ULONG FileId)
|
ARC_STATUS IsoClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -249,7 +249,7 @@ LONG IsoClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
ARC_STATUS IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ LONG IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
ARC_STATUS IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
ISO_FILE_INFO TempFileInfo;
|
ISO_FILE_INFO TempFileInfo;
|
||||||
PISO_FILE_INFO FileHandle;
|
PISO_FILE_INFO FileHandle;
|
||||||
|
@ -292,7 +292,7 @@ LONG IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG IsoRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
ARC_STATUS IsoRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
UCHAR SectorBuffer[SECTORSIZE];
|
UCHAR SectorBuffer[SECTORSIZE];
|
||||||
|
@ -461,7 +461,7 @@ LONG IsoRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG IsoSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
ARC_STATUS IsoSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -755,7 +755,7 @@ static BOOLEAN NtfsLookupFile(PNTFS_VOLUME_INFO Volume, PCSTR FileName, PNTFS_MF
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG NtfsClose(ULONG FileId)
|
ARC_STATUS NtfsClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ LONG NtfsClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
ARC_STATUS NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
@ -781,7 +781,7 @@ LONG NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
ARC_STATUS NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
PNTFS_VOLUME_INFO Volume;
|
PNTFS_VOLUME_INFO Volume;
|
||||||
PNTFS_FILE_HANDLE FileHandle;
|
PNTFS_FILE_HANDLE FileHandle;
|
||||||
|
@ -828,7 +828,7 @@ LONG NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG NtfsRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
ARC_STATUS NtfsRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
ULONGLONG BytesRead64;
|
ULONGLONG BytesRead64;
|
||||||
|
@ -848,7 +848,7 @@ LONG NtfsRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return EIO;
|
return EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
LONG NtfsSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
ARC_STATUS NtfsSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId);
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ BOOLEAN CallPxe(UINT16 Service, PVOID Parameter)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeClose(ULONG FileId)
|
static ARC_STATUS PxeClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
t_PXENV_TFTP_CLOSE closeData;
|
t_PXENV_TFTP_CLOSE closeData;
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ static LONG PxeClose(ULONG FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
static ARC_STATUS PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
if (_OpenFile == NO_FILE || FileId != _OpenFile)
|
if (_OpenFile == NO_FILE || FileId != _OpenFile)
|
||||||
return EBADF;
|
return EBADF;
|
||||||
|
@ -148,7 +148,7 @@ static LONG PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
static ARC_STATUS PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
t_PXENV_TFTP_GET_FSIZE sizeData;
|
t_PXENV_TFTP_GET_FSIZE sizeData;
|
||||||
t_PXENV_TFTP_OPEN openData;
|
t_PXENV_TFTP_OPEN openData;
|
||||||
|
@ -197,7 +197,7 @@ static LONG PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
static ARC_STATUS PxeRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
t_PXENV_TFTP_READ readData;
|
t_PXENV_TFTP_READ readData;
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -240,7 +240,7 @@ static LONG PxeRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
static ARC_STATUS PxeSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
t_PXENV_TFTP_READ readData;
|
t_PXENV_TFTP_READ readData;
|
||||||
|
|
||||||
|
@ -290,31 +290,31 @@ const DEVVTBL* PxeMount(ULONG DeviceId)
|
||||||
return &PxeVtbl;
|
return &PxeVtbl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeDiskClose(ULONG FileId)
|
static ARC_STATUS PxeDiskClose(ULONG FileId)
|
||||||
{
|
{
|
||||||
// Nothing to do
|
// Nothing to do
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
static ARC_STATUS PxeDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
|
||||||
{
|
{
|
||||||
// No disk access in PXE mode
|
// No disk access in PXE mode
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
static ARC_STATUS PxeDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
|
||||||
{
|
{
|
||||||
// Nothing to do
|
// Nothing to do
|
||||||
return ESUCCESS;
|
return ESUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
static ARC_STATUS PxeDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
|
||||||
{
|
{
|
||||||
// No disk access in PXE mode
|
// No disk access in PXE mode
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONG PxeDiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
static ARC_STATUS PxeDiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
|
||||||
{
|
{
|
||||||
// No disk access in PXE mode
|
// No disk access in PXE mode
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
|
@ -16,24 +16,3 @@
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* component.c */
|
|
||||||
CONFIGURATION_COMPONENT* ArcGetChild(CONFIGURATION_COMPONENT *Current);
|
|
||||||
CONFIGURATION_COMPONENT* ArcGetParent(CONFIGURATION_COMPONENT *Current);
|
|
||||||
CONFIGURATION_COMPONENT* ArcGetPeer(CONFIGURATION_COMPONENT *Current);
|
|
||||||
CONFIGURATION_COMPONENT*
|
|
||||||
ArcAddChild(
|
|
||||||
CONFIGURATION_COMPONENT *Current,
|
|
||||||
CONFIGURATION_COMPONENT *Template,
|
|
||||||
VOID *ConfigurationData);
|
|
||||||
LONG
|
|
||||||
ArcDeleteComponent(
|
|
||||||
CONFIGURATION_COMPONENT *ComponentToDelete);
|
|
||||||
LONG
|
|
||||||
ArcGetConfigurationData(
|
|
||||||
VOID* ConfigurationData,
|
|
||||||
CONFIGURATION_COMPONENT* Component);
|
|
||||||
|
|
||||||
/* time.c */
|
|
||||||
TIMEINFO* ArcGetTime(VOID);
|
|
||||||
ULONG ArcGetRelativeTime(VOID);
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* internal headers */
|
/* internal headers */
|
||||||
#include <arcemul.h>
|
// #include <arcemul.h>
|
||||||
#include <bytesex.h>
|
#include <bytesex.h>
|
||||||
#include <cache.h>
|
#include <cache.h>
|
||||||
#include <cmdline.h>
|
#include <cmdline.h>
|
||||||
|
|
|
@ -43,11 +43,11 @@ VOID* FsGetDeviceSpecific(ULONG FileId);
|
||||||
ULONG FsGetDeviceId(ULONG FileId);
|
ULONG FsGetDeviceId(ULONG FileId);
|
||||||
VOID FsInit(VOID);
|
VOID FsInit(VOID);
|
||||||
|
|
||||||
LONG ArcClose(ULONG FileId);
|
ARC_STATUS ArcClose(ULONG FileId);
|
||||||
LONG ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information);
|
ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information);
|
||||||
LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
|
ARC_STATUS ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
|
||||||
LONG ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
|
ARC_STATUS ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
|
||||||
LONG ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
|
ARC_STATUS ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
|
||||||
|
|
||||||
VOID FileSystemError(PCSTR ErrorString);
|
VOID FileSystemError(PCSTR ErrorString);
|
||||||
PFILE FsOpenFile(PCSTR FileName);
|
PFILE FsOpenFile(PCSTR FileName);
|
||||||
|
|
|
@ -127,4 +127,9 @@ VOID MachHwIdle(VOID);
|
||||||
#define MachHwDetect() MachVtbl.HwDetect()
|
#define MachHwDetect() MachVtbl.HwDetect()
|
||||||
#define MachHwIdle() MachVtbl.HwIdle()
|
#define MachHwIdle() MachVtbl.HwIdle()
|
||||||
|
|
||||||
|
/* ARC FUNCTIONS **************************************************************/
|
||||||
|
|
||||||
|
TIMEINFO* ArcGetTime(VOID);
|
||||||
|
ULONG ArcGetRelativeTime(VOID);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -168,4 +168,24 @@ MachDiskGetCacheableBlockCount(UCHAR DriveNumber)
|
||||||
return MachVtbl.DiskGetCacheableBlockCount(DriveNumber);
|
return MachVtbl.DiskGetCacheableBlockCount(DriveNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ARC FUNCTIONS **************************************************************/
|
||||||
|
|
||||||
|
TIMEINFO*
|
||||||
|
ArcGetTime(VOID)
|
||||||
|
{
|
||||||
|
return MachVtbl.GetTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG
|
||||||
|
ArcGetRelativeTime(VOID)
|
||||||
|
{
|
||||||
|
TIMEINFO* TimeInfo;
|
||||||
|
ULONG ret;
|
||||||
|
|
||||||
|
TimeInfo = ArcGetTime();
|
||||||
|
ret = ((TimeInfo->Hour * 24) + TimeInfo->Minute) * 60 + TimeInfo->Second;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -73,6 +73,31 @@ typedef enum _CONFIGURATION_CLASS
|
||||||
MaximumClass
|
MaximumClass
|
||||||
} CONFIGURATION_CLASS;
|
} CONFIGURATION_CLASS;
|
||||||
|
|
||||||
|
// enum CONFIGURATION_TYPE is defined in ntddk.h
|
||||||
|
|
||||||
|
typedef struct _CONFIGURATION_COMPONENT
|
||||||
|
{
|
||||||
|
CONFIGURATION_CLASS Class;
|
||||||
|
CONFIGURATION_TYPE Type;
|
||||||
|
IDENTIFIER_FLAG Flags;
|
||||||
|
USHORT Version;
|
||||||
|
USHORT Revision;
|
||||||
|
ULONG Key;
|
||||||
|
ULONG AffinityMask;
|
||||||
|
ULONG ConfigurationDataLength;
|
||||||
|
ULONG IdentifierLength;
|
||||||
|
LPSTR Identifier;
|
||||||
|
} CONFIGURATION_COMPONENT, *PCONFIGURATION_COMPONENT;
|
||||||
|
|
||||||
|
typedef struct _CONFIGURATION_COMPONENT_DATA
|
||||||
|
{
|
||||||
|
struct _CONFIGURATION_COMPONENT_DATA *Parent;
|
||||||
|
struct _CONFIGURATION_COMPONENT_DATA *Child;
|
||||||
|
struct _CONFIGURATION_COMPONENT_DATA *Sibling;
|
||||||
|
CONFIGURATION_COMPONENT ComponentEntry;
|
||||||
|
PVOID ConfigurationData;
|
||||||
|
} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
|
||||||
|
|
||||||
typedef enum _TYPE_OF_MEMORY
|
typedef enum _TYPE_OF_MEMORY
|
||||||
{
|
{
|
||||||
LoaderExceptionBlock,
|
LoaderExceptionBlock,
|
||||||
|
@ -167,29 +192,6 @@ typedef struct _ARC_DISK_SIGNATURE
|
||||||
CHAR GptSignature[16];
|
CHAR GptSignature[16];
|
||||||
} ARC_DISK_SIGNATURE, *PARC_DISK_SIGNATURE;
|
} ARC_DISK_SIGNATURE, *PARC_DISK_SIGNATURE;
|
||||||
|
|
||||||
typedef struct _CONFIGURATION_COMPONENT
|
|
||||||
{
|
|
||||||
CONFIGURATION_CLASS Class;
|
|
||||||
CONFIGURATION_TYPE Type;
|
|
||||||
IDENTIFIER_FLAG Flags;
|
|
||||||
USHORT Version;
|
|
||||||
USHORT Revision;
|
|
||||||
ULONG Key;
|
|
||||||
ULONG AffinityMask;
|
|
||||||
ULONG ConfigurationDataLength;
|
|
||||||
ULONG IdentifierLength;
|
|
||||||
LPSTR Identifier;
|
|
||||||
} CONFIGURATION_COMPONENT, *PCONFIGURATION_COMPONENT;
|
|
||||||
|
|
||||||
typedef struct _CONFIGURATION_COMPONENT_DATA
|
|
||||||
{
|
|
||||||
struct _CONFIGURATION_COMPONENT_DATA *Parent;
|
|
||||||
struct _CONFIGURATION_COMPONENT_DATA *Child;
|
|
||||||
struct _CONFIGURATION_COMPONENT_DATA *Sibling;
|
|
||||||
CONFIGURATION_COMPONENT ComponentEntry;
|
|
||||||
PVOID ConfigurationData;
|
|
||||||
} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
|
|
||||||
|
|
||||||
typedef struct _ARC_DISK_INFORMATION
|
typedef struct _ARC_DISK_INFORMATION
|
||||||
{
|
{
|
||||||
LIST_ENTRY DiskSignatureListHead;
|
LIST_ENTRY DiskSignatureListHead;
|
||||||
|
@ -497,9 +499,41 @@ typedef struct tagFILEINFORMATION
|
||||||
CHAR Filename[32];
|
CHAR Filename[32];
|
||||||
} FILEINFORMATION;
|
} FILEINFORMATION;
|
||||||
|
|
||||||
typedef LONG (*ARC_CLOSE)(ULONG FileId);
|
typedef
|
||||||
typedef LONG (*ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION* Information);
|
ARC_STATUS
|
||||||
typedef LONG (*ARC_OPEN)(CHAR* Path, OPENMODE OpenMode, ULONG* FileId);
|
(*ARC_CLOSE)(
|
||||||
typedef LONG (*ARC_READ)(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count);
|
ULONG FileId
|
||||||
typedef LONG (*ARC_SEEK)(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode);
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
ARC_STATUS
|
||||||
|
(*ARC_GET_FILE_INFORMATION)(
|
||||||
|
ULONG FileId,
|
||||||
|
FILEINFORMATION* Information
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
ARC_STATUS
|
||||||
|
(*ARC_OPEN)(
|
||||||
|
CHAR* Path,
|
||||||
|
OPENMODE OpenMode,
|
||||||
|
ULONG* FileId
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
ARC_STATUS
|
||||||
|
(*ARC_READ)(
|
||||||
|
ULONG FileId,
|
||||||
|
VOID* Buffer,
|
||||||
|
ULONG N, ULONG* Count
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
ARC_STATUS
|
||||||
|
(*ARC_SEEK)(
|
||||||
|
ULONG FileId,
|
||||||
|
LARGE_INTEGER* Position,
|
||||||
|
SEEKMODE SeekMode
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue