diff options
Diffstat (limited to 'newlib/addon/newlib/libc/sys/hurd')
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/Makefile.am | 1 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/isatty.c | 7 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/malloc.c | 9 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/sys/config.h | 3 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/writer.c | 11 |
5 files changed, 31 insertions, 0 deletions
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; } |