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