فهرست منبع

add newlib stub building script.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@702 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong 15 سال پیش
والد
کامیت
b5fbf220b3
2فایلهای تغییر یافته به همراه210 افزوده شده و 101 حذف شده
  1. 10 0
      components/libc/newlib/SConscript
  2. 200 101
      components/libc/newlib/syscalls.c

+ 10 - 0
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')

+ 200 - 101
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);
+}