Author: cwittich Date: Tue Feb 26 18:23:57 2008 New Revision: 32493
URL: http://svn.reactos.org/svn/reactos?rev=32493&view=rev Log: some MSVC compat fixes
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch.h trunk/reactos/boot/freeldr/freeldr/include/disk.h trunk/reactos/boot/freeldr/freeldr/include/drivemap.h trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h trunk/reactos/boot/freeldr/freeldr/include/linux.h trunk/reactos/boot/freeldr/freeldr/include/mm.h trunk/reactos/boot/freeldr/freeldr/include/video.h trunk/reactos/boot/freeldr/freeldr/include/winldr.h
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch.h Tue Feb 26 18:23:57 2008 @@ -54,7 +54,7 @@
#ifndef ASM
- +#include <pshpack1.h> typedef struct { unsigned long eax; @@ -72,7 +72,7 @@
unsigned long eflags;
-} PACKED DWORDREGS; +} DWORDREGS;
typedef struct { @@ -91,7 +91,7 @@
unsigned short flags, _upper_flags;
-} PACKED WORDREGS; +} WORDREGS;
typedef struct { @@ -118,7 +118,8 @@
unsigned short flags, _upper_flags;
-} PACKED BYTEREGS; +} BYTEREGS; +
typedef union { @@ -127,6 +128,7 @@ WORDREGS w; BYTEREGS b; } REGS; +#include <poppack.h>
// Int386() //
Modified: trunk/reactos/boot/freeldr/freeldr/include/disk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/disk.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/disk.h Tue Feb 26 18:23:57 2008 @@ -33,6 +33,7 @@ // // Extended disk geometry (Int13 / ah=48h) // +#include <pshpack1.h> typedef struct _EXTENDED_GEOMETRY { USHORT Size; @@ -43,7 +44,7 @@ ULONGLONG Sectors; USHORT BytesPerSector; ULONG PDPTE; -} __attribute__((packed)) EXTENDED_GEOMETRY, *PEXTENDED_GEOMETRY; +} EXTENDED_GEOMETRY, *PEXTENDED_GEOMETRY;
// // Define the structure of a partition table entry @@ -61,7 +62,7 @@ ULONG SectorCountBeforePartition; // Number of sectors preceding the partition ULONG PartitionSectorCount; // Number of sectors in the partition
-} PACKED PARTITION_TABLE_ENTRY, *PPARTITION_TABLE_ENTRY; +} PARTITION_TABLE_ENTRY, *PPARTITION_TABLE_ENTRY;
// // Define the structure of the master boot record @@ -74,7 +75,8 @@ PARTITION_TABLE_ENTRY PartitionTable[4]; /* 0x1BE */ USHORT MasterBootRecordMagic; /* 0x1FE */
-} PACKED MASTER_BOOT_RECORD, *PMASTER_BOOT_RECORD; +} MASTER_BOOT_RECORD, *PMASTER_BOOT_RECORD; +#include <poppack.h>
// // Partition type defines
Modified: trunk/reactos/boot/freeldr/freeldr/include/drivemap.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/drivemap.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/drivemap.h Tue Feb 26 18:23:57 2008 @@ -21,13 +21,13 @@ #define __DRIVEMAP_H
#ifdef __i386__ +#include <pshpack1.h> typedef struct { UCHAR DriveMapCount; // Count of drives currently mapped - CHAR DriveMap[8]; // Map of BIOS drives - -} PACKED DRIVE_MAP_LIST, *PDRIVE_MAP_LIST; +} DRIVE_MAP_LIST, *PDRIVE_MAP_LIST; +#include <poppack.h>
VOID DriveMapMapDrivesInSection(PCSTR SectionName); BOOLEAN DriveMapIsValidDriveString(PCSTR DriveString); // Checks the drive string ("hd0") for validity
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/fs/ext2.h Tue Feb 26 18:23:57 2008 @@ -73,7 +73,11 @@ printk (KERN_DEBUG f, ## a); \ } while (0) #else -#define ext3_debug(f, a...) do {} while (0) + #ifdef __GNUC__ + #define ext3_debug(f, a...) do {} while (0) + #else + #define ext3_debug + #endif #endif
/*
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/fs/fat.h Tue Feb 26 18:23:57 2008 @@ -20,6 +20,7 @@ #ifndef __FAT_H #define __FAT_H
+#include <pshpack1.h> typedef struct _FAT_BOOTSECTOR { UCHAR JumpBoot[3]; // Jump instruction to boot code @@ -47,7 +48,7 @@
USHORT BootSectorMagic; // 0xAA55
-} PACKED FAT_BOOTSECTOR, *PFAT_BOOTSECTOR; +} FAT_BOOTSECTOR, *PFAT_BOOTSECTOR;
typedef struct _FAT32_BOOTSECTOR { @@ -83,7 +84,7 @@
USHORT BootSectorMagic; // 0xAA55
-} PACKED FAT32_BOOTSECTOR, *PFAT32_BOOTSECTOR; +} FAT32_BOOTSECTOR, *PFAT32_BOOTSECTOR;
typedef struct _FATX_BOOTSECTOR { @@ -94,7 +95,7 @@ ULONG Unknown; /* Always 0? */ UCHAR Unused[494]; /* Actually size should be 4078 (boot block is 4096 bytes) */
-} PACKED FATX_BOOTSECTOR, *PFATX_BOOTSECTOR; +} FATX_BOOTSECTOR, *PFATX_BOOTSECTOR;
/* * Structure of MSDOS directory entry @@ -113,7 +114,7 @@ USHORT Date; /* Date last modified */ USHORT ClusterLow; /* First cluster number low word */ ULONG Size; /* File size */ -} PACKED DIRENTRY, * PDIRENTRY; +} DIRENTRY, * PDIRENTRY;
typedef struct { @@ -125,7 +126,7 @@ WCHAR Name5_10[6]; /* 6 more characters in name */ USHORT StartCluster; /* Starting cluster number */ WCHAR Name11_12[2]; /* Last 2 characters in name */ -} PACKED LFN_DIRENTRY, * PLFN_DIRENTRY; +} LFN_DIRENTRY, * PLFN_DIRENTRY;
typedef struct { @@ -140,7 +141,8 @@ USHORT CreateDate; /* Date file was created */ USHORT LastAccessTime; /* Time file was last accessed */ USHORT LastAccessDate; /* Date file was last accessed */ -} PACKED FATX_DIRENTRY, * PFATX_DIRENTRY; +} FATX_DIRENTRY, * PFATX_DIRENTRY; +#include <poppack.h>
typedef struct {
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/fs/iso.h Tue Feb 26 18:23:57 2008 @@ -20,7 +20,7 @@ #ifndef __ISO_H #define __ISO_H
- +#include <pshpack1.h> struct _DIR_RECORD { UCHAR RecordLength; // 1 @@ -42,11 +42,8 @@ ULONG VolumeSequenceNumber; // 29-32 UCHAR FileIdLength; // 33 UCHAR FileId[1]; // 34 -} __attribute__((packed)); - +}; typedef struct _DIR_RECORD DIR_RECORD, *PDIR_RECORD; - -
/* Volume Descriptor header*/ @@ -55,10 +52,8 @@ UCHAR VdType; // 1 UCHAR StandardId[5]; // 2-6 UCHAR VdVersion; // 7 -} __attribute__((packed)); - +}; typedef struct _VD_HEADER VD_HEADER, *PVD_HEADER; -
/* Primary Volume Descriptor */ @@ -89,8 +84,8 @@
/* more data ... */
-} __attribute__((packed)); - +}; +#include <poppack.h> typedef struct _PVD PVD, *PPVD;
Modified: trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/fs/ntfs.h Tue Feb 26 18:23:57 2008 @@ -59,6 +59,7 @@ #define NTFS_FILE_NAME_DOS 2 #define NTFS_FILE_NAME_WIN32_AND_DOS 3
+#include <pshpack1.h> typedef struct { UCHAR JumpBoot[3]; // Jump to the boot loader routine @@ -85,14 +86,14 @@ ULONGLONG VolumeSerialNumber; // Volume serial number UCHAR BootCodeAndData[430]; // The remainder of the boot sector USHORT BootSectorMagic; // 0xAA55 -} PACKED NTFS_BOOTSECTOR, *PNTFS_BOOTSECTOR; +} NTFS_BOOTSECTOR, *PNTFS_BOOTSECTOR;
typedef struct { ULONG Magic; USHORT USAOffset; // Offset to the Update Sequence Array from the start of the ntfs record USHORT USACount; -} PACKED NTFS_RECORD, *PNTFS_RECORD; +} NTFS_RECORD, *PNTFS_RECORD;
typedef struct { @@ -108,7 +109,7 @@ ULONG BytesAllocated; ULONGLONG BaseMFTRecord; USHORT NextAttributeInstance; -} PACKED NTFS_MFT_RECORD, *PNTFS_MFT_RECORD; +} NTFS_MFT_RECORD, *PNTFS_MFT_RECORD;
typedef struct { @@ -127,7 +128,7 @@ ULONG ValueLength; USHORT ValueOffset; USHORT Flags; - } PACKED Resident; + } Resident; // Non-resident attributes struct { @@ -140,9 +141,9 @@ LONGLONG DataSize; LONGLONG InitializedSize; LONGLONG CompressedSize; - } PACKED NonResident; - } PACKED; -} PACKED NTFS_ATTR_RECORD, *PNTFS_ATTR_RECORD; + } NonResident; + }; +} NTFS_ATTR_RECORD, *PNTFS_ATTR_RECORD;
typedef struct { @@ -151,7 +152,7 @@ ULONG AllocatedSize; UCHAR Flags; UCHAR Reserved[3]; -} PACKED NTFS_INDEX_HEADER, *PNTFS_INDEX_HEADER; +} NTFS_INDEX_HEADER, *PNTFS_INDEX_HEADER;
typedef struct { @@ -161,7 +162,7 @@ UCHAR ClustersPerIndexBlock; UCHAR Reserved[3]; NTFS_INDEX_HEADER IndexHeader; -} PACKED NTFS_INDEX_ROOT, *PNTFS_INDEX_ROOT; +} NTFS_INDEX_ROOT, *PNTFS_INDEX_ROOT;
typedef struct { @@ -178,7 +179,7 @@ UCHAR FileNameLength; UCHAR FileNameType; WCHAR FileName[0]; -} PACKED NTFS_FILE_NAME_ATTR, *PNTFS_FILE_NAME_ATTR; +} NTFS_FILE_NAME_ATTR, *PNTFS_FILE_NAME_ATTR;
typedef struct { union @@ -186,20 +187,21 @@ struct { ULONGLONG IndexedFile; - } PACKED Directory; + } Directory; struct { USHORT DataOffset; USHORT DataLength; ULONG Reserved; - } PACKED ViewIndex; - } PACKED Data; + } ViewIndex; + } Data; USHORT Length; USHORT KeyLength; USHORT Flags; USHORT Reserved; NTFS_FILE_NAME_ATTR FileName; -} PACKED NTFS_INDEX_ENTRY, *PNTFS_INDEX_ENTRY; +} NTFS_INDEX_ENTRY, *PNTFS_INDEX_ENTRY; +#include <poppack.h>
typedef struct { @@ -212,11 +214,13 @@ NTFS_ATTR_RECORD Record; } NTFS_ATTR_CONTEXT, *PNTFS_ATTR_CONTEXT;
+#include <pshpack1.h> typedef struct { PNTFS_ATTR_CONTEXT DataContext; ULONGLONG Offset; -} PACKED NTFS_FILE_HANDLE, *PNTFS_FILE_HANDLE; +} NTFS_FILE_HANDLE, *PNTFS_FILE_HANDLE; +#include <poppack.h>
BOOLEAN NtfsOpenVolume(UCHAR DriveNumber, ULONGLONG VolumeStartSector, ULONGLONG PartitionSectorCount); FILE* NtfsOpenFile(PCSTR FileName);
Modified: trunk/reactos/boot/freeldr/freeldr/include/linux.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/linux.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/linux.h Tue Feb 26 18:23:57 2008 @@ -43,6 +43,7 @@
#define LINUX_MAX_INITRD_ADDRESS 0x38000000
+#include <pshpack1.h> typedef struct { UCHAR BootCode1[0x20]; @@ -61,7 +62,7 @@ USHORT RootDevice; USHORT BootFlag; // 0xAA55
-} PACKED LINUX_BOOTSECTOR, *PLINUX_BOOTSECTOR; +} LINUX_BOOTSECTOR, *PLINUX_BOOTSECTOR;
typedef struct { @@ -122,7 +123,8 @@ ULONG InitrdAddressMax; // Highest legal initrd address
-} PACKED LINUX_SETUPSECTOR, *PLINUX_SETUPSECTOR; +} LINUX_SETUPSECTOR, *PLINUX_SETUPSECTOR; +#include <poppack.h>
VOID BootNewLinuxKernel(VOID); // Implemented in linux.S VOID BootOldLinuxKernel(ULONG KernelSize); // Implemented in linux.S
Modified: trunk/reactos/boot/freeldr/freeldr/include/mm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/mm.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/mm.h Tue Feb 26 18:23:57 2008 @@ -29,13 +29,15 @@ BiosMemoryAcpiNvs } BIOS_MEMORY_TYPE;
+#include <pshpack1.h> typedef struct { ULONGLONG BaseAddress; ULONGLONG Length; ULONG Type; ULONG Reserved; -} PACKED BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP; +} BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP; +#include <poppack.h>
#if defined(__i386__) || defined(_PPC_) || defined(_MIPS_) || defined(_ARM_)
@@ -52,11 +54,13 @@ #define HEAP_PAGES 0x400 #define STACK_PAGES 0x00
+#include <pshpack1.h> typedef struct { TYPE_OF_MEMORY PageAllocated; // Type of allocated memory (LoaderFree if this memory is free) ULONG PageAllocationLength; // Number of pages allocated (or zero if this isn't the first page in the chain) -} PACKED PAGE_LOOKUP_TABLE_ITEM, *PPAGE_LOOKUP_TABLE_ITEM; +} PAGE_LOOKUP_TABLE_ITEM, *PPAGE_LOOKUP_TABLE_ITEM; +#include <poppack.h>
// // Define this to 1 if you want the entire contents
Modified: trunk/reactos/boot/freeldr/freeldr/include/video.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/video.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/video.h Tue Feb 26 18:23:57 2008 @@ -20,12 +20,14 @@ #ifndef __VIDEO_H #define __VIDEO_H
+#include <pshpack1.h> typedef struct { UCHAR Red; UCHAR Green; UCHAR Blue; -} PACKED PALETTE_ENTRY, *PPALETTE_ENTRY; +} PALETTE_ENTRY, *PPALETTE_ENTRY; +#include <poppack.h>
extern PVOID VideoOffScreenBuffer;
Modified: trunk/reactos/boot/freeldr/freeldr/include/winldr.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/winldr.h (original) +++ trunk/reactos/boot/freeldr/freeldr/include/winldr.h Tue Feb 26 18:23:57 2008 @@ -1,111 +1,108 @@ -/* - * FreeLoader - * Copyright (C) 1998-2003 Brian Palmer brianp@sginet.com - * Copyright (C) 2006 Aleksey Bragin aleksey@reactos.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __WINLDR_H -#define __WINLDR_H - - -/////////////////////////////////////////////////////////////////////////////////////// -// -// ReactOS Loading Functions -// -/////////////////////////////////////////////////////////////////////////////////////// -VOID LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion); - -/* Entry-point to kernel */ -typedef -VOID -NTAPI -(*KERNEL_ENTRY_POINT) (PLOADER_PARAMETER_BLOCK LoaderBlock); - - -// Some definitions -#define SECTOR_SIZE 512 - -// Descriptors -#define NUM_GDT 128 // Must be 128 -#define NUM_IDT 0x100 // only 16 are used though. Must be 0x100 - -// conversion.c -PVOID VaToPa(PVOID Va); -PVOID PaToVa(PVOID Pa); -VOID List_PaToVa(LIST_ENTRY *ListEntry); -VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start); - -// peloader.c -BOOLEAN -WinLdrLoadImage(IN PCHAR FileName, - TYPE_OF_MEMORY MemoryType, - OUT PVOID *ImageBasePA); - - -BOOLEAN -WinLdrAllocateDataTableEntry(IN OUT PLOADER_PARAMETER_BLOCK WinLdrBlock, - IN PCCH BaseDllName, - IN PCCH FullDllName, - IN PVOID BasePA, - OUT PLDR_DATA_TABLE_ENTRY *NewEntry); - -BOOLEAN -WinLdrScanImportDescriptorTable(IN OUT PLOADER_PARAMETER_BLOCK WinLdrBlock, - IN PCCH DirectoryPath, - IN PLDR_DATA_TABLE_ENTRY ScanDTE); - -// winldr.c +/* + * FreeLoader + * Copyright (C) 1998-2003 Brian Palmer brianp@sginet.com + * Copyright (C) 2006 Aleksey Bragin aleksey@reactos.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __WINLDR_H +#define __WINLDR_H + + +/////////////////////////////////////////////////////////////////////////////////////// +// +// ReactOS Loading Functions +// +/////////////////////////////////////////////////////////////////////////////////////// +VOID LoadAndBootWindows(PCSTR OperatingSystemName, WORD OperatingSystemVersion); + +/* Entry-point to kernel */ +typedef VOID (NTAPI *KERNEL_ENTRY_POINT) (PLOADER_PARAMETER_BLOCK LoaderBlock); + + +// Some definitions +#define SECTOR_SIZE 512 + +// Descriptors +#define NUM_GDT 128 // Must be 128 +#define NUM_IDT 0x100 // only 16 are used though. Must be 0x100 + +// conversion.c +PVOID VaToPa(PVOID Va); +PVOID PaToVa(PVOID Pa); +VOID List_PaToVa(LIST_ENTRY *ListEntry); +VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start); + +// peloader.c +BOOLEAN +WinLdrLoadImage(IN PCHAR FileName, + TYPE_OF_MEMORY MemoryType, + OUT PVOID *ImageBasePA); + + +BOOLEAN +WinLdrAllocateDataTableEntry(IN OUT PLOADER_PARAMETER_BLOCK WinLdrBlock, + IN PCCH BaseDllName, + IN PCCH FullDllName, + IN PVOID BasePA, + OUT PLDR_DATA_TABLE_ENTRY *NewEntry); + +BOOLEAN +WinLdrScanImportDescriptorTable(IN OUT PLOADER_PARAMETER_BLOCK WinLdrBlock, + IN PCCH DirectoryPath, + IN PLDR_DATA_TABLE_ENTRY ScanDTE); + +// winldr.c PVOID WinLdrLoadModule(PCSTR ModuleName, ULONG *Size, - TYPE_OF_MEMORY MemoryType); - -// wlmemory.c -BOOLEAN -WinLdrTurnOnPaging(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - ULONG PcrBasePage, - ULONG TssBasePage, - PVOID GdtIdt); - -// wlregistry.c -BOOLEAN WinLdrLoadAndScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - IN LPCSTR DirectoryPath); - - -/* FIXME: Should be moved to NDK, and respective ACPI header files */ -typedef struct _ACPI_BIOS_DATA -{ - PHYSICAL_ADDRESS RSDTAddress; - ULONGLONG Count; - BIOS_MEMORY_MAP MemoryMap[1]; /* Count of BIOS memory map entries */ -} ACPI_BIOS_DATA, *PACPI_BIOS_DATA; - -#include <pshpack1.h> -typedef struct /* Root System Descriptor Pointer */ -{ - CHAR signature [8]; /* contains "RSD PTR " */ - UCHAR checksum; /* to make sum of struct == 0 */ - CHAR oem_id [6]; /* OEM identification */ - UCHAR revision; /* Must be 0 for 1.0, 2 for 2.0 */ - ULONG rsdt_physical_address; /* 32-bit physical address of RSDT */ - ULONG length; /* XSDT Length in bytes including hdr */ - ULONGLONG xsdt_physical_address; /* 64-bit physical address of XSDT */ - UCHAR extended_checksum; /* Checksum of entire table */ - CHAR reserved [3]; /* reserved field must be 0 */ -} RSDP_DESCRIPTOR, *PRSDP_DESCRIPTOR; -#include <poppack.h> - - -#endif // defined __WINLDR_H + TYPE_OF_MEMORY MemoryType); + +// wlmemory.c +BOOLEAN +WinLdrTurnOnPaging(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, + ULONG PcrBasePage, + ULONG TssBasePage, + PVOID GdtIdt); + +// wlregistry.c +BOOLEAN WinLdrLoadAndScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, + IN LPCSTR DirectoryPath); + + +/* FIXME: Should be moved to NDK, and respective ACPI header files */ +typedef struct _ACPI_BIOS_DATA +{ + PHYSICAL_ADDRESS RSDTAddress; + ULONGLONG Count; + BIOS_MEMORY_MAP MemoryMap[1]; /* Count of BIOS memory map entries */ +} ACPI_BIOS_DATA, *PACPI_BIOS_DATA; + +#include <pshpack1.h> +typedef struct /* Root System Descriptor Pointer */ +{ + CHAR signature [8]; /* contains "RSD PTR " */ + UCHAR checksum; /* to make sum of struct == 0 */ + CHAR oem_id [6]; /* OEM identification */ + UCHAR revision; /* Must be 0 for 1.0, 2 for 2.0 */ + ULONG rsdt_physical_address; /* 32-bit physical address of RSDT */ + ULONG length; /* XSDT Length in bytes including hdr */ + ULONGLONG xsdt_physical_address; /* 64-bit physical address of XSDT */ + UCHAR extended_checksum; /* Checksum of entire table */ + CHAR reserved [3]; /* reserved field must be 0 */ +} RSDP_DESCRIPTOR, *PRSDP_DESCRIPTOR; +#include <poppack.h> + + +#endif // defined __WINLDR_H