diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/stdio/Makefile | 2 | ||||
-rw-r--r-- | libc/stdio/getw.c | 36 | ||||
-rw-r--r-- | libc/stdio/putw.c | 34 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/syscalls.c | 16 |
4 files changed, 87 insertions, 1 deletions
diff --git a/libc/stdio/Makefile b/libc/stdio/Makefile index 70e18986f..bbbc46664 100644 --- a/libc/stdio/Makefile +++ b/libc/stdio/Makefile @@ -40,7 +40,7 @@ MSRC3=scanf.c MOBJ3=scanf.o sscanf.o fscanf.o vscanf.o vsscanf.o vfscanf.o CSRC=popen.c perror.c remove.c getdelim.c getline.c tmpfile.c tmpnam.c \ - tmpnam_r.c tempnam.c ctermid.c + tmpnam_r.c tempnam.c ctermid.c getw.c putw.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(MOBJ) $(MOBJ2) $(MOBJ3) $(COBJS) diff --git a/libc/stdio/getw.c b/libc/stdio/getw.c new file mode 100644 index 000000000..75e73667f --- /dev/null +++ b/libc/stdio/getw.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <stdio.h> + +#ifdef USE_IN_LIBIO +# include <libio/iolibio.h> +# define fread(p, m, n, s) _IO_fread (p, m, n, s) +#endif + +/* Read a word (int) from STREAM. */ +int +getw (FILE *stream) +{ + int w; + + /* Is there a better way? */ + if (fread ((void *) &w, sizeof (w), 1, stream) != 1) + return EOF; + return w; +} diff --git a/libc/stdio/putw.c b/libc/stdio/putw.c new file mode 100644 index 000000000..d1b68ab27 --- /dev/null +++ b/libc/stdio/putw.c @@ -0,0 +1,34 @@ +/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <stdio.h> + +#ifdef USE_IN_LIBIO +# include <libio/iolibio.h> +# define fwrite(p, n, m, s) _IO_fwrite (p, n, m, s) +#endif + +/* Write the word (int) W to STREAM. */ +int +putw (int w, FILE *stream) +{ + /* Is there a better way? */ + if (fwrite ((const void *) &w, sizeof (w), 1, stream) < 1) + return EOF; + return 0; +} diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index 92d6265be..b0cf4232f 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -268,8 +268,24 @@ _syscall2(int, utime, const char *, filename, const struct utimbuf *, buf); #endif //#define __NR_stty 31 +#ifdef L_stty +#include <sgtty.h> +int stty (int __fd, __const struct sgttyb *__params); +{ + __set_errno(ENOSYS); + return -1; +} +#endif //#define __NR_gtty 32 +#ifdef L_gtty +#include <sgtty.h> +int gtty (int __fd, struct sgttyb *__params) +{ + __set_errno(ENOSYS); + return -1; +} +#endif //#define __NR_access 33 #ifdef L_access |