123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #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 = (CHAR8*)Dest;
- CHAR8 *s = (CHAR8*)Src;
- if (d == NULL || s == NULL || s == d)
- return;
-
-
-
- if ((d > s) && (d < s + len)) {
- for (d += len, s += len; len--; )
- *--d = *--s;
- } else {
- 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
- )
- {
- INT32 *g1, *g2, r;
-
-
-
- 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;
- }
|