Files
libretiny/cores/realtek-ambz/base/wraps/stdlib.c
2023-03-17 18:17:35 +01:00

116 lines
3.3 KiB
C

/* Copyright (c) Kuba Szczodrzyński 2023-03-14. */
#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) {
return prvAtoi(str);
}
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);
}