| /*++ |
| |
| Copyright (c) 1999 Intel Corporation |
| |
| Module Name: |
| |
| EfiRtLib.h |
| |
| Abstract: |
| |
| EFI Runtime library functions |
| |
| |
| |
| Revision History |
| |
| --*/ |
| |
| #include "efi.h" |
| #include "efilib.h" |
| #include "efirtlib.h" |
| |
| #ifndef __GNUC__ |
| #pragma RUNTIME_CODE(RtZeroMem) |
| #endif |
| VOID |
| RUNTIMEFUNCTION |
| RtZeroMem ( |
| IN VOID *Buffer, |
| IN UINTN Size |
| ) |
| { |
| INT8 *pt; |
| |
| pt = Buffer; |
| while (Size--) { |
| *(pt++) = 0; |
| } |
| } |
| |
| #ifndef __GNUC__ |
| #pragma RUNTIME_CODE(RtSetMem) |
| #endif |
| VOID |
| RUNTIMEFUNCTION |
| RtSetMem ( |
| IN VOID *Buffer, |
| IN UINTN Size, |
| IN UINT8 Value |
| ) |
| { |
| INT8 *pt; |
| |
| pt = Buffer; |
| while (Size--) { |
| *(pt++) = Value; |
| } |
| } |
| |
| #ifndef __GNUC__ |
| #pragma RUNTIME_CODE(RtCopyMem) |
| #endif |
| VOID |
| RUNTIMEFUNCTION |
| RtCopyMem ( |
| IN VOID *Dest, |
| IN CONST VOID *Src, |
| IN UINTN len |
| ) |
| { |
| CHAR8 *d; |
| CONST CHAR8 *s = Src; |
| d = Dest; |
| while (len--) { |
| *(d++) = *(s++); |
| } |
| } |
| |
| #ifndef __GNUC__ |
| #pragma RUNTIME_CODE(RtCompareMem) |
| #endif |
| INTN |
| RUNTIMEFUNCTION |
| RtCompareMem ( |
| IN CONST VOID *Dest, |
| IN CONST VOID *Src, |
| IN UINTN len |
| ) |
| { |
| CONST CHAR8 *d = Dest, *s = Src; |
| while (len--) { |
| if (*d != *s) { |
| return *d - *s; |
| } |
| |
| d += 1; |
| s += 1; |
| } |
| |
| return 0; |
| } |
| |
| #ifndef __GNUC__ |
| #pragma RUNTIME_CODE(RtCompareGuid) |
| #endif |
| INTN |
| RUNTIMEFUNCTION |
| RtCompareGuid ( |
| IN EFI_GUID *Guid1, |
| IN EFI_GUID *Guid2 |
| ) |
| /*++ |
| |
| Routine Description: |
| |
| Compares to GUIDs |
| |
| Arguments: |
| |
| Guid1 - guid to compare |
| Guid2 - guid to compare |
| |
| Returns: |
| = 0 if Guid1 == Guid2 |
| |
| --*/ |
| { |
| INT32 *g1, *g2, r; |
| |
| // |
| // Compare 32 bits at a time |
| // |
| |
| g1 = (INT32 *) Guid1; |
| g2 = (INT32 *) Guid2; |
| |
| r = g1[0] - g2[0]; |
| r |= g1[1] - g2[1]; |
| r |= g1[2] - g2[2]; |
| r |= g1[3] - g2[3]; |
| |
| return r; |
| } |
| |
| |