| /** @file | |
| Common library assistance routines. | |
| Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> | |
| 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. | |
| **/ | |
| #ifndef _EFI_COMMON_LIB_H | |
| #define _EFI_COMMON_LIB_H | |
| #include <Common/UefiBaseTypes.h> | |
| #include <Common/BuildVersion.h> | |
| #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination | |
| #define MAX_LONG_FILE_PATH 500 | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| // | |
| // Function declarations | |
| // | |
| VOID | |
| PeiZeroMem ( | |
| IN VOID *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| VOID | |
| PeiCopyMem ( | |
| IN VOID *Destination, | |
| IN VOID *Source, | |
| IN UINTN Length | |
| ) | |
| ; | |
| VOID | |
| ZeroMem ( | |
| IN VOID *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| VOID | |
| CopyMem ( | |
| IN VOID *Destination, | |
| IN VOID *Source, | |
| IN UINTN Length | |
| ) | |
| ; | |
| INTN | |
| CompareGuid ( | |
| IN EFI_GUID *Guid1, | |
| IN EFI_GUID *Guid2 | |
| ) | |
| ; | |
| EFI_STATUS | |
| GetFileImage ( | |
| IN CHAR8 *InputFileName, | |
| OUT CHAR8 **InputFileImage, | |
| OUT UINT32 *BytesRead | |
| ) | |
| ; | |
| EFI_STATUS | |
| PutFileImage ( | |
| IN CHAR8 *OutputFileName, | |
| IN CHAR8 *OutputFileImage, | |
| IN UINT32 BytesToWrite | |
| ) | |
| ; | |
| /*++ | |
| Routine Description: | |
| This function opens a file and writes OutputFileImage into the file. | |
| Arguments: | |
| OutputFileName The name of the file to write. | |
| OutputFileImage A pointer to the memory buffer. | |
| BytesToWrite The size of the memory buffer. | |
| Returns: | |
| EFI_SUCCESS The function completed successfully. | |
| EFI_INVALID_PARAMETER One of the input parameters was invalid. | |
| EFI_ABORTED An error occurred. | |
| EFI_OUT_OF_RESOURCES No resource to complete operations. | |
| **/ | |
| UINT8 | |
| CalculateChecksum8 ( | |
| IN UINT8 *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| UINT8 | |
| CalculateSum8 ( | |
| IN UINT8 *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| UINT16 | |
| CalculateChecksum16 ( | |
| IN UINT16 *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| UINT16 | |
| CalculateSum16 ( | |
| IN UINT16 *Buffer, | |
| IN UINTN Size | |
| ) | |
| ; | |
| EFI_STATUS | |
| PrintGuid ( | |
| IN EFI_GUID *Guid | |
| ) | |
| ; | |
| #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination | |
| EFI_STATUS | |
| PrintGuidToBuffer ( | |
| IN EFI_GUID *Guid, | |
| IN OUT UINT8 *Buffer, | |
| IN UINT32 BufferLen, | |
| IN BOOLEAN Uppercase | |
| ) | |
| ; | |
| CHAR8 * | |
| LongFilePath ( | |
| IN CHAR8 *FileName | |
| ); | |
| /*++ | |
| Routine Description: | |
| Convert FileName to the long file path, which can support larger than 260 length. | |
| Arguments: | |
| FileName - FileName. | |
| Returns: | |
| LongFilePath A pointer to the converted long file path. | |
| --*/ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #define ASSERT(x) assert(x) | |
| #ifdef __GNUC__ | |
| #include <stdio.h> | |
| #include <sys/stat.h> | |
| #define stricmp strcasecmp | |
| #define _stricmp strcasecmp | |
| #define strnicmp strncasecmp | |
| #define strcmpi strcasecmp | |
| size_t _filelength(int fd); | |
| #ifndef __CYGWIN__ | |
| char *strlwr(char *s); | |
| #endif | |
| #endif | |
| // | |
| // On windows, mkdir only has one parameter. | |
| // On unix, it has two parameters | |
| // | |
| #if defined(__GNUC__) | |
| #define mkdir(dir, perm) mkdir(dir, perm) | |
| #else | |
| #define mkdir(dir, perm) mkdir(dir) | |
| #endif | |
| #endif |