diff options
| author | 陈豪 <[email protected]> | 2014-08-06 22:55:49 +0800 |
|---|---|---|
| committer | 陈豪 <[email protected]> | 2014-08-06 22:55:49 +0800 |
| commit | 5fc32bf12ef4356ecbd46cfa21079cddb522b5c7 (patch) | |
| tree | 8f77e59c1bcec59c3c5efd0fe022f3dc0a0c901e /components/libc | |
| parent | 0c8335d5ab046ce9fe36c4e01d5d40e4ba152b49 (diff) | |
| parent | a8fadf15b1828569e7684049d983cc6cb7fda2c9 (diff) | |
Merge pull request #1 from RT-Thread/master
sync
Diffstat (limited to 'components/libc')
| -rw-r--r-- | components/libc/armlibc/mem_std.c | 22 | ||||
| -rw-r--r-- | components/libc/armlibc/stubs.c | 35 | ||||
| -rw-r--r-- | components/libc/minilibc/sys/types.h | 2 | ||||
| -rw-r--r-- | components/libc/newlib/syscalls.c | 8 |
4 files changed, 47 insertions, 20 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 301f654182..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> @@ -46,8 +48,10 @@ const char __stderr_name[] = "STDERR"; */ FILEHANDLE _sys_open(const char *name, int openmode) { +#ifdef RT_USING_DFS int fd; - +#endif + /* Register standard Input Output devices. */ if (strcmp(name, __stdin_name) == 0) return (STDIN); @@ -91,12 +95,13 @@ int _sys_close(FILEHANDLE fh) */ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode) { +#ifdef RT_USING_DFS int size; - +#endif + if (fh == STDIN) { /* TODO */ - return 0; } @@ -125,8 +130,10 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode) */ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode) { +#ifdef RT_USING_DFS int size; - +#endif + if ((fh == STDOUT) || (fh == STDERR)) { #ifndef RT_USING_CONSOLE @@ -189,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) @@ -226,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 diff --git a/components/libc/minilibc/sys/types.h b/components/libc/minilibc/sys/types.h index 6d92d80826..a6860f2aee 100644 --- a/components/libc/minilibc/sys/types.h +++ b/components/libc/minilibc/sys/types.h @@ -4,7 +4,7 @@ #include <rtthread.h> typedef long off_t; -typedef rt_size_t size_t; +typedef __SIZE_TYPE__ size_t; typedef signed long ssize_t; /* Used for a count of bytes or an error indication. */ typedef rt_uint8_t u_char; diff --git a/components/libc/newlib/syscalls.c b/components/libc/newlib/syscalls.c index 5b829f4753..388d240c94 100644 --- a/components/libc/newlib/syscalls.c +++ b/components/libc/newlib/syscalls.c @@ -3,6 +3,14 @@ #include <sys/time.h> #include <rtthread.h> +#ifdef RT_USING_DFS +#include <dfs_posix.h> +#endif + +#ifdef RT_USING_PTHREADS +#include <pthread.h> +#endif + /* Reentrant versions of system calls. */ int |
