Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4686 → Rev 4687

/tags/0.4.1/boot/arch/ia64/loader/gefi/lib/runtime/efirtlib.c
0,0 → 1,139
/*++
 
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"
 
#pragma RUNTIME_CODE(RtZeroMem)
VOID
RUNTIMEFUNCTION
RtZeroMem (
IN VOID *Buffer,
IN UINTN Size
)
{
INT8 *pt;
 
pt = Buffer;
while (Size--) {
*(pt++) = 0;
}
}
 
#pragma RUNTIME_CODE(RtSetMem)
VOID
RUNTIMEFUNCTION
RtSetMem (
IN VOID *Buffer,
IN UINTN Size,
IN UINT8 Value
)
{
INT8 *pt;
 
pt = Buffer;
while (Size--) {
*(pt++) = Value;
}
}
 
#pragma RUNTIME_CODE(RtCopyMem)
VOID
RUNTIMEFUNCTION
RtCopyMem (
IN VOID *Dest,
IN VOID *Src,
IN UINTN len
)
{
CHAR8 *d, *s;
 
d = Dest;
s = Src;
while (len--) {
*(d++) = *(s++);
}
}
 
#pragma RUNTIME_CODE(RtCompareMem)
INTN
RUNTIMEFUNCTION
RtCompareMem (
IN VOID *Dest,
IN VOID *Src,
IN UINTN len
)
{
CHAR8 *d, *s;
 
d = Dest;
s = Src;
while (len--) {
if (*d != *s) {
return *d - *s;
}
 
d += 1;
s += 1;
}
 
return 0;
}
 
#pragma RUNTIME_CODE(RtCompareGuid)
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;
}