]>
git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/CommonLib.h
2 Common library assistance routines.
4 Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef _EFI_COMMON_LIB_H
16 #define _EFI_COMMON_LIB_H
18 #include <Common/UefiBaseTypes.h>
19 #include <Common/BuildVersion.h>
21 #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
23 #define MAX_LONG_FILE_PATH 500
25 #define MAX_UINTN MAX_ADDRESS
26 #define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)
27 #define MAX_UINT32 ((UINT32)0xFFFFFFFF)
28 #define MAX_UINT16 ((UINT16)0xFFFF)
29 #define MAX_UINT8 ((UINT8)0xFF)
30 #define ARRAY_SIZE(Array) (sizeof (Array) / sizeof ((Array)[0]))
31 #define ASCII_RSIZE_MAX 1000000
33 #define RSIZE_MAX 1000000
35 #define IS_COMMA(a) ((a) == L',')
36 #define IS_HYPHEN(a) ((a) == L'-')
37 #define IS_DOT(a) ((a) == L'.')
38 #define IS_LEFT_PARENTH(a) ((a) == L'(')
39 #define IS_RIGHT_PARENTH(a) ((a) == L')')
40 #define IS_SLASH(a) ((a) == L'/')
41 #define IS_NULL(a) ((a) == L'\0')
43 #define ASSERT(x) assert(x)
50 // Function declarations
91 IN CHAR8
*InputFileName
,
92 OUT CHAR8
**InputFileImage
,
99 IN CHAR8
*OutputFileName
,
100 IN CHAR8
*OutputFileImage
,
101 IN UINT32 BytesToWrite
108 This function opens a file and writes OutputFileImage into the file.
112 OutputFileName The name of the file to write.
113 OutputFileImage A pointer to the memory buffer.
114 BytesToWrite The size of the memory buffer.
118 EFI_SUCCESS The function completed successfully.
119 EFI_INVALID_PARAMETER One of the input parameters was invalid.
120 EFI_ABORTED An error occurred.
121 EFI_OUT_OF_RESOURCES No resource to complete operations.
140 CalculateChecksum16 (
159 #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
163 IN OUT UINT8
*Buffer
,
181 UINTN AllocationSize
,
187 CONST CHAR16
*FirstString
,
188 CONST CHAR16
*SecondString
,
194 CONST CHAR16
*String
,
200 CONST CHAR16
*String
,
207 InternalHexCharToUintn (
212 InternalAllocateCopyPool (
213 UINTN AllocationSize
,
218 InternalIsDecimalDigitCharacter (
234 EFI_GUID
*DestinationGuid
,
235 CONST EFI_GUID
*SourceGuid
276 CONST CHAR16
*String
,
283 CONST CHAR16
*String
,
284 CHAR16
**EndPointer
, OPTIONAL
289 StrDecimalToUint64S (
290 CONST CHAR16
*String
,
291 CHAR16
**EndPointer
, OPTIONAL
297 CONST CHAR16
*String
,
298 CHAR16
**EndPointer
, OPTIONAL
306 VOID
*OldBuffer OPTIONAL
310 InternalReallocatePool (
313 VOID
*OldBuffer OPTIONAL
317 InternalAllocateZeroPool (
322 InternalAllocatePool (
328 CONST CHAR16
*String
,
333 InternalCharToUpper (
339 CONST CHAR16
*FirstString
,
340 CONST CHAR16
*SecondString
349 InternalMathSwapBytes64 (
355 CONST CHAR16
*String
,
357 EFI_IPv4_ADDRESS
*Address
,
363 CONST CHAR16
*String
,
365 EFI_IPv6_ADDRESS
*Address
,
377 UnicodeStrToAsciiStrS (
378 CONST CHAR16
*Source
,
404 InternalIsHexaDecimalDigitCharacter (
409 InternalSafeStringIsOverlap (
417 InternalSafeStringNoStrOverlap (
455 Convert FileName to the long file path, which can support larger than 260 length.
461 LongFilePath A pointer to the converted long file path.
471 #include <sys/stat.h>
472 #define stricmp strcasecmp
473 #define _stricmp strcasecmp
474 #define strnicmp strncasecmp
475 #define strcmpi strcasecmp
476 size_t _filelength(int fd
);
478 char *strlwr(char *s
);
483 // On windows, mkdir only has one parameter.
484 // On unix, it has two parameters
486 #if defined(__GNUC__)
487 #define mkdir(dir, perm) mkdir(dir, perm)
489 #define mkdir(dir, perm) mkdir(dir)