[SETUPLIB] Add two hacks in partlist.c for temporarily setting consistently the disk...
[reactos.git] / boot / freeldr / freeldr / lib / rtl / libsupp.c
1 /*
2 * FreeLoader
3 * Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
4 * Copyright (C) 2006 Aleksey Bragin <aleksey@reactos.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20
21 #include <freeldr.h>
22
23 PVOID MmHighestUserAddress = (PVOID)MI_HIGHEST_USER_ADDRESS;
24
25 #if DBG
26 VOID FASTCALL
27 CHECK_PAGED_CODE_RTL(char *file, int line)
28 {
29 // boot-code is always ok
30 }
31 #endif
32
33 PVOID
34 NTAPI
35 RtlpAllocateMemory(ULONG Bytes,
36 ULONG Tag)
37 {
38 return FrLdrHeapAllocateEx(FrLdrDefaultHeap, Bytes, Tag);
39 }
40
41
42 VOID
43 NTAPI
44 RtlpFreeMemory(PVOID Mem,
45 ULONG Tag)
46 {
47 FrLdrHeapFreeEx(FrLdrDefaultHeap, Mem, Tag);
48 }
49
50 NTSTATUS
51 NTAPI
52 RtlpSafeCopyMemory(
53 _Out_writes_bytes_all_(Length) VOID UNALIGNED *Destination,
54 _In_reads_bytes_(Length) CONST VOID UNALIGNED *Source,
55 _In_ SIZE_T Length)
56 {
57 RtlCopyMemory(Destination, Source, Length);
58 return STATUS_SUCCESS;
59 }
60
61 /* Ldr access to IMAGE_NT_HEADERS without SEH */
62
63 /* Rtl SEH-Free version of this */
64 NTSTATUS
65 NTAPI
66 RtlpImageNtHeaderEx(
67 _In_ ULONG Flags,
68 _In_ PVOID Base,
69 _In_ ULONG64 Size,
70 _Out_ PIMAGE_NT_HEADERS *OutHeaders);
71
72
73 /*
74 * @implemented
75 */
76 NTSTATUS
77 NTAPI
78 RtlImageNtHeaderEx(
79 _In_ ULONG Flags,
80 _In_ PVOID Base,
81 _In_ ULONG64 Size,
82 _Out_ PIMAGE_NT_HEADERS *OutHeaders)
83 {
84 return RtlpImageNtHeaderEx(Flags, Base, Size, OutHeaders);
85 }
86