Files
NonPIayerCharacter 6ac1f260ed RTL8710B/RTL8711AM (#1501)
* --

* test

* ota

* ameba1/rtl8711am

* workflow build

* uart tcp bridge driver

* fix build

* Static ip fix

* fix

* Rework amebaz ota

---------

Co-authored-by: Tester23 <85486843+openshwprojects@users.noreply.github.com>
2025-02-01 19:04:23 +01:00

158 lines
3.7 KiB
C

// copied from https://github.com/libretiny-eu/libretiny/blob/master/cores/realtek-ambz/base/wraps/stdlib.c
#include <stddef.h>
#define ROM __attribute__((long_call))
ROM int prvAtoi(const char* str);
ROM long simple_strtol(const char* str, char** str_end, int base);
ROM unsigned long simple_strtoul(const char* str, char** str_end, int base);
ROM int Rand();
ROM char* __rtl_strcat_v1_00(char* dest, const char* src);
ROM char* _strcpy(char* dest, const char* src);
ROM char* __rtl_strncat_v1_00(char* dest, const char* src, size_t count);
ROM char* _strncpy(char* dest, const char* src, size_t count);
ROM char* _strchr(const char* str, int ch);
ROM int prvStrCmp(const char* lhs, const char* rhs);
ROM size_t prvStrLen(const char* str);
ROM int _strncmp(const char* lhs, const char* rhs, size_t count);
ROM char* _strpbrk(const char* dest, const char* breakset);
ROM char* prvStrStr(const char* str, const char* substr);
ROM char* prvStrtok(char* str, const char* delim);
ROM void* __rtl_memchr_v1_00(const void* ptr, int ch, size_t count);
ROM int _memcmp(const void* lhs, const void* rhs, size_t count);
ROM void* _memcpy(void* dest, const void* src, size_t count);
ROM void* __rtl_memmove_v1_00(void* dest, const void* src, size_t count);
ROM void* _memset(void* dest, int ch, size_t count);
ROM char* _strsep(char** stringp, const char* delim);
int __wrap_atoi(const char* str)
{
register int num, neg;
register char c;
num = neg = 0;
c = *str;
while((c == ' ') || (c == '\n') || (c == '\r') || (c == '\t'))c = *++str;
if(c == '-')
{ /* get an optional sign */
neg = 1;
c = *++str;
}
else if(c == '+')
{
c = *++str;
}
while((c >= '0') && (c <= '9'))
{
num = (10 * num) + (c - '0');
c = *++str;
}
if(neg)return(0 - num);
return(num);
}
long __wrap_atol(const char* str)
{
return simple_strtol(str, NULL, 10);
}
long __wrap_strtol(const char* str, char** str_end, int base)
{
return simple_strtol(str, str_end, base);
}
unsigned long __wrap_strtoul(const char* str, char** str_end, int base)
{
return simple_strtoul(str, str_end, base);
}
int __wrap_rand()
{
return Rand();
}
char* __wrap_strcat(char* dest, const char* src)
{
return __rtl_strcat_v1_00(dest, src);
}
char* __wrap_strcpy(char* dest, const char* src)
{
return _strcpy(dest, src);
}
char* __wrap_strncat(char* dest, const char* src, size_t count)
{
return __rtl_strncat_v1_00(dest, src, count);
}
char* __wrap_strncpy(char* dest, const char* src, size_t count)
{
return _strncpy(dest, src, count);
}
char* __wrap_strchr(const char* str, int ch)
{
return _strchr(str, ch);
}
int __wrap_strcmp(const char* lhs, const char* rhs)
{
return prvStrCmp(lhs, rhs);
}
size_t __wrap_strlen(const char* str)
{
return prvStrLen(str);
}
int __wrap_strncmp(const char* lhs, const char* rhs, size_t count)
{
return _strncmp(lhs, rhs, count);
}
char* __wrap_strpbrk(const char* dest, const char* breakset)
{
return _strpbrk(dest, breakset);
}
char* __wrap_strstr(const char* str, const char* substr)
{
return prvStrStr(str, substr);
}
char* __wrap_strtok(char* str, const char* delim)
{
return prvStrtok(str, delim);
}
void* __wrap_memchr(const void* ptr, int ch, size_t count)
{
return __rtl_memchr_v1_00(ptr, ch, count);
}
int __wrap_memcmp(const void* lhs, const void* rhs, size_t count)
{
return _memcmp(lhs, rhs, count);
}
void* __wrap_memcpy(void* dest, const void* src, size_t count)
{
return _memcpy(dest, src, count);
}
void* __wrap_memmove(void* dest, const void* src, size_t count)
{
return __rtl_memmove_v1_00(dest, src, count);
}
void* __wrap_memset(void* dest, int ch, size_t count)
{
return _memset(dest, ch, count);
}
char* __wrap_strsep(char** stringp, const char* delim)
{
return _strsep(stringp, delim);
}