summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/libc/armlibc/mem_std.c22
-rw-r--r--components/libc/armlibc/stubs.c22
2 files changed, 29 insertions, 15 deletions
diff --git a/components/libc/armlibc/mem_std.c b/components/libc/armlibc/mem_std.c
index 017ed77fef..6faf86555f 100644
--- a/components/libc/armlibc/mem_std.c
+++ b/components/libc/armlibc/mem_std.c
@@ -1,7 +1,16 @@
/*
- * File: mem_std.c
- * Brief: Replace memory management functions of arm standard c library
+ * File : mem_std.c
+ * Brief : implement standard memory routins.
*
+ * This file is part of Device File System in RT-Thread RTOS
+ * COPYRIGHT (C) 2014, RT-Thread Development Team
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rt-thread.org/license/LICENSE.
+ *
+ * Change Logs:
+ * 2014-08-03 bernard Add file header.
*/
#include "rtthread.h"
@@ -9,16 +18,21 @@
/* avoid the heap and heap-using library functions supplied by arm */
#pragma import(__use_no_heap)
-void * malloc(int n)
+void *malloc(int n)
{
return rt_malloc(n);
}
-void * realloc(void *rmem, rt_size_t newsize)
+void *realloc(void *rmem, rt_size_t newsize)
{
return rt_realloc(rmem, newsize);
}
+void *calloc(rt_size_t nelem, rt_size_t elsize)
+{
+ return rt_calloc(nelem, elsize);
+}
+
void free(void *rmem)
{
rt_free(rmem);
diff --git a/components/libc/armlibc/stubs.c b/components/libc/armlibc/stubs.c
index d219b3430a..1f9e01ba3c 100644
--- a/components/libc/armlibc/stubs.c
+++ b/components/libc/armlibc/stubs.c
@@ -13,6 +13,8 @@
* Date Author Notes
* 2012-11-23 Yihui The first version
* 2013-11-24 aozima fixed _sys_read()/_sys_write() issues.
+ * 2014-08-03 bernard If using msh, use system() implementation
+ * in msh.
*/
#include <string.h>
@@ -194,9 +196,13 @@ char *_sys_command_string(char *cmd, int len)
return cmd;
}
+/* This function writes a character to the console. */
void _ttywrch(int ch)
{
- /* TODO */
+ char c;
+
+ c = (char)ch;
+ rt_kprintf(&c);
}
void _sys_exit(int return_code)
@@ -231,18 +237,12 @@ int remove(const char *filename)
#endif
}
-/* rename() is defined in dfs_posix.c instead */
-#if 0
-int rename(const char *old, const char *new)
-{
- return -1;
-}
-#endif
-
+#if defined(RT_USING_FINSH) && defined(FINSH_USING_MSH) && defined(RT_USING_MODULE) && defined(RT_USING_DFS)
+/* use system implementation in the msh */
+#else
int system(const char *string)
{
RT_ASSERT(0);
for(;;);
}
-
-
+#endif