summaryrefslogtreecommitdiff
path: root/components/libc
diff options
context:
space:
mode:
authorbernard.xiong <[email protected]>2010-05-11 09:51:43 +0000
committerbernard.xiong <[email protected]>2010-05-11 09:51:43 +0000
commitb5fbf220b3b41c4eb76a3982169b553cc6c5e9ae (patch)
treeca912408147bcf2fdee1f11c7affaad5a9b3cd89 /components/libc
parent9c8a595e2879d7210ff2ad0af0da097d3cec4f7c (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/SConscript10
-rw-r--r--components/libc/newlib/syscalls.c301
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);
+}