stdlib.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef __STDLIB_H__
  2. #define __STDLIB_H__
  3. #include <stddef.h>
  4. #include <string.h>
  5. #ifndef NULL
  6. #define NULL ((void*)0)
  7. #endif
  8. #if defined(CONFIG_OS_UCOS_II) || defined(CONFIG_OS_UCOS_III)
  9. #include "kmem.h"
  10. static inline void *malloc(size_t size)
  11. {
  12. return kmalloc(size);
  13. }
  14. static inline void free(void *ptr)
  15. {
  16. return kfree(ptr);
  17. }
  18. #elif defined(CONFIG_OS_FREERTOS)
  19. extern void *pvPortMalloc( size_t xWantedSize );
  20. extern void vPortFree( void *pv );
  21. #define malloc pvPortMalloc
  22. #define free vPortFree
  23. #elif defined(CONFIG_OS_THREADX)
  24. #include "kmem.h"
  25. static inline void *malloc(size_t size)
  26. {
  27. return kmalloc(size);
  28. }
  29. static inline void free(void *ptr)
  30. {
  31. return kfree(ptr);
  32. }
  33. #elif defined(CONFIG_OS_RTTHREAD)
  34. #include "rtdef.h"
  35. #include "rtthread.h"
  36. #define malloc rt_malloc
  37. #define free rt_Free
  38. #else
  39. # error "No valid OS is defined!"
  40. #endif
  41. static inline void *calloc(size_t nmemb, size_t size)
  42. {
  43. int i = nmemb * size;
  44. unsigned char *ret = malloc(i);
  45. while (i >= 0)
  46. ret[--i] = '\0';
  47. return ret;
  48. }
  49. static inline void *realloc(void *ptr, size_t size)
  50. {
  51. return NULL;
  52. }
  53. static inline void exit(int status)
  54. {
  55. }
  56. static inline void abort(void)
  57. {
  58. }
  59. void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *));
  60. extern int atoi(const char *__nptr);
  61. #endif /* __STDLIB_H__ */