From c2b29a3e31facfaeb5e343e28114e268d489de0b Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Tue, 27 Apr 2010 07:53:41 +0000 Subject: [PATCH] add more stubs. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@674 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- components/libc/newlib/syscalls.c | 86 +++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/components/libc/newlib/syscalls.c b/components/libc/newlib/syscalls.c index 6204dafa12..58e0b9c74e 100644 --- a/components/libc/newlib/syscalls.c +++ b/components/libc/newlib/syscalls.c @@ -1,22 +1,45 @@ #include #include +#include -int _fork_r (struct _reent *r) +int +_fork_r (struct _reent *r) { /* return "not supported" */ r->_errno = ENOTSUP; return -1; } +/* + * I/O routine stub + */ +int +_isatty_r(struct _reent *r, int fd) +{ + _ssize_t rc; + + rc = -1; + /* return "not supported" */ + r->_errno = ENOTSUP; + + return rc; +} + +int +_open_r(struct _reent *r, const char *file, int flags, int mode) +{ + int rc; + + rc = open(file, flags, mode); + return rc; +} + _ssize_t _read_r (struct _reent *r, int fd, void *buf, size_t nbytes) { _ssize_t rc; - rc = -1; - - /* return "not supported" */ - r->_errno = ENOTSUP; + rc = read(fd, buf, nbytes); return rc; } @@ -25,33 +48,54 @@ _write_r (struct _reent *r, int fd, const void *buf, size_t nbytes) { _ssize_t rc; - rc = -1; - - /* return "not supported" */ - r->_errno = ENOTSUP; + rc = write(fd, buf, nbytes); return rc; } int _close_r (struct _reent *r, int fd) { - _ssize_t rc; - - rc = -1; - - /* return "not supported" */ - r->_errno = ENOTSUP; - return rc; + return close(fd); } _off_t _lseek_r (struct _reent *r, int fd, _off_t offset, int whence) { - _ssize_t rc; + _off_t rc; - rc = -1; - - /* return "not supported" */ - r->_errno = ENOTSUP; + rc = lseek(fd, offset, whence); return rc; } + +int _fstat_r (struct _reent *r, int fd, struct stat *pstat) +{ + /* return "not supported" */ + r->_errno = ENOTSUP; + return -1; +} + +/* + * memory routine stub + */ +void * +_malloc_r (struct _reent *ptr, size_t size) +{ + return (void*)rt_malloc (size); +} + +void * +_realloc_r (struct _reent *ptr, void *old, size_t newlen) +{ + return (void*)rt_realloc (old, newlen); +} + +void *_calloc_r (struct _reent *ptr, size_t size, size_t len) +{ + return (void*)rt_calloc (size, len); +} + +void +_free_r (struct _reent *ptr, void *addr) +{ + rt_free (addr); +}