From e95f7b61f51d9807c50bc0d067f78dcbde1a4c00 Mon Sep 17 00:00:00 2001 From: John Sanpe Date: Sat, 29 Mar 2025 21:33:39 +0800 Subject: [PATCH] feat port: added wake attribute for generic port functions Signed-off-by: John Sanpe --- port/generic/log.c | 2 +- port/generic/stdio.c | 2 +- port/generic/stdlib.c | 18 +++++++++++------- port/generic/string.c | 22 +++++++++++----------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/port/generic/log.c b/port/generic/log.c index f8aaa15e..537302be 100644 --- a/port/generic/log.c +++ b/port/generic/log.c @@ -9,7 +9,7 @@ /* TODO: PORTME */ -int +__bfdev_weak int bfport_log_write(bfdev_log_message_t *msg) { return 0; diff --git a/port/generic/stdio.c b/port/generic/stdio.c index 9b88b7d9..acacaccd 100644 --- a/port/generic/stdio.c +++ b/port/generic/stdio.c @@ -8,7 +8,7 @@ /* TODO: PORTME */ -int +__bfdev_weak int bfport_vsnprintf(char *s, bfdev_size_t maxlen, const char *fmt, bfdev_va_list arg) { diff --git a/port/generic/stdlib.c b/port/generic/stdlib.c index 2e9b58cd..bfa64326 100644 --- a/port/generic/stdlib.c +++ b/port/generic/stdlib.c @@ -4,41 +4,45 @@ */ #include +#include #include /* TODO: PORTME */ -__bfdev_malloc void * +static +BFDEV_DEFINE_PRANDOM(generic_rand); + +__bfdev_weak __bfdev_malloc void * bfport_malloc(bfdev_size_t size) { return BFDEV_NULL; } -__bfdev_malloc void * +__bfdev_weak __bfdev_malloc void * bfport_calloc(bfdev_size_t nmemb, bfdev_size_t size) { return BFDEV_NULL; } -__bfdev_malloc void * +__bfdev_weak __bfdev_malloc void * bfport_realloc(void *ptr, bfdev_size_t size) { return BFDEV_NULL; } -void +__bfdev_weak void bfport_free(void *ptr) { return; } -int +__bfdev_weak int bfport_rand(void) { - return 0; + return bfdev_prandom_value(&generic_rand); } -__bfdev_noreturn void +__bfdev_weak __bfdev_noreturn void bfport_abort(void) { for (;;); diff --git a/port/generic/string.c b/port/generic/string.c index 45ec5b79..2f11acbb 100644 --- a/port/generic/string.c +++ b/port/generic/string.c @@ -6,7 +6,7 @@ #include #include -void * +__bfdev_weak void * bfport_memcpy(void *dest, const void *src, bfdev_size_t n) { const unsigned char *nsrc; @@ -21,7 +21,7 @@ bfport_memcpy(void *dest, const void *src, bfdev_size_t n) return dest; } -void * +__bfdev_weak void * bfport_memset(void *s, int c, bfdev_size_t n) { unsigned char *xs; @@ -33,7 +33,7 @@ bfport_memset(void *s, int c, bfdev_size_t n) return s; } -int +__bfdev_weak int bfport_memcmp(const void *s1, const void *s2, bfdev_size_t n) { const unsigned char *su1, *su2; @@ -48,7 +48,7 @@ bfport_memcmp(const void *s1, const void *s2, bfdev_size_t n) return res; } -int +__bfdev_weak int bfport_strcmp(const char *s1, const char *s2) { int cp; @@ -62,7 +62,7 @@ bfport_strcmp(const char *s1, const char *s2) return cp; } -char * +__bfdev_weak char * bfport_strchr(const char *s, int c) { for (; *s != (char)c; ++s) { @@ -73,7 +73,7 @@ bfport_strchr(const char *s, int c) return (char *)s; } -bfdev_size_t +__bfdev_weak bfdev_size_t bfport_strspn(const char *s, const char *accept) { const unsigned char *p, *a; @@ -93,7 +93,7 @@ bfport_strspn(const char *s, const char *accept) return count; } -bfdev_size_t +__bfdev_weak bfdev_size_t bfport_strcspn(const char *s, const char *reject) { const unsigned char *p, *r; @@ -111,7 +111,7 @@ bfport_strcspn(const char *s, const char *reject) return count; } -char * +__bfdev_weak char * bfport_strcpy(char *dest, const char *src) { unsigned char *tmp; @@ -123,7 +123,7 @@ bfport_strcpy(char *dest, const char *src) return dest; } -char * +__bfdev_weak char * bfport_strncpy(char *dest, const char *src, bfdev_size_t n) { unsigned char *tmp; @@ -136,7 +136,7 @@ bfport_strncpy(char *dest, const char *src, bfdev_size_t n) return dest; } -bfdev_size_t +__bfdev_weak bfdev_size_t bfport_strlen(const char *s) { const unsigned char *len; @@ -148,7 +148,7 @@ bfport_strlen(const char *s) return (char *)len - s; } -bfdev_size_t +__bfdev_weak bfdev_size_t bfport_strnlen(const char *s, bfdev_size_t len) { const unsigned char *sc;