diff options
-rw-r--r-- | ChangeLog | 27 | ||||
-rw-r--r-- | libio/fileops.c | 10 | ||||
-rw-r--r-- | libio/libioP.h | 4 | ||||
-rw-r--r-- | pwd/getpw.c | 5 | ||||
-rw-r--r-- | pwd/putpwent.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Versions | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/acct.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/sendfile.h | 34 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 1 |
10 files changed, 85 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog index a038b7bb8e..4782fef8b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +1998-08-20 20:07 Ulrich Drepper <drepper@cygnus.com> + + * pwd/getpw.c (__getpw): Use %lu for uid and gid parameter and + cast them to unsigned long int. + * pwd/putpwent.c (putpwent): Likewise. + Patch by John Tobey <jtobey@banta-im.com>. + +1998-08-20 17:14 H.J. Lu <hjl@gnu.org> + + * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to + _IO_pos_BAD. + +1998-02-20 17:54 H.J. Lu <hjl@gnu.org> + + * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if + _IO_SYSSEEK fails. + 1998-08-20 19:14 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines): @@ -8,6 +25,16 @@ * sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2. Define MNT_FORCE. + * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdep_headers): + Add sys/sendfile.h. + * sysdeps/unix/sysv/linux/syscalls.list: Add sendfile. + * sysdeps/unix/sysv/linux/sys/sendfile.h: New file. + + * sysdeps/unix/sysv/linux/sys/acct.h: Pretty print. + + * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add umount2 and + sendfile. + 1998-08-20 16:01 Ulrich Drepper <drepper@cygnus.com> * elf/ldd.sh.in: Redirect warnings and error messages to stderr. diff --git a/libio/fileops.c b/libio/fileops.c index 596d97078a..5a5f9d9db2 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -613,10 +613,12 @@ _IO_file_seekoff (fp, offset, dir, mode) _IO_unsave_markers (fp); result = _IO_SYSSEEK (fp, offset, dir); if (result != EOF) - _IO_mask_flags (fp, 0, _IO_EOF_SEEN); - fp->_offset = result; - _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); - _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base); + { + _IO_mask_flags (fp, 0, _IO_EOF_SEEN); + fp->_offset = result; + _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); + _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base); + } return result; } diff --git a/libio/libioP.h b/libio/libioP.h index 84bac2c719..4891294726 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -555,12 +555,12 @@ extern int _IO_vscanf __P ((const char *, _IO_va_list)); # define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \ - 0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } + 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } #else /* check following! */ # define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD } + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, 0, _IO_pos_BAD } #endif /* VTABLE_LABEL defines NAME as of the CLASS class. diff --git a/pwd/getpw.c b/pwd/getpw.c index 5f738724a9..52c3db7afb 100644 --- a/pwd/getpw.c +++ b/pwd/getpw.c @@ -50,8 +50,9 @@ __getpw (uid, buf) if (__getpwuid_r (uid, &resbuf, tmpbuf, buflen, &p) < 0) return -1; - if (sprintf (buf, "%s:%s:%u:%u:%s:%s:%s", p->pw_name, p->pw_passwd, - p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell) < 0) + if (sprintf (buf, "%s:%s:%lu:%lu:%s:%s:%s", p->pw_name, p->pw_passwd, + (unsigned long int) p->pw_uid, (unsigned long int) p->pw_gid, + p->pw_gecos, p->pw_dir, p->pw_shell) < 0) return -1; return 0; diff --git a/pwd/putpwent.c b/pwd/putpwent.c index 7ab48c16d6..ac1fd7e464 100644 --- a/pwd/putpwent.c +++ b/pwd/putpwent.c @@ -35,9 +35,9 @@ putpwent (p, stream) return -1; } - if (fprintf (stream, "%s:%s:%u:%u:%s:%s:%s\n", + if (fprintf (stream, "%s:%s:%lu:%lu:%s:%s:%s\n", p->pw_name, _S (p->pw_passwd), - p->pw_uid, p->pw_gid, + (unsigned long int) p->pw_uid, (unsigned long int) p->pw_gid, _S (p->pw_gecos), _S (p->pw_dir), _S (p->pw_shell)) < 0) return -1; diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 5c38ced83f..ffd446d9f8 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -17,7 +17,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \ sys/user.h sys/sysmacros.h sys/procfs.h sys/prctl.h \ sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \ sys/quota.h sys/fsuid.h bits/mman.h \ - scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h + scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h \ + sys/sendfile.h install-others += $(inst_includedir)/bits/syscall.h diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index 8a7f0f85c3..2e392818b6 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -75,5 +75,11 @@ libc { # c* capget; capset; + + # s* + sendfile; + + # u* + umount2; } } diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h index 1d723d55b8..0b16d249af 100644 --- a/sysdeps/unix/sysv/linux/sys/acct.h +++ b/sysdeps/unix/sysv/linux/sys/acct.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 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 @@ -17,8 +17,8 @@ Boston, MA 02111-1307, USA. */ #ifndef _SYS_ACCT_H - #define _SYS_ACCT_H 1 + #include <features.h> #define __need_time_t diff --git a/sysdeps/unix/sysv/linux/sys/sendfile.h b/sysdeps/unix/sysv/linux/sys/sendfile.h new file mode 100644 index 0000000000..8008101b74 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sys/sendfile.h @@ -0,0 +1,34 @@ +/* Copyright (C) 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 Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _SYS_SENDFILE_H +#define _SYS_SENDFILE_H 1 + +#include <features.h> +#include <sys/types.h> + +__BEGIN_DECLS + +/* Send COUNT bytes from file associated with IN_FD starting at OFFSET to + descriptor OUT_FD. */ +extern ssize_t sendfile __P ((int __out_fd, int __in_fd, off_t *offset, + size_t __count)); + +__END_DECLS + +#endif /* sys/sendfile.h */ diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 82c6423afc..54b210d728 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -67,6 +67,7 @@ sched_setp - sched_setparam 2 __sched_setparam sched_setparam sched_sets - sched_setscheduler 3 __sched_setscheduler sched_setscheduler sched_yield - sched_yield 0 __sched_yield sched_yield select - _newselect 5 __select select +sendfile EXTRA sendfile 4 sendfile setfsgid EXTRA setfsgid 1 setfsgid setfsuid EXTRA setfsuid 1 setfsuid setpgid - setpgid 2 __setpgid setpgid |