提交 ac275965 编写于 作者: mysterywolf's avatar mysterywolf

[libc][newlib] 对syscall中malloc相关桩函数做出编译调整

上级 8932ffdb
...@@ -11,8 +11,59 @@ ...@@ -11,8 +11,59 @@
#include <reent.h> #include <reent.h>
#include <rtthread.h> #include <rtthread.h>
void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr) #ifdef RT_USING_HEAP /* Memory routine */
void *
_malloc_r (struct _reent *ptr, size_t size)
{
void* result;
result = (void*)rt_malloc (size);
if (result == RT_NULL)
{
ptr->_errno = ENOMEM;
}
return result;
}
void *
_realloc_r (struct _reent *ptr, void *old, size_t newlen)
{
void* result;
result = (void*)rt_realloc (old, newlen);
if (result == RT_NULL)
{
ptr->_errno = ENOMEM;
}
return result;
}
void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
{
void* result;
result = (void*)rt_calloc (size, len);
if (result == RT_NULL)
{
ptr->_errno = ENOMEM;
}
return result;
}
void
_free_r (struct _reent *ptr, void *addr)
{
rt_free (addr);
}
#else
void *
_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{ {
/* no use this routine to get memory */ /* no use this routine to get memory */
return RT_NULL; return RT_NULL;
} }
#endif /*RT_USING_HEAP*/
...@@ -189,13 +189,6 @@ _rename_r(struct _reent *ptr, const char *old, const char *new) ...@@ -189,13 +189,6 @@ _rename_r(struct _reent *ptr, const char *old, const char *new)
#endif #endif
} }
void *
_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{
/* no use this routine to get memory */
return RT_NULL;
}
int int
_stat_r(struct _reent *ptr, const char *file, struct stat *pstat) _stat_r(struct _reent *ptr, const char *file, struct stat *pstat)
{ {
...@@ -258,7 +251,7 @@ _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes) ...@@ -258,7 +251,7 @@ _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
#endif #endif
} }
/* Memory routine */ #ifdef RT_USING_HEAP /* Memory routine */
void * void *
_malloc_r (struct _reent *ptr, size_t size) _malloc_r (struct _reent *ptr, size_t size)
{ {
...@@ -306,6 +299,15 @@ _free_r (struct _reent *ptr, void *addr) ...@@ -306,6 +299,15 @@ _free_r (struct _reent *ptr, void *addr)
rt_free (addr); rt_free (addr);
} }
#else
void *
_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{
/* no use this routine to get memory */
return RT_NULL;
}
#endif /*RT_USING_HEAP*/
/* for exit() and abort() */ /* for exit() and abort() */
__attribute__ ((noreturn)) void __attribute__ ((noreturn)) void
_exit (int status) _exit (int status)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册