From d762684b511b6a425d9e0e2ff7473ffbfc98687d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 20 Aug 1998 20:14:21 +0000 Subject: [PATCH] Update. 1998-08-20 20:07 Ulrich Drepper * 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 . 1998-08-20 17:14 H.J. Lu * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to _IO_pos_BAD. 1998-02-20 17:54 H.J. Lu * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if _IO_SYSSEEK fails. * 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. --- ChangeLog | 27 +++++++++++++++++++++++++++ libio/fileops.c | 10 ++++++---- libio/libioP.h | 4 ++-- pwd/getpw.c | 5 +++-- pwd/putpwent.c | 4 ++-- sysdeps/unix/sysv/linux/Makefile | 3 ++- sysdeps/unix/sysv/linux/Versions | 6 ++++++ sysdeps/unix/sysv/linux/sys/acct.h | 4 ++-- sysdeps/unix/sysv/linux/sys/sendfile.h | 34 ++++++++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/syscalls.list | 1 + 10 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/sys/sendfile.h diff --git a/ChangeLog b/ChangeLog index a038b7b..4782fef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +1998-08-20 20:07 Ulrich Drepper + + * 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 . + +1998-08-20 17:14 H.J. Lu + + * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to + _IO_pos_BAD. + +1998-02-20 17:54 H.J. Lu + + * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if + _IO_SYSSEEK fails. + 1998-08-20 19:14 Ulrich Drepper * 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 * elf/ldd.sh.in: Redirect warnings and error messages to stderr. diff --git a/libio/fileops.c b/libio/fileops.c index 596d970..5a5f9d9 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 84bac2c..4891294 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 5f73872..52c3db7 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 7ab48c1..ac1fd7e 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 5c38ced..ffd446d 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 8a7f0f8..2e39281 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 1d723d5..0b16d24 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 #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 0000000..8008101 --- /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 +#include + +__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 82c6423..54b210d 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 -- 2.7.4