For the implementation which utilizes libfdt provided in EmbeddedPkg however it uses strncmp function in the libfdt helper library, libfdt_env.h should provide the macro implied with edk2 strncmp implementation. The example is RISC-V OpenSBI library. edk2 RISC-V port uses OpenSBI library and incorporate with edk2 libfdt. edk2 libfdt_env.h provides the necessary macros to build OpenSBI which uses fdt functions in edk2 environment. However, OpenSBI also has libfdt helper library that uses strncmp function which is not defined in edk2 libfdt_env.h. This commit addresses the build issue caused by missing strncmp macro in libfdt_env.h. Check below three commits for the corresponding changes on OpenSBI,8e47649eff
2845d2d2cf
2cfd2fc904
Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Message-Id: <20200806023421.25161-1-abner.chang@hpe.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> [lersek@redhat.com: remove stray newline between S-o-b and first Cc]
84 lines
1.8 KiB
C
84 lines
1.8 KiB
C
/** @file
|
|
*
|
|
* Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
*
|
|
**/
|
|
|
|
#ifndef _LIBFDT_ENV_H
|
|
#define _LIBFDT_ENV_H
|
|
|
|
#include <Library/BaseLib.h>
|
|
#include <Library/BaseMemoryLib.h>
|
|
|
|
typedef UINT16 fdt16_t;
|
|
typedef UINT32 fdt32_t;
|
|
typedef UINT64 fdt64_t;
|
|
|
|
typedef UINT8 uint8_t;
|
|
typedef UINT16 uint16_t;
|
|
typedef UINT32 uint32_t;
|
|
typedef UINT64 uint64_t;
|
|
typedef UINTN uintptr_t;
|
|
typedef UINTN size_t;
|
|
|
|
static inline uint16_t fdt16_to_cpu(fdt16_t x)
|
|
{
|
|
return SwapBytes16 (x);
|
|
}
|
|
#define cpu_to_fdt16(x) fdt16_to_cpu(x)
|
|
|
|
static inline uint32_t fdt32_to_cpu(fdt32_t x)
|
|
{
|
|
return SwapBytes32 (x);
|
|
}
|
|
#define cpu_to_fdt32(x) fdt32_to_cpu(x)
|
|
|
|
static inline uint64_t fdt64_to_cpu(fdt64_t x)
|
|
{
|
|
return SwapBytes64 (x);
|
|
}
|
|
#define cpu_to_fdt64(x) fdt64_to_cpu(x)
|
|
|
|
static inline void* memcpy(void* dest, const void* src, size_t len) {
|
|
return CopyMem (dest, src, len);
|
|
}
|
|
|
|
static inline void *memmove(void *dest, const void *src, size_t n) {
|
|
return CopyMem (dest, src, n);
|
|
}
|
|
|
|
static inline void *memset(void *s, int c, size_t n) {
|
|
return SetMem (s, n, c);
|
|
}
|
|
|
|
static inline int memcmp(const void* dest, const void* src, int len) {
|
|
return CompareMem (dest, src, len);
|
|
}
|
|
|
|
static inline void *memchr(const void *s, int c, size_t n) {
|
|
return ScanMem8 (s, n, c);
|
|
}
|
|
|
|
static inline size_t strlen (const char* str) {
|
|
return AsciiStrLen (str);
|
|
}
|
|
|
|
static inline char *strchr(const char *s, int c) {
|
|
char pattern[2];
|
|
pattern[0] = c;
|
|
pattern[1] = 0;
|
|
return AsciiStrStr (s, pattern);
|
|
}
|
|
|
|
static inline size_t strnlen (const char* str, size_t strsz ) {
|
|
return AsciiStrnLenS (str, strsz);
|
|
}
|
|
|
|
static inline size_t strncmp (const char* str1, const char* str2, size_t strsz ) {
|
|
return AsciiStrnCmp (str1, str2, strsz);
|
|
}
|
|
|
|
#endif /* _LIBFDT_ENV_H */
|