rtklibc.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * Copyright (c) 2006-2024, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-03-10 Meco Man the first version
  9. */
  10. #ifndef __RT_KLIBC_H__
  11. #define __RT_KLIBC_H__
  12. #include <rtconfig.h>
  13. #include <rtdef.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /* kstdio */
  18. int rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
  19. int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
  20. int rt_sprintf(char *buf, const char *format, ...);
  21. int rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
  22. rt_err_t rt_get_errno(void);
  23. void rt_set_errno(rt_err_t no);
  24. int *_rt_errno(void);
  25. const char *rt_strerror(rt_err_t error);
  26. #if !defined(RT_USING_NEWLIBC) && !defined(_WIN32)
  27. #ifndef errno
  28. #define errno *_rt_errno()
  29. #endif
  30. #endif /* !defined(RT_USING_NEWLIBC) && !defined(_WIN32) */
  31. /* kstring */
  32. #ifndef RT_KSERVICE_USING_STDLIB_MEMORY
  33. void *rt_memset(void *src, int c, rt_ubase_t n);
  34. void *rt_memcpy(void *dest, const void *src, rt_ubase_t n);
  35. void *rt_memmove(void *dest, const void *src, rt_size_t n);
  36. rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count);
  37. #endif /* RT_KSERVICE_USING_STDLIB_MEMORY */
  38. char *rt_strdup(const char *s);
  39. rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen);
  40. #ifndef RT_KSERVICE_USING_STDLIB
  41. char *rt_strstr(const char *str1, const char *str2);
  42. rt_int32_t rt_strcasecmp(const char *a, const char *b);
  43. char *rt_strcpy(char *dst, const char *src);
  44. char *rt_strncpy(char *dest, const char *src, rt_size_t n);
  45. rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count);
  46. rt_int32_t rt_strcmp(const char *cs, const char *ct);
  47. rt_size_t rt_strlen(const char *src);
  48. #else
  49. #include <string.h>
  50. #ifdef RT_KSERVICE_USING_STDLIB_MEMORY
  51. #define rt_memset(s, c, count) memset(s, c, count)
  52. #define rt_memcpy(dst, src, count) memcpy(dst, src, count)
  53. #define rt_memmove(dest, src, n) memmove(dest, src, n)
  54. #define rt_memcmp(cs, ct, count) memcmp(cs, ct, count)
  55. #endif /* RT_KSERVICE_USING_STDLIB_MEMORY */
  56. #define rt_strstr(str1, str2) strstr(str1, str2)
  57. #define rt_strcasecmp(a, b) strcasecmp(a, b)
  58. #define rt_strcpy(dest, src) strcpy(dest, src)
  59. #define rt_strncpy(dest, src, n) strncpy(dest, src, n)
  60. #define rt_strncmp(cs, ct, count) strncmp(cs, ct, count)
  61. #define rt_strcmp(cs, ct) strcmp(cs, ct)
  62. #define rt_strlen(src) strlen(src)
  63. #endif /*RT_KSERVICE_USING_STDLIB*/
  64. #ifdef __cplusplus
  65. }
  66. #endif
  67. #endif /* __RT_KLIBC_H__ */