1 /* $NetBSD: efirtlib.c,v 1.1.1.1 2014/04/01 16:16:07 jakllsch Exp $ */ 2 3 /*++ 4 5 Copyright (c) 1999 Intel Corporation 6 7 Module Name: 8 9 EfiRtLib.h 10 11 Abstract: 12 13 EFI Runtime library functions 14 15 16 17 Revision History 18 19 --*/ 20 21 #include "efi.h" 22 #include "efilib.h" 23 #include "efirtlib.h" 24 25 #ifndef __GNUC__ 26 #pragma RUNTIME_CODE(RtZeroMem) 27 #endif 28 VOID 29 RUNTIMEFUNCTION 30 RtZeroMem ( 31 IN VOID *Buffer, 32 IN UINTN Size 33 ) 34 { 35 INT8 *pt; 36 37 pt = Buffer; 38 while (Size--) { 39 *(pt++) = 0; 40 } 41 } 42 43 #ifndef __GNUC__ 44 #pragma RUNTIME_CODE(RtSetMem) 45 #endif 46 VOID 47 RUNTIMEFUNCTION 48 RtSetMem ( 49 IN VOID *Buffer, 50 IN UINTN Size, 51 IN UINT8 Value 52 ) 53 { 54 INT8 *pt; 55 56 pt = Buffer; 57 while (Size--) { 58 *(pt++) = Value; 59 } 60 } 61 62 #ifndef __GNUC__ 63 #pragma RUNTIME_CODE(RtCopyMem) 64 #endif 65 VOID 66 RUNTIMEFUNCTION 67 RtCopyMem ( 68 IN VOID *Dest, 69 IN VOID *Src, 70 IN UINTN len 71 ) 72 { 73 CHAR8 *d, *s; 74 75 d = Dest; 76 s = Src; 77 while (len--) { 78 *(d++) = *(s++); 79 } 80 } 81 82 #ifndef __GNUC__ 83 #pragma RUNTIME_CODE(RtCompareMem) 84 #endif 85 INTN 86 RUNTIMEFUNCTION 87 RtCompareMem ( 88 IN VOID *Dest, 89 IN VOID *Src, 90 IN UINTN len 91 ) 92 { 93 CHAR8 *d, *s; 94 95 d = Dest; 96 s = Src; 97 while (len--) { 98 if (*d != *s) { 99 return *d - *s; 100 } 101 102 d += 1; 103 s += 1; 104 } 105 106 return 0; 107 } 108 109 #ifndef __GNUC__ 110 #pragma RUNTIME_CODE(RtCompareGuid) 111 #endif 112 INTN 113 RUNTIMEFUNCTION 114 RtCompareGuid ( 115 IN EFI_GUID *Guid1, 116 IN EFI_GUID *Guid2 117 ) 118 /*++ 119 120 Routine Description: 121 122 Compares to GUIDs 123 124 Arguments: 125 126 Guid1 - guid to compare 127 Guid2 - guid to compare 128 129 Returns: 130 = 0 if Guid1 == Guid2 131 132 --*/ 133 { 134 INT32 *g1, *g2, r; 135 136 // 137 // Compare 32 bits at a time 138 // 139 140 g1 = (INT32 *) Guid1; 141 g2 = (INT32 *) Guid2; 142 143 r = g1[0] - g2[0]; 144 r |= g1[1] - g2[1]; 145 r |= g1[2] - g2[2]; 146 r |= g1[3] - g2[3]; 147 148 return r; 149 } 150 151 152