2020-08-09 17:55:30 +02:00
|
|
|
//
|
|
|
|
//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:
|
|
|
|
//
|
|
|
|
// Utils
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef _UTILS_H_
|
|
|
|
#define _UTILS_H_
|
|
|
|
|
2020-10-12 16:49:43 +02:00
|
|
|
|
2020-08-09 17:55:30 +02:00
|
|
|
//Unicode
|
|
|
|
#define IS_COMMA(a) ((a) == L',')
|
|
|
|
#define IS_HYPHEN(a) ((a) == L'-')
|
|
|
|
#define IS_DOT(a) ((a) == L'.')
|
|
|
|
#define IS_LEFT_PARENTH(a) ((a) == L'(')
|
|
|
|
#define IS_RIGHT_PARENTH(a) ((a) == L')')
|
|
|
|
#define IS_SLASH(a) ((a) == L'/')
|
|
|
|
#define IS_NULL(a) ((a) == L'\0')
|
|
|
|
//Ascii
|
|
|
|
#define IS_DIGIT(a) (((a) >= '0') && ((a) <= '9'))
|
|
|
|
#define IS_HEX(a) ((((a) >= 'a') && ((a) <= 'f')) || (((a) >= 'A') && ((a) <= 'F')))
|
|
|
|
#define IS_UPPER(a) (((a) >= 'A') && ((a) <= 'Z'))
|
|
|
|
#define IS_ALFA(x) (((x >= 'a') && (x <='z')) || ((x >= 'A') && (x <='Z')))
|
|
|
|
#define IS_ASCII(x) ((x>=0x20) && (x<=0x7F))
|
|
|
|
#define IS_PUNCT(x) ((x == '.') || (x == '-'))
|
2021-02-04 15:04:31 +01:00
|
|
|
#define IS_BLANK(x) ((x == ' ') || (x == '\t'))
|
2020-08-09 17:55:30 +02:00
|
|
|
|
2021-01-31 10:50:23 +01:00
|
|
|
inline bool isPathSeparator(char32_t c) { return c == '/' || c == '\\'; }
|
|
|
|
|
2020-08-09 17:55:30 +02:00
|
|
|
|
2020-10-03 19:02:31 +02:00
|
|
|
////void LowCase (IN OUT CHAR8 *Str);
|
2020-08-15 15:47:56 +02:00
|
|
|
UINT32 hex2bin(IN const CHAR8 *hex, OUT UINT8 *bin, UINT32 len);
|
2020-08-09 17:55:30 +02:00
|
|
|
BOOLEAN IsHexDigit (CHAR8 c);
|
2020-08-15 15:47:56 +02:00
|
|
|
UINT8 hexstrtouint8 (CONST CHAR8* buf); //one or two hex letters to one byte
|
2020-11-12 22:25:56 +01:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
|
|
#include "../cpp_foundation/XString.h"
|
|
|
|
|
|
|
|
|
2020-08-09 17:55:30 +02:00
|
|
|
XString8 Bytes2HexStr(UINT8 *data, UINTN len);
|
|
|
|
|
2020-11-12 22:25:56 +01:00
|
|
|
inline UINT64 EFIAPI AsciiStrHexToUint64(const XString8& String)
|
2020-08-15 15:47:56 +02:00
|
|
|
{
|
|
|
|
return AsciiStrHexToUint64(String.c_str());
|
|
|
|
}
|
|
|
|
|
2020-11-12 22:25:56 +01:00
|
|
|
inline UINTN EFIAPI AsciiStrHexToUintn(const XString8& String)
|
2020-08-15 15:47:56 +02:00
|
|
|
{
|
|
|
|
return AsciiStrHexToUintn(String.c_str());
|
|
|
|
}
|
|
|
|
|
2020-11-12 22:25:56 +01:00
|
|
|
inline UINTN EFIAPI AsciiStrDecimalToUintn(const XString8& String)
|
2020-08-15 15:47:56 +02:00
|
|
|
{
|
|
|
|
return AsciiStrDecimalToUintn(String.c_str());
|
|
|
|
}
|
2020-08-09 17:55:30 +02:00
|
|
|
|
2020-09-28 17:57:50 +02:00
|
|
|
extern BOOLEAN haveError;
|
|
|
|
|
|
|
|
|
|
|
|
BOOLEAN CheckFatalError(IN EFI_STATUS Status, IN CONST CHAR16 *where);
|
|
|
|
BOOLEAN CheckError(IN EFI_STATUS Status, IN CONST CHAR16 *where);
|
|
|
|
|
2020-11-12 22:25:56 +01:00
|
|
|
#endif // __cplusplus
|
2020-09-28 17:57:50 +02:00
|
|
|
|
2020-11-12 22:25:56 +01:00
|
|
|
#endif // _UTILS_H_
|