1/*	$NetBSD: efirtlib.h,v 1.1.1.3 2021/09/30 18:50:09 jmcneill Exp $	*/
2
3#ifndef _EFI_RT_LIB_INCLUDE_
4#define _EFI_RT_LIB_INCLUDE_
5/*++
6
7Copyright (c) 1998  Intel Corporation
8
9Module Name:
10
11    efilib.h
12
13Abstract:
14
15    EFI Runtime library functions
16
17
18
19Revision History
20
21--*/
22
23#include "efidebug.h"
24#include "efipart.h"
25#if defined(_M_X64) || defined(__x86_64__) || defined(__amd64__)
26#include "x86_64/efilibplat.h"
27#elif defined(_M_IX86) || defined(__i386__)
28#include "ia32/efilibplat.h"
29#elif defined(_M_IA64) || defined(__ia64__)
30#include "ia64/efilibplat.h"
31#elif defined (_M_ARM64) || defined(__aarch64__)
32#include "aarch64/efilibplat.h"
33#elif defined (_M_ARM) || defined(__arm__)
34#include "arm/efilibplat.h"
35#elif defined (_M_MIPS64) || defined(__mips64__)
36#include "mips64el/efilibplat.h"
37#elif defined (__riscv) && __riscv_xlen == 64
38#include "riscv64/efilibplat.h"
39#endif
40
41
42VOID
43RUNTIMEFUNCTION
44RtZeroMem (
45    IN VOID     *Buffer,
46    IN UINTN     Size
47    );
48
49VOID
50RUNTIMEFUNCTION
51RtSetMem (
52    IN VOID     *Buffer,
53    IN UINTN    Size,
54    IN UINT8    Value
55    );
56
57VOID
58RUNTIMEFUNCTION
59RtCopyMem (
60    IN VOID     *Dest,
61    IN CONST VOID     *Src,
62    IN UINTN    len
63    );
64
65INTN
66RUNTIMEFUNCTION
67RtCompareMem (
68    IN CONST VOID     *Dest,
69    IN CONST VOID     *Src,
70    IN UINTN    len
71    );
72
73INTN
74RUNTIMEFUNCTION
75RtStrCmp (
76    IN CONST CHAR16   *s1,
77    IN CONST CHAR16   *s2
78    );
79
80
81VOID
82RUNTIMEFUNCTION
83RtStrCpy (
84    IN CHAR16   *Dest,
85    IN CONST CHAR16    *Src
86    );
87
88VOID
89RUNTIMEFUNCTION
90RtStrnCpy (
91    IN CHAR16   *Dest,
92    IN CONST CHAR16    *Src,
93    IN UINTN     Len
94    );
95
96CHAR16 *
97RUNTIMEFUNCTION
98RtStpCpy (
99    IN CHAR16   *Dest,
100    IN CONST CHAR16    *Src
101    );
102
103CHAR16 *
104RUNTIMEFUNCTION
105RtStpnCpy (
106    IN CHAR16   *Dest,
107    IN CONST CHAR16    *Src,
108    IN UINTN     Len
109    );
110
111VOID
112RUNTIMEFUNCTION
113RtStrCat (
114    IN CHAR16   *Dest,
115    IN CONST CHAR16   *Src
116    );
117
118VOID
119RUNTIMEFUNCTION
120RtStrnCat (
121    IN CHAR16   *Dest,
122    IN CONST CHAR16   *Src,
123    IN UINTN     Len
124    );
125
126UINTN
127RUNTIMEFUNCTION
128RtStrLen (
129    IN CONST CHAR16   *s1
130    );
131
132UINTN
133RUNTIMEFUNCTION
134RtStrnLen (
135    IN CONST CHAR16   *s1,
136    IN UINTN           Len
137    );
138
139UINTN
140RUNTIMEFUNCTION
141RtStrSize (
142    IN CONST CHAR16   *s1
143    );
144
145INTN
146RUNTIMEFUNCTION
147RtCompareGuid (
148    IN EFI_GUID     *Guid1,
149    IN EFI_GUID     *Guid2
150    );
151
152UINT8
153RUNTIMEFUNCTION
154RtDecimaltoBCD(
155    IN  UINT8 BcdValue
156    );
157
158UINT8
159RUNTIMEFUNCTION
160RtBCDtoDecimal(
161    IN  UINT8 BcdValue
162    );
163
164//
165// Virtual mapping transition support.  (Only used during
166// the virtual address change transisition)
167//
168
169VOID
170RUNTIMEFUNCTION
171RtLibEnableVirtualMappings (
172    VOID
173    );
174
175VOID
176RUNTIMEFUNCTION
177RtConvertList (
178    IN UINTN            DebugDisposition,
179    IN OUT LIST_ENTRY   *ListHead
180    );
181
182VOID
183RUNTIMEFUNCTION
184RtAcquireLock (
185    IN FLOCK    *Lock
186    );
187
188VOID
189RUNTIMEFUNCTION
190RtReleaseLock (
191    IN FLOCK    *Lock
192    );
193
194
195#endif
196