diff options
| author | bernard.xiong <[email protected]> | 2010-05-11 09:51:43 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2010-05-11 09:51:43 +0000 |
| commit | b5fbf220b3b41c4eb76a3982169b553cc6c5e9ae (patch) | |
| tree | ca912408147bcf2fdee1f11c7affaad5a9b3cd89 /components/libc | |
| parent | 9c8a595e2879d7210ff2ad0af0da097d3cec4f7c (diff) | |
add newlib stub building script.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@702 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/libc')
| -rw-r--r-- | components/libc/newlib/SConscript | 10 | ||||
| -rw-r--r-- | components/libc/newlib/syscalls.c | 301 |
2 files changed, 210 insertions, 101 deletions
diff --git a/components/libc/newlib/SConscript b/components/libc/newlib/SConscript new file mode 100644 index 0000000000..2de094db01 --- /dev/null +++ b/components/libc/newlib/SConscript @@ -0,0 +1,10 @@ +Import('env')
+Import('RTT_ROOT')
+
+# The set of source files associated with this SConscript file.
+src_local = Glob('*.c')
+
+env.Append(CPPPATH = RTT_ROOT + '/components/libc/newlib')
+
+obj = env.Object(src_local)
+Return('obj')
diff --git a/components/libc/newlib/syscalls.c b/components/libc/newlib/syscalls.c index 58e0b9c74e..3625f2d234 100644 --- a/components/libc/newlib/syscalls.c +++ b/components/libc/newlib/syscalls.c @@ -1,101 +1,200 @@ -#include <reent.h> -#include <sys/errno.h> -#include <rtthread.h> - -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 = read(fd, buf, nbytes); - return rc; -} - -_ssize_t -_write_r (struct _reent *r, int fd, const void *buf, size_t nbytes) -{ - _ssize_t rc; - - 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) -{ - _off_t rc; - - 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); -} +#include <reent.h>
+#include <sys/errno.h>
+#include <rtthread.h>
+
+/* Reentrant versions of system calls. */
+
+int
+_close_r(struct _reent *ptr, int fd)
+{
+ return close(fd);
+}
+
+int
+_execve_r(struct _reent *ptr, const char * name, char *const *argv, char *const *env)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_fcntl_r(struct _reent *ptr, int fd, int cmd, int arg)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_fork_r(struct _reent *ptr)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_fstat_r(struct _reent *ptr, int fd, struct stat *pstat)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_getpid_r(struct _reent *ptr)
+{
+ return 0;
+}
+
+int
+_isatty_r(struct _reent *ptr, int fd)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_kill_r(struct _reent *ptr, int pid, int sig)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_link_r(struct _reent *ptr, const char *old, const char *new)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+_off_t
+_lseek_r(struct _reent *ptr, int fd, _off_t pos, int whence)
+{
+ _off_t rc;
+
+ rc = lseek(fd, pos, whence);
+ return rc;
+}
+
+int
+_mkdir_r(struct _reent *ptr, const char *name, int mode)
+{
+ int rc;
+
+ rc = mkdir(name, mode);
+ return rc;
+}
+
+int
+_open_r(struct _reent *ptr, const char *file, int flags, int mode)
+{
+ int rc;
+
+ rc = open(file, flags, mode);
+ return rc;
+}
+
+_ssize_t
+_read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
+{
+ _ssize_t rc;
+
+ rc = read(fd, buf, nbytes);
+ return rc;
+}
+
+int
+_rename_r(struct _reent *ptr, const char *old, const char *new)
+{
+ int rc;
+
+ rc = rename(old, new);
+ return rc;
+}
+
+void *
+_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+{
+ /* no use this routine to get memory */
+ return RT_NULL;
+}
+
+int
+_stat_r(struct _reent *ptr, const char *file, struct stat *pstat)
+{
+ int rc;
+
+ rc = stat(file, pstat);
+ return rc;
+}
+
+_CLOCK_T_
+_times_r(struct _reent *ptr, struct tms *ptms)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+int
+_unlink_r(struct _reent *ptr, const char *file)
+{
+ int rc;
+
+ rc = unlink(file);
+ return rc;
+}
+
+int
+_wait_r(struct _reent *ptr, int *status)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+_ssize_t
+_write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
+{
+ _ssize_t rc;
+
+ rc = write(fd, buf, nbytes);
+ return rc;
+}
+
+int
+_gettimeofday_r(struct _reent *ptr, struct timeval *__tp, void *__tzp)
+{
+ /* return "not supported" */
+ ptr->_errno = ENOTSUP;
+ return -1;
+}
+
+/* Memory routine */
+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);
+}
|
