From 9743a65b371dac8753d9058898d8e2c8503f8bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 3 Jan 2015 20:45:34 +0000 Subject: [PATCH] [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 --- reactos/boot/freeldr/freeldr/CMakeLists.txt | 1 - reactos/boot/freeldr/freeldr/arcemul/time.c | 30 ------- .../boot/freeldr/freeldr/arch/i386/hwdisk.c | 10 +-- .../boot/freeldr/freeldr/arch/i386/xboxhw.c | 10 +-- reactos/boot/freeldr/freeldr/disk/ramdisk.c | 10 +-- reactos/boot/freeldr/freeldr/disk/scsiport.c | 10 +-- reactos/boot/freeldr/freeldr/fs/ext2.c | 10 +-- reactos/boot/freeldr/freeldr/fs/fat.c | 10 +-- reactos/boot/freeldr/freeldr/fs/fs.c | 10 +-- reactos/boot/freeldr/freeldr/fs/iso.c | 10 +-- reactos/boot/freeldr/freeldr/fs/ntfs.c | 10 +-- reactos/boot/freeldr/freeldr/fs/pxe.c | 20 ++--- .../boot/freeldr/freeldr/include/arcemul.h | 21 ----- .../boot/freeldr/freeldr/include/freeldr.h | 2 +- reactos/boot/freeldr/freeldr/include/fs.h | 10 +-- .../boot/freeldr/freeldr/include/machine.h | 5 ++ reactos/boot/freeldr/freeldr/machine.c | 20 +++++ reactos/include/reactos/arc/arc.h | 90 +++++++++++++------ 18 files changed, 148 insertions(+), 141 deletions(-) delete mode 100644 reactos/boot/freeldr/freeldr/arcemul/time.c diff --git a/reactos/boot/freeldr/freeldr/CMakeLists.txt b/reactos/boot/freeldr/freeldr/CMakeLists.txt index 52cbdf27e9e..0cb80c7993f 100644 --- a/reactos/boot/freeldr/freeldr/CMakeLists.txt +++ b/reactos/boot/freeldr/freeldr/CMakeLists.txt @@ -40,7 +40,6 @@ list(APPEND FREELDR_COMMON_SOURCE options.c oslist.c version.c - arcemul/time.c cache/blocklist.c cache/cache.c comm/rs232.c diff --git a/reactos/boot/freeldr/freeldr/arcemul/time.c b/reactos/boot/freeldr/freeldr/arcemul/time.c deleted file mode 100644 index fba3313a4a3..00000000000 --- a/reactos/boot/freeldr/freeldr/arcemul/time.c +++ /dev/null @@ -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 - */ - -/* INCLUDES *******************************************************************/ - -#include - -/* 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; -} diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c b/reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c index 6f2412896b7..698a6005a57 100644 --- a/reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c +++ b/reactos/boot/freeldr/freeldr/arch/i386/hwdisk.c @@ -44,7 +44,7 @@ UCHAR PcBiosDiskCount = 0; CHAR PcDiskIdentifier[32][20]; -static LONG DiskClose(ULONG FileId) +static ARC_STATUS DiskClose(ULONG FileId) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -52,7 +52,7 @@ static LONG DiskClose(ULONG FileId) return ESUCCESS; } -static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +static ARC_STATUS DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -63,7 +63,7 @@ static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) return ESUCCESS; } -static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +static ARC_STATUS DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { DISKCONTEXT* Context; UCHAR DriveNumber; @@ -110,7 +110,7 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); UCHAR* Ptr = (UCHAR*)Buffer; @@ -155,7 +155,7 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c b/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c index 30f370b4ee7..aa1de08efa4 100644 --- a/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c +++ b/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c @@ -109,7 +109,7 @@ typedef struct tagDISKCONTEXT } DISKCONTEXT; static -LONG +ARC_STATUS DiskClose(ULONG FileId) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -119,7 +119,7 @@ DiskClose(ULONG FileId) } static -LONG +ARC_STATUS DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -132,7 +132,7 @@ DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) } static -LONG +ARC_STATUS DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { DISKCONTEXT* Context; @@ -185,7 +185,7 @@ DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) } static -LONG +ARC_STATUS DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -219,7 +219,7 @@ DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) } static -LONG +ARC_STATUS DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); diff --git a/reactos/boot/freeldr/freeldr/disk/ramdisk.c b/reactos/boot/freeldr/freeldr/disk/ramdisk.c index 19eaa78aff8..751f15badb1 100644 --- a/reactos/boot/freeldr/freeldr/disk/ramdisk.c +++ b/reactos/boot/freeldr/freeldr/disk/ramdisk.c @@ -21,7 +21,7 @@ ULONG gRamDiskOffset; /* FUNCTIONS ******************************************************************/ -static LONG RamDiskClose(ULONG FileId) +static ARC_STATUS RamDiskClose(ULONG FileId) { // // Nothing to do @@ -29,7 +29,7 @@ static LONG RamDiskClose(ULONG FileId) 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 @@ -41,7 +41,7 @@ static LONG RamDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information 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 @@ -49,7 +49,7 @@ static LONG RamDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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; @@ -76,7 +76,7 @@ static LONG RamDiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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 diff --git a/reactos/boot/freeldr/freeldr/disk/scsiport.c b/reactos/boot/freeldr/freeldr/disk/scsiport.c index 8dc1a0b28d2..57db6b19fea 100644 --- a/reactos/boot/freeldr/freeldr/disk/scsiport.c +++ b/reactos/boot/freeldr/freeldr/disk/scsiport.c @@ -148,7 +148,7 @@ typedef struct tagDISKCONTEXT ULONGLONG SectorNumber; } DISKCONTEXT; -static LONG DiskClose(ULONG FileId) +static ARC_STATUS DiskClose(ULONG FileId) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -156,7 +156,7 @@ static LONG DiskClose(ULONG FileId) return ESUCCESS; } -static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +static ARC_STATUS DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { DISKCONTEXT* Context = FsGetDeviceSpecific(FileId); @@ -167,7 +167,7 @@ static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) 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; PCDB Cdb; @@ -237,7 +237,7 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); PSCSI_REQUEST_BLOCK Srb; @@ -345,7 +345,7 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/fs/ext2.c b/reactos/boot/freeldr/freeldr/fs/ext2.c index d1c40ae17ef..91e7f92f7cf 100644 --- a/reactos/boot/freeldr/freeldr/fs/ext2.c +++ b/reactos/boot/freeldr/freeldr/fs/ext2.c @@ -1196,7 +1196,7 @@ BOOLEAN Ext2CopyTripleIndirectBlockPointers(ULONG* BlockList, ULONG* CurrentBloc return TRUE; } -LONG Ext2Close(ULONG FileId) +ARC_STATUS Ext2Close(ULONG FileId) { PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -1205,7 +1205,7 @@ LONG Ext2Close(ULONG FileId) return ESUCCESS; } -LONG Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information) +ARC_STATUS Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information) { PEXT2_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -1221,7 +1221,7 @@ LONG Ext2GetFileInformation(ULONG FileId, FILEINFORMATION* Information) return ESUCCESS; } -LONG Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +ARC_STATUS Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { PEXT2_FILE_INFO FileHandle; //ULONG DeviceId; @@ -1251,7 +1251,7 @@ LONG Ext2Open(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); ULONGLONG BytesReadBig; @@ -1272,7 +1272,7 @@ LONG Ext2Read(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/fs/fat.c b/reactos/boot/freeldr/freeldr/fs/fat.c index a42b37f9316..4cb9f78a8c6 100644 --- a/reactos/boot/freeldr/freeldr/fs/fat.c +++ b/reactos/boot/freeldr/freeldr/fs/fat.c @@ -1397,7 +1397,7 @@ BOOLEAN FatReadVolumeSectors(PFAT_VOLUME_INFO Volume, ULONG SectorNumber, ULONG return TRUE; } -LONG FatClose(ULONG FileId) +ARC_STATUS FatClose(ULONG FileId) { PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -1407,7 +1407,7 @@ LONG FatClose(ULONG FileId) return ESUCCESS; } -LONG FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +ARC_STATUS FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { PFAT_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -1423,7 +1423,7 @@ LONG FatGetFileInformation(ULONG FileId, FILEINFORMATION* Information) return ESUCCESS; } -LONG FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +ARC_STATUS FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { PFAT_VOLUME_INFO FatVolume; FAT_FILE_INFO TempFileInfo; @@ -1465,7 +1465,7 @@ LONG FatOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); BOOLEAN ret; @@ -1484,7 +1484,7 @@ LONG FatRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/fs/fs.c b/reactos/boot/freeldr/freeldr/fs/fs.c index 0d2f574fad7..71b09c5db9f 100644 --- a/reactos/boot/freeldr/freeldr/fs/fs.c +++ b/reactos/boot/freeldr/freeldr/fs/fs.c @@ -224,7 +224,7 @@ typedef struct tagDEVICE static FILEDATA FileData[MAX_FDS]; static LIST_ENTRY DeviceListHead; -LONG ArcClose(ULONG FileId) +ARC_STATUS ArcClose(ULONG FileId) { LONG ret; @@ -242,14 +242,14 @@ LONG ArcClose(ULONG FileId) return ret; } -LONG ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { if (FileId >= MAX_FDS || !FileData[FileId].FuncTable) return EBADF; 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; PLIST_ENTRY pEntry; @@ -398,14 +398,14 @@ LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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) return EBADF; 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) return EBADF; diff --git a/reactos/boot/freeldr/freeldr/fs/iso.c b/reactos/boot/freeldr/freeldr/fs/iso.c index f4bc3486d50..e238bb54aae 100644 --- a/reactos/boot/freeldr/freeldr/fs/iso.c +++ b/reactos/boot/freeldr/freeldr/fs/iso.c @@ -240,7 +240,7 @@ static LONG IsoLookupFile(PCSTR FileName, ULONG DeviceId, PISO_FILE_INFO IsoFile return ESUCCESS; } -LONG IsoClose(ULONG FileId) +ARC_STATUS IsoClose(ULONG FileId) { PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -249,7 +249,7 @@ LONG IsoClose(ULONG FileId) return ESUCCESS; } -LONG IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +ARC_STATUS IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { PISO_FILE_INFO FileHandle = FsGetDeviceSpecific(FileId); @@ -263,7 +263,7 @@ LONG IsoGetFileInformation(ULONG FileId, FILEINFORMATION* Information) return ESUCCESS; } -LONG IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +ARC_STATUS IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { ISO_FILE_INFO TempFileInfo; PISO_FILE_INFO FileHandle; @@ -292,7 +292,7 @@ LONG IsoOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); UCHAR SectorBuffer[SECTORSIZE]; @@ -461,7 +461,7 @@ LONG IsoRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/fs/ntfs.c b/reactos/boot/freeldr/freeldr/fs/ntfs.c index 1e68919e8b4..d612b325340 100644 --- a/reactos/boot/freeldr/freeldr/fs/ntfs.c +++ b/reactos/boot/freeldr/freeldr/fs/ntfs.c @@ -755,7 +755,7 @@ static BOOLEAN NtfsLookupFile(PNTFS_VOLUME_INFO Volume, PCSTR FileName, PNTFS_MF return TRUE; } -LONG NtfsClose(ULONG FileId) +ARC_STATUS NtfsClose(ULONG FileId) { PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId); @@ -765,7 +765,7 @@ LONG NtfsClose(ULONG FileId) return ESUCCESS; } -LONG NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +ARC_STATUS NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { PNTFS_FILE_HANDLE FileHandle = FsGetDeviceSpecific(FileId); @@ -781,7 +781,7 @@ LONG NtfsGetFileInformation(ULONG FileId, FILEINFORMATION* Information) return ESUCCESS; } -LONG NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +ARC_STATUS NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { PNTFS_VOLUME_INFO Volume; PNTFS_FILE_HANDLE FileHandle; @@ -828,7 +828,7 @@ LONG NtfsOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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); ULONGLONG BytesRead64; @@ -848,7 +848,7 @@ LONG NtfsRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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); diff --git a/reactos/boot/freeldr/freeldr/fs/pxe.c b/reactos/boot/freeldr/freeldr/fs/pxe.c index 2a750001b41..3bbfe6dbbd6 100644 --- a/reactos/boot/freeldr/freeldr/fs/pxe.c +++ b/reactos/boot/freeldr/freeldr/fs/pxe.c @@ -116,7 +116,7 @@ BOOLEAN CallPxe(UINT16 Service, PVOID Parameter) return TRUE; } -static LONG PxeClose(ULONG FileId) +static ARC_STATUS PxeClose(ULONG FileId) { t_PXENV_TFTP_CLOSE closeData; @@ -136,7 +136,7 @@ static LONG PxeClose(ULONG FileId) return ESUCCESS; } -static LONG PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +static ARC_STATUS PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { if (_OpenFile == NO_FILE || FileId != _OpenFile) return EBADF; @@ -148,7 +148,7 @@ static LONG PxeGetFileInformation(ULONG FileId, FILEINFORMATION* Information) 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_OPEN openData; @@ -197,7 +197,7 @@ static LONG PxeOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) 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; ULONG i; @@ -240,7 +240,7 @@ static LONG PxeRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count) 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; @@ -290,31 +290,31 @@ const DEVVTBL* PxeMount(ULONG DeviceId) return &PxeVtbl; } -static LONG PxeDiskClose(ULONG FileId) +static ARC_STATUS PxeDiskClose(ULONG FileId) { // Nothing to do return ESUCCESS; } -static LONG PxeDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) +static ARC_STATUS PxeDiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information) { // No disk access in PXE mode return EINVAL; } -static LONG PxeDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) +static ARC_STATUS PxeDiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId) { // Nothing to do 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 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 return EINVAL; diff --git a/reactos/boot/freeldr/freeldr/include/arcemul.h b/reactos/boot/freeldr/freeldr/include/arcemul.h index 931ef5c215e..437fecea28f 100644 --- a/reactos/boot/freeldr/freeldr/include/arcemul.h +++ b/reactos/boot/freeldr/freeldr/include/arcemul.h @@ -16,24 +16,3 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 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); diff --git a/reactos/boot/freeldr/freeldr/include/freeldr.h b/reactos/boot/freeldr/freeldr/include/freeldr.h index 0976bd6bde0..12f26cbf360 100644 --- a/reactos/boot/freeldr/freeldr/include/freeldr.h +++ b/reactos/boot/freeldr/freeldr/include/freeldr.h @@ -55,7 +55,7 @@ #endif /* internal headers */ -#include +// #include #include #include #include diff --git a/reactos/boot/freeldr/freeldr/include/fs.h b/reactos/boot/freeldr/freeldr/include/fs.h index 75909bee677..97d6a8ec36c 100644 --- a/reactos/boot/freeldr/freeldr/include/fs.h +++ b/reactos/boot/freeldr/freeldr/include/fs.h @@ -43,11 +43,11 @@ VOID* FsGetDeviceSpecific(ULONG FileId); ULONG FsGetDeviceId(ULONG FileId); VOID FsInit(VOID); -LONG ArcClose(ULONG FileId); -LONG ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information); -LONG ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId); -LONG ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count); -LONG ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode); +ARC_STATUS ArcClose(ULONG FileId); +ARC_STATUS ArcGetFileInformation(ULONG FileId, FILEINFORMATION* Information); +ARC_STATUS ArcOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId); +ARC_STATUS ArcRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count); +ARC_STATUS ArcSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode); VOID FileSystemError(PCSTR ErrorString); PFILE FsOpenFile(PCSTR FileName); diff --git a/reactos/boot/freeldr/freeldr/include/machine.h b/reactos/boot/freeldr/freeldr/include/machine.h index d5dc715b4ba..f56d9fe2f35 100644 --- a/reactos/boot/freeldr/freeldr/include/machine.h +++ b/reactos/boot/freeldr/freeldr/include/machine.h @@ -127,4 +127,9 @@ VOID MachHwIdle(VOID); #define MachHwDetect() MachVtbl.HwDetect() #define MachHwIdle() MachVtbl.HwIdle() +/* ARC FUNCTIONS **************************************************************/ + +TIMEINFO* ArcGetTime(VOID); +ULONG ArcGetRelativeTime(VOID); + /* EOF */ diff --git a/reactos/boot/freeldr/freeldr/machine.c b/reactos/boot/freeldr/freeldr/machine.c index 9b68c5706a1..c34cd3654f1 100644 --- a/reactos/boot/freeldr/freeldr/machine.c +++ b/reactos/boot/freeldr/freeldr/machine.c @@ -168,4 +168,24 @@ MachDiskGetCacheableBlockCount(UCHAR 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 */ diff --git a/reactos/include/reactos/arc/arc.h b/reactos/include/reactos/arc/arc.h index 08c8e0c0a93..2b7acb9b4a0 100644 --- a/reactos/include/reactos/arc/arc.h +++ b/reactos/include/reactos/arc/arc.h @@ -73,6 +73,31 @@ typedef enum _CONFIGURATION_CLASS MaximumClass } 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 { LoaderExceptionBlock, @@ -167,29 +192,6 @@ typedef struct _ARC_DISK_SIGNATURE CHAR GptSignature[16]; } 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 { LIST_ENTRY DiskSignatureListHead; @@ -497,9 +499,41 @@ typedef struct tagFILEINFORMATION CHAR Filename[32]; } FILEINFORMATION; -typedef LONG (*ARC_CLOSE)(ULONG FileId); -typedef LONG (*ARC_GET_FILE_INFORMATION)(ULONG FileId, FILEINFORMATION* Information); -typedef LONG (*ARC_OPEN)(CHAR* Path, OPENMODE OpenMode, ULONG* FileId); -typedef LONG (*ARC_READ)(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count); -typedef LONG (*ARC_SEEK)(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode); +typedef +ARC_STATUS +(*ARC_CLOSE)( + ULONG FileId +); + +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