]>
git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/CommonLib.h
0f05d88db206ad7405ee1c552a8db4a0642ef60a
2 Common library assistance routines.
4 Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
9 #ifndef _EFI_COMMON_LIB_H
10 #define _EFI_COMMON_LIB_H
12 #include <Common/UefiBaseTypes.h>
13 #include <Common/BuildVersion.h>
19 #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
22 #define MAX_LONG_FILE_PATH PATH_MAX
24 #define MAX_LONG_FILE_PATH 500
27 #define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)
28 #define MAX_UINT32 ((UINT32)0xFFFFFFFF)
29 #define MAX_UINT16 ((UINT16)0xFFFF)
30 #define MAX_UINT8 ((UINT8)0xFF)
31 #define ARRAY_SIZE(Array) (sizeof (Array) / sizeof ((Array)[0]))
32 #define ASCII_RSIZE_MAX 1000000
34 #define RSIZE_MAX 1000000
36 #define IS_COMMA(a) ((a) == L',')
37 #define IS_HYPHEN(a) ((a) == L'-')
38 #define IS_DOT(a) ((a) == L'.')
39 #define IS_LEFT_PARENTH(a) ((a) == L'(')
40 #define IS_RIGHT_PARENTH(a) ((a) == L')')
41 #define IS_SLASH(a) ((a) == L'/')
42 #define IS_NULL(a) ((a) == L'\0')
44 #define ASSERT(x) assert(x)
51 // Function declarations
92 IN CHAR8
*InputFileName
,
93 OUT CHAR8
**InputFileImage
,
100 IN CHAR8
*OutputFileName
,
101 IN CHAR8
*OutputFileImage
,
102 IN UINT32 BytesToWrite
109 This function opens a file and writes OutputFileImage into the file.
113 OutputFileName The name of the file to write.
114 OutputFileImage A pointer to the memory buffer.
115 BytesToWrite The size of the memory buffer.
119 EFI_SUCCESS The function completed successfully.
120 EFI_INVALID_PARAMETER One of the input parameters was invalid.
121 EFI_ABORTED An error occurred.
122 EFI_OUT_OF_RESOURCES No resource to complete operations.
141 CalculateChecksum16 (
160 #define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
164 IN OUT UINT8
*Buffer
,
182 UINTN AllocationSize
,
188 CONST CHAR16
*FirstString
,
189 CONST CHAR16
*SecondString
,
195 CONST CHAR16
*String
,
201 CONST CHAR16
*String
,
208 InternalHexCharToUintn (
213 InternalAllocateCopyPool (
214 UINTN AllocationSize
,
219 InternalIsDecimalDigitCharacter (
235 EFI_GUID
*DestinationGuid
,
236 CONST EFI_GUID
*SourceGuid
267 CONST CHAR16
*String
,
273 StrDecimalToUint64S (
274 CONST CHAR16
*String
,
275 CHAR16
**EndPointer
, OPTIONAL
283 VOID
*OldBuffer OPTIONAL
287 InternalReallocatePool (
290 VOID
*OldBuffer OPTIONAL
294 InternalAllocateZeroPool (
299 InternalAllocatePool (
305 CONST CHAR16
*String
,
310 InternalCharToUpper (
316 CONST CHAR16
*FirstString
,
317 CONST CHAR16
*SecondString
326 InternalMathSwapBytes64 (
332 CONST CHAR16
*String
,
334 EFI_IPv4_ADDRESS
*Address
,
340 CONST CHAR16
*String
,
342 EFI_IPv6_ADDRESS
*Address
,
354 UnicodeStrToAsciiStrS (
355 CONST CHAR16
*Source
,
381 InternalIsHexaDecimalDigitCharacter (
386 InternalSafeStringIsOverlap (
394 InternalSafeStringNoStrOverlap (
432 Convert FileName to the long file path, which can support larger than 260 length.
438 LongFilePath A pointer to the converted long file path.
448 #include <sys/stat.h>
449 #define stricmp strcasecmp
450 #define _stricmp strcasecmp
451 #define strnicmp strncasecmp
452 #define strcmpi strcasecmp
453 size_t _filelength(int fd
);
455 char *strlwr(char *s
);
460 // On windows, mkdir only has one parameter.
461 // On unix, it has two parameters
463 #if defined(__GNUC__)
464 #define mkdir(dir, perm) mkdir(dir, perm)
466 #define mkdir(dir, perm) mkdir(dir)