/** @file
Root include file of C runtime library to support building the third-party
libfdt library.
Copyright (c) 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef FDT_LIB_SUPPORT_H_
#define FDT_LIB_SUPPORT_H_
#include
#include
#include
typedef UINT8 uint8_t;
typedef UINT16 uint16_t;
typedef INT32 int32_t;
typedef UINT32 uint32_t;
typedef UINT64 uint64_t;
typedef UINTN uintptr_t;
typedef UINTN size_t;
typedef BOOLEAN bool;
#define true (1 == 1)
#define false (1 == 0)
//
// Definitions for global constants used by libfdt library routines
//
#define INT_MAX 0x7FFFFFFF /* Maximum (signed) int value */
#define INT32_MAX 0x7FFFFFFF /* Maximum (signed) int32 value */
#define UINT32_MAX 0xFFFFFFFF /* Maximum unsigned int32 value */
//
// Function prototypes of libfdt Library routines
//
void *
memset (
void *,
int,
size_t
);
int
memcmp (
const void *,
const void *,
size_t
);
int
strcmp (
const char *,
const char *
);
char *
strchr (
const char *,
int
);
char *
fdt_strrchr (
const char *,
int
);
unsigned long
fdt_strtoul (
const char *,
char **,
int
);
char *
strcpy (
char *strDest,
const char *strSource
);
//
// Macros that directly map functions to BaseLib, BaseMemoryLib, and DebugLib functions
//
#define memcpy(dest, source, count) CopyMem(dest,source, (UINTN)(count))
#define memset(dest, ch, count) SetMem(dest, (UINTN)(count),(UINT8)(ch))
#define memchr(buf, ch, count) ScanMem8(buf, (UINTN)(count),(UINT8)ch)
#define memcmp(buf1, buf2, count) (int)(CompareMem(buf1, buf2, (UINTN)(count)))
#define memmove(dest, source, count) CopyMem(dest, source, (UINTN)(count))
#define strlen(str) (size_t)(AsciiStrLen(str))
#define strnlen(str, count) (size_t)(AsciiStrnLenS(str, count))
#define strncpy(strDest, strSource, count) AsciiStrnCpyS(strDest, MAX_STRING_SIZE, strSource, (UINTN)count)
#define strcat(strDest, strSource) AsciiStrCatS(strDest, MAX_STRING_SIZE, strSource)
#define strchr(str, ch) ScanMem8(str, AsciiStrSize (str), (UINT8)ch)
#define strcmp(string1, string2, count) (int)(AsciiStrCmp(string1, string2))
#define strncmp(string1, string2, count) (int)(AsciiStrnCmp(string1, string2, (UINTN)(count)))
#define strrchr(str, ch) fdt_strrchr(str, ch)
#define strtoul(ptr, end_ptr, base) fdt_strtoul(ptr, end_ptr, base)
#endif /* FDT_LIB_SUPPORT_H_ */