From c2b29a3e31facfaeb5e343e28114e268d489de0b Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Tue, 27 Apr 2010 07:53:41 +0000 Subject: add more stubs. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@674 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- components/libc/newlib/syscalls.c | 80 ++++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 18 deletions(-) (limited to 'components/libc') 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,57 +1,101 @@ #include #include +#include -int _fork_r (struct _reent *r) +int +_fork_r (struct _reent *r) { /* return "not supported" */ r->_errno = ENOTSUP; return -1; } -_ssize_t -_read_r (struct _reent *r, int fd, void *buf, size_t nbytes) +/* + * 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 -_write_r (struct _reent *r, int fd, const void *buf, size_t nbytes) +_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; } -int -_close_r (struct _reent *r, int fd) +_ssize_t +_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) +{ + 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; + 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 rc; + 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); } -- cgit v1.3.1