1 /*
2  * PROJECT:     FreeLoader
3  * LICENSE:     GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4  * PURPOSE:     Windows-compatible NT OS Loader.
5  * COPYRIGHT:   Copyright 2006-2019 Aleksey Bragin <aleksey@reactos.org>
6  */
7 
8 #pragma once
9 
10 #include <arc/setupblk.h>
11 
12 // See freeldr/ntldr/winldr.h
13 #define TAG_WLDR_DTE 'eDlW'
14 #define TAG_WLDR_BDE 'dBlW'
15 #define TAG_WLDR_NAME 'mNlW'
16 
17 // Some definitions
18 
19 #include <pshpack1.h>
20 typedef struct  /* Root System Descriptor Pointer */
21 {
22     CHAR             signature [8];          /* contains "RSD PTR " */
23     UCHAR            checksum;               /* to make sum of struct == 0 */
24     CHAR             oem_id [6];             /* OEM identification */
25     UCHAR            revision;               /* Must be 0 for 1.0, 2 for 2.0 */
26     ULONG            rsdt_physical_address;  /* 32-bit physical address of RSDT */
27     ULONG            length;                 /* XSDT Length in bytes including hdr */
28     ULONGLONG        xsdt_physical_address;  /* 64-bit physical address of XSDT */
29     UCHAR            extended_checksum;      /* Checksum of entire table */
30     CHAR             reserved [3];           /* reserved field must be 0 */
31 } RSDP_DESCRIPTOR, *PRSDP_DESCRIPTOR;
32 #include <poppack.h>
33 
34 typedef struct _ARC_DISK_SIGNATURE_EX
35 {
36     ARC_DISK_SIGNATURE DiskSignature;
37     CHAR ArcName[MAX_PATH];
38 } ARC_DISK_SIGNATURE_EX, *PARC_DISK_SIGNATURE_EX;
39 
40 ////////////////////////////////////////////////////////////////////////////////
41 //
42 // ReactOS Loading Functions
43 //
44 ////////////////////////////////////////////////////////////////////////////////
45 
46 ARC_STATUS
47 LoadAndBootWindows(
48     IN ULONG Argc,
49     IN PCHAR Argv[],
50     IN PCHAR Envp[]);
51 
52 ARC_STATUS
53 LoadReactOSSetup(
54     IN ULONG Argc,
55     IN PCHAR Argv[],
56     IN PCHAR Envp[]);
57 
58 
59 // conversion.c and conversion.h
60 PVOID VaToPa(PVOID Va);
61 PVOID PaToVa(PVOID Pa);
62 VOID List_PaToVa(_In_ LIST_ENTRY *ListEntry);
63