/*++ | |
Copyright (c) 2004, Intel Corporation | |
All rights reserved. This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
Module Name: | |
PeiLib.c | |
Abstract: | |
PEI Library Functions | |
--*/ | |
#include "TianoCommon.h" | |
#include "PeiHob.h" | |
#include "Pei.h" | |
VOID | |
PeiCopyMem ( | |
IN VOID *Destination, | |
IN VOID *Source, | |
IN UINTN Length | |
); | |
VOID | |
ZeroMem ( | |
IN VOID *Buffer, | |
IN UINTN Size | |
) | |
/*++ | |
Routine Description: | |
Set Buffer to zero for Size bytes. | |
Arguments: | |
Buffer - Memory to set. | |
Size - Number of bytes to set | |
Returns: | |
None | |
--*/ | |
{ | |
INT8 *Ptr; | |
Ptr = Buffer; | |
while (Size--) { | |
*(Ptr++) = 0; | |
} | |
} | |
VOID | |
PeiCopyMem ( | |
IN VOID *Destination, | |
IN VOID *Source, | |
IN UINTN Length | |
) | |
/*++ | |
Routine Description: | |
Copy Length bytes from Source to Destination. | |
Arguments: | |
Destination - Target of copy | |
Source - Place to copy from | |
Length - Number of bytes to copy | |
Returns: | |
None | |
--*/ | |
{ | |
CHAR8 *Destination8; | |
CHAR8 *Source8; | |
Destination8 = Destination; | |
Source8 = Source; | |
while (Length--) { | |
*(Destination8++) = *(Source8++); | |
} | |
} | |
VOID | |
CopyMem ( | |
IN VOID *Destination, | |
IN VOID *Source, | |
IN UINTN Length | |
) | |
/*++ | |
Routine Description: | |
Copy Length bytes from Source to Destination. | |
Arguments: | |
Destination - Target of copy | |
Source - Place to copy from | |
Length - Number of bytes to copy | |
Returns: | |
None | |
--*/ | |
{ | |
CHAR8 *Destination8; | |
CHAR8 *Source8; | |
Destination8 = Destination; | |
Source8 = Source; | |
while (Length--) { | |
*(Destination8++) = *(Source8++); | |
} | |
} | |
BOOLEAN | |
CompareGuid ( | |
IN EFI_GUID *Guid1, | |
IN EFI_GUID *Guid2 | |
) | |
/*++ | |
Routine Description: | |
Compares two GUIDs | |
Arguments: | |
Guid1 - guid to compare | |
Guid2 - guid to compare | |
Returns: | |
= TRUE if Guid1 == Guid2 | |
= FALSE if Guid1 != Guid2 | |
--*/ | |
{ | |
if ((((INT32 *) Guid1)[0] - ((INT32 *) Guid2)[0]) == 0) { | |
if ((((INT32 *) Guid1)[1] - ((INT32 *) Guid2)[1]) == 0) { | |
if ((((INT32 *) Guid1)[2] - ((INT32 *) Guid2)[2]) == 0) { | |
if ((((INT32 *) Guid1)[3] - ((INT32 *) Guid2)[3]) == 0) { | |
return TRUE; | |
} | |
} | |
} | |
} | |
return FALSE; | |
} |