forked from Mirrors/opensbi
platform: Fix compile error caused by standard includes
Avoid using standard includes namely stdint.h, string.h, stdlib.h, etc. All standard include except stddef.h give compilation error due to differences in RISC-V toolchain configuration. Typically, the compilation error is related to "gnu-stubs-lp64.h". This patch fixes compile error caused by standard includes by providing substitutes of definetions provided by standard includes wherever required. Signed-off-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
39
platform/common/include/plat/string.h
Normal file
39
platform/common/include/plat/string.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Western Digital Corporation or its affiliates.
|
||||
*
|
||||
* Authors:
|
||||
* Atish Patra <atish.patra@wdc.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#ifndef __STRING_H__
|
||||
#define __STRING_H__
|
||||
|
||||
#include <sbi/sbi_types.h>
|
||||
|
||||
int strcmp(const char *a, const char *b);
|
||||
|
||||
size_t strlen(const char *str);
|
||||
|
||||
size_t strnlen(const char *str, size_t count);
|
||||
|
||||
char *strcpy(char *dest,const char *src);
|
||||
|
||||
char *strncpy(char *dest, const char *src, size_t count);
|
||||
|
||||
char *strchr(const char *s, int c);
|
||||
|
||||
char *strrchr(const char *s, int c);
|
||||
|
||||
void *memset(void *s,int c,size_t count);
|
||||
|
||||
void *memcpy(void *dest, const void *src, size_t count);
|
||||
|
||||
void *memmove(void *dest,const void *src, size_t count);
|
||||
|
||||
int memcmp(const void *s1,const void *s2, size_t count);
|
||||
|
||||
void *memchr(const void *s, int c, size_t count);
|
||||
|
||||
#endif
|
@@ -10,9 +10,9 @@
|
||||
#include <sbi/riscv_io.h>
|
||||
#include <sbi/riscv_encoding.h>
|
||||
#include <sbi/sbi_console.h>
|
||||
#include <plat/string.h>
|
||||
#include <plat/tinyfdt.h>
|
||||
#include <plat/irqchip/plic.h>
|
||||
#include <string.h>
|
||||
|
||||
#define PLIC_PRIORITY_BASE 0x0
|
||||
#define PLIC_PENDING_BASE 0x1000
|
||||
|
@@ -12,12 +12,13 @@
|
||||
* bugs as well. Use any optimized routines from newlib or glibc if required.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <plat/string.h>
|
||||
|
||||
int strcmp(const char *a, const char *b)
|
||||
{
|
||||
/* search first diff or end of string */
|
||||
for (; *a == *b && *a != '\0'; a++, b++);
|
||||
|
||||
return *a - *b;
|
||||
}
|
||||
|
||||
@@ -138,6 +139,7 @@ void * memmove(void * dest,const void *src,size_t count)
|
||||
count--;
|
||||
}
|
||||
}
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
@@ -145,6 +147,7 @@ int memcmp(const void * s1,const void * s2,size_t count)
|
||||
{
|
||||
const char *temp1 = s1;
|
||||
const char *temp2 = s2;
|
||||
|
||||
for (; count > 0 && (*temp1 == *temp2); count--) {
|
||||
temp1++;
|
||||
temp2++;
|
||||
@@ -166,5 +169,6 @@ void *memchr(const void *s, int c, size_t count)
|
||||
}
|
||||
count--;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -52,11 +52,13 @@
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sbi/sbi_types.h>
|
||||
#include <plat/string.h>
|
||||
|
||||
#define INT_MAX ((int)(~0U >> 1))
|
||||
#define UINT_MAX ((unsigned int)~0U)
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
|
||||
#ifdef __CHECKER__
|
||||
#define FDT_FORCE __attribute__((force))
|
||||
|
@@ -7,8 +7,8 @@
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <plat/string.h>
|
||||
#include <plat/tinyfdt.h>
|
||||
#include <string.h>
|
||||
|
||||
#define FDT_MAGIC 0xd00dfeed
|
||||
#define FDT_VERSION 17
|
||||
|
Reference in New Issue
Block a user