xref: /netbsd/sys/external/bsd/gnu-efi/dist/inc/efirtlib.h (revision 51e65385)
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 
7 Copyright (c) 1998  Intel Corporation
8 
9 Module Name:
10 
11     efilib.h
12 
13 Abstract:
14 
15     EFI Runtime library functions
16 
17 
18 
19 Revision 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 
42 VOID
43 RUNTIMEFUNCTION
44 RtZeroMem (
45     IN VOID     *Buffer,
46     IN UINTN     Size
47     );
48 
49 VOID
50 RUNTIMEFUNCTION
51 RtSetMem (
52     IN VOID     *Buffer,
53     IN UINTN    Size,
54     IN UINT8    Value
55     );
56 
57 VOID
58 RUNTIMEFUNCTION
59 RtCopyMem (
60     IN VOID     *Dest,
61     IN CONST VOID     *Src,
62     IN UINTN    len
63     );
64 
65 INTN
66 RUNTIMEFUNCTION
67 RtCompareMem (
68     IN CONST VOID     *Dest,
69     IN CONST VOID     *Src,
70     IN UINTN    len
71     );
72 
73 INTN
74 RUNTIMEFUNCTION
75 RtStrCmp (
76     IN CONST CHAR16   *s1,
77     IN CONST CHAR16   *s2
78     );
79 
80 
81 VOID
82 RUNTIMEFUNCTION
83 RtStrCpy (
84     IN CHAR16   *Dest,
85     IN CONST CHAR16    *Src
86     );
87 
88 VOID
89 RUNTIMEFUNCTION
90 RtStrnCpy (
91     IN CHAR16   *Dest,
92     IN CONST CHAR16    *Src,
93     IN UINTN     Len
94     );
95 
96 CHAR16 *
97 RUNTIMEFUNCTION
98 RtStpCpy (
99     IN CHAR16   *Dest,
100     IN CONST CHAR16    *Src
101     );
102 
103 CHAR16 *
104 RUNTIMEFUNCTION
105 RtStpnCpy (
106     IN CHAR16   *Dest,
107     IN CONST CHAR16    *Src,
108     IN UINTN     Len
109     );
110 
111 VOID
112 RUNTIMEFUNCTION
113 RtStrCat (
114     IN CHAR16   *Dest,
115     IN CONST CHAR16   *Src
116     );
117 
118 VOID
119 RUNTIMEFUNCTION
120 RtStrnCat (
121     IN CHAR16   *Dest,
122     IN CONST CHAR16   *Src,
123     IN UINTN     Len
124     );
125 
126 UINTN
127 RUNTIMEFUNCTION
128 RtStrLen (
129     IN CONST CHAR16   *s1
130     );
131 
132 UINTN
133 RUNTIMEFUNCTION
134 RtStrnLen (
135     IN CONST CHAR16   *s1,
136     IN UINTN           Len
137     );
138 
139 UINTN
140 RUNTIMEFUNCTION
141 RtStrSize (
142     IN CONST CHAR16   *s1
143     );
144 
145 INTN
146 RUNTIMEFUNCTION
147 RtCompareGuid (
148     IN EFI_GUID     *Guid1,
149     IN EFI_GUID     *Guid2
150     );
151 
152 UINT8
153 RUNTIMEFUNCTION
154 RtDecimaltoBCD(
155     IN  UINT8 BcdValue
156     );
157 
158 UINT8
159 RUNTIMEFUNCTION
160 RtBCDtoDecimal(
161     IN  UINT8 BcdValue
162     );
163 
164 //
165 // Virtual mapping transition support.  (Only used during
166 // the virtual address change transisition)
167 //
168 
169 VOID
170 RUNTIMEFUNCTION
171 RtLibEnableVirtualMappings (
172     VOID
173     );
174 
175 VOID
176 RUNTIMEFUNCTION
177 RtConvertList (
178     IN UINTN            DebugDisposition,
179     IN OUT LIST_ENTRY   *ListHead
180     );
181 
182 VOID
183 RUNTIMEFUNCTION
184 RtAcquireLock (
185     IN FLOCK    *Lock
186     );
187 
188 VOID
189 RUNTIMEFUNCTION
190 RtReleaseLock (
191     IN FLOCK    *Lock
192     );
193 
194 
195 #endif
196