summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorneal <neal>2008-01-23 13:21:56 +0000
committerneal <neal>2008-01-23 13:21:56 +0000
commit1f6ecffcafe4cca6928b775f49891f38fbf03804 (patch)
treee3c88fd17694750cbd8aa5b5b3da4b27170821bc /newlib
parentda9ca65b6f77da550aca7679d0144d3a66c54827 (diff)
2008-01-23 Neal H. Walfield <neal@gnu.org>
* addon/newlib/libc/sys/hurd/isatty.c: New file. * addon/newlib/libc/sys/hurd/Makefile.am (GENERAL_SOURCES): Add isatty.c. * Makefile.am (addon): Add newlib/libc/sys/hurd/isatty.c. * addon/newlib/libc/sys/hurd/sys/config.h (_LARGEFILE64_SOURCE): Don't define. (__LARGE64_FILES): Likewise. * addon/newlib/libc/sys/hurd/malloc.c: Include <sys/lock.h> (MLOCK_T): Define. (INITIAL_LOCK): Likewise. (ACQUIRE_LOCK): Likewise. (RELEASE_LOCK): Likewise. * addon/newlib/libc/sys/hurd/writer.c: Include <hurd/rm.h>. (_write_r): If FD is 1 or 2, then send the buffer to the console.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog20
-rw-r--r--newlib/Makefile.am1
-rw-r--r--newlib/addon/newlib/libc/sys/hurd/Makefile.am1
-rw-r--r--newlib/addon/newlib/libc/sys/hurd/isatty.c7
-rw-r--r--newlib/addon/newlib/libc/sys/hurd/malloc.c9
-rw-r--r--newlib/addon/newlib/libc/sys/hurd/sys/config.h3
-rw-r--r--newlib/addon/newlib/libc/sys/hurd/writer.c11
7 files changed, 52 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 29a71cf..b039cc6 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,5 +1,25 @@
2008-01-23 Neal H. Walfield <neal@gnu.org>
+ * addon/newlib/libc/sys/hurd/isatty.c: New file.
+ * addon/newlib/libc/sys/hurd/Makefile.am (GENERAL_SOURCES): Add
+ isatty.c.
+ * Makefile.am (addon): Add newlib/libc/sys/hurd/isatty.c.
+
+ * addon/newlib/libc/sys/hurd/sys/config.h (_LARGEFILE64_SOURCE):
+ Don't define.
+ (__LARGE64_FILES): Likewise.
+
+ * addon/newlib/libc/sys/hurd/malloc.c: Include <sys/lock.h>
+ (MLOCK_T): Define.
+ (INITIAL_LOCK): Likewise.
+ (ACQUIRE_LOCK): Likewise.
+ (RELEASE_LOCK): Likewise.
+
+ * addon/newlib/libc/sys/hurd/writer.c: Include <hurd/rm.h>.
+ (_write_r): If FD is 1 or 2, then send the buffer to the console.
+
+2008-01-23 Neal H. Walfield <neal@gnu.org>
+
* addon/newlib/libc/sys/hurd/malloc.c (HAVE_MREMAP): Define to 0.
2008-01-23 Neal H. Walfield <neal@gnu.org>
diff --git a/newlib/Makefile.am b/newlib/Makefile.am
index 425a001..9268ea9 100644
--- a/newlib/Makefile.am
+++ b/newlib/Makefile.am
@@ -49,6 +49,7 @@ addon = newlib/libc/sys/hurd/configure.ac \
newlib/libc/sys/hurd/timesr.c \
newlib/libc/sys/hurd/unlinkr.c \
newlib/libc/sys/hurd/writer.c \
+ newlib/libc/sys/hurd/isatty.c \
newlib/libc/sys/hurd/getreent.c \
newlib/libc/sys/hurd/malloc.c \
newlib/libc/sys/hurd/mallocr.c \
diff --git a/newlib/addon/newlib/libc/sys/hurd/Makefile.am b/newlib/addon/newlib/libc/sys/hurd/Makefile.am
index 0c967d7..57fe11d 100644
--- a/newlib/addon/newlib/libc/sys/hurd/Makefile.am
+++ b/newlib/addon/newlib/libc/sys/hurd/Makefile.am
@@ -45,6 +45,7 @@ GENERAL_SOURCES = \
unlinkr.c \
writer.c \
getreent.c \
+ isatty.c \
lock.c \
malloc.c \
mallocr.c \
diff --git a/newlib/addon/newlib/libc/sys/hurd/isatty.c b/newlib/addon/newlib/libc/sys/hurd/isatty.c
new file mode 100644
index 0000000..f496f3f
--- /dev/null
+++ b/newlib/addon/newlib/libc/sys/hurd/isatty.c
@@ -0,0 +1,7 @@
+int
+isatty (int fd)
+{
+ /* XXX: Assume the FD is valid. The only valid FDs are for the
+ console, which is a terminal. */
+ return 1;
+}
diff --git a/newlib/addon/newlib/libc/sys/hurd/malloc.c b/newlib/addon/newlib/libc/sys/hurd/malloc.c
index c27e107..025e0e9 100644
--- a/newlib/addon/newlib/libc/sys/hurd/malloc.c
+++ b/newlib/addon/newlib/libc/sys/hurd/malloc.c
@@ -1,5 +1,14 @@
/* Enable locking. */
#define USE_LOCKS 1
+
+/* Our locking functions. */
+#include <sys/lock.h>
+
+#define MLOCK_T _LOCK_T
+#define INITIAL_LOCK(lock) __lock_init(*lock)
+#define ACQUIRE_LOCK(lock) (__lock_acquire(*lock), 0)
+#define RELEASE_LOCK(lock) (__lock_release(*lock), 0)
+
/* Don't use sbrk. */
#define HAVE_MORECORE 0
/* mmap allocates cleared memory. */
diff --git a/newlib/addon/newlib/libc/sys/hurd/sys/config.h b/newlib/addon/newlib/libc/sys/hurd/sys/config.h
index bdec7bd..65eebce 100644
--- a/newlib/addon/newlib/libc/sys/hurd/sys/config.h
+++ b/newlib/addon/newlib/libc/sys/hurd/sys/config.h
@@ -7,9 +7,12 @@
#define HAVE_GETDATE
#define _HAVE_SYSTYPES
#define _READ_WRITE_RETURN_TYPE _ssize_t
+/* We do not currently support large files. */
+#if 0
#define __LARGE64_FILES 1
/* we use some glibc header files so turn on glibc large file feature */
#define _LARGEFILE64_SOURCE 1
+#endif
/* This block should be kept in sync with GCC's limits.h. The point
of having these definitions here is to not include limits.h, which
diff --git a/newlib/addon/newlib/libc/sys/hurd/writer.c b/newlib/addon/newlib/libc/sys/hurd/writer.c
index 1d345b6..120ac9f 100644
--- a/newlib/addon/newlib/libc/sys/hurd/writer.c
+++ b/newlib/addon/newlib/libc/sys/hurd/writer.c
@@ -2,6 +2,8 @@
#include <unistd.h>
#include <errno.h>
+#include <hurd/rm.h>
+
_ssize_t
_DEFUN (_write_r, (ptr, fd, buf, cnt),
struct _reent *ptr _AND
@@ -9,6 +11,15 @@ _DEFUN (_write_r, (ptr, fd, buf, cnt),
_CONST _PTR buf _AND
size_t cnt)
{
+ if (fd == 1 || fd == 2)
+ {
+ int i;
+ for (i = 0; i < cnt; i ++)
+ rm_putchar (((char *) buf)[i]);
+
+ return cnt;
+ }
+
errno = EOPNOTSUPP;
return -1;
}