mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com> * libio/genops.c: Partial undo of last patch. * libio/stdfiles.c: Likewise. * libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus. * libio/iopopen.c: Likewise. * libio/iovdprintf.c: Likewise. * libio/libio.h: Remove duplicated `;'. * libio/stdio.c: Remove misleading comment. * libio/stdio.h: Declare standard streams as variables. * login/Makefile (distribute): Add README.utmpd. * login/README.utmpd: New file. Provided by Mark M. Kettenis <kettenis@phys.uva.nl>. * manual/job.texi: Document tcgetsid. * manual/pattern.texi: Document globfree. * manual/terminal.texi: Document B38400 ... B460800. * posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS. * posix/unistd.h: Add explanation of _POSIX_* constants. * posix/unists.h: Add prototypes for __pread, __pread64, __pwrite and __pwrite64. * sysdeps/generic/pread.c: Define as __pread and make pread weak alias. * sysdeps/generic/pread64.c: Likewise. * sysdeps/generic/pwrite.c: Likewise. * sysdeps/generic/pwrite64.c: Likewise. * sysdeps/posix/pread.c: Likewise. * sysdeps/posix/pwrite.c: Likewise. * sysdeps/posix/pread64.c: New file. * sysdeps/posix/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines): Add s_pread64 and s_pwrite64. * sysdeps/unix/sysv/linux/pread.c: New file. * sysdeps/unix/sysv/linux/pread64.c: New file. * sysdeps/unix/sysv/linux/pwrite.c: New file. * sysdeps/unix/sysv/linux/pwrite64.c: New file. * sysdeps/unix/sysv/linux/s_pread64.c: New file. * sysdeps/unix/sysv/linux/s_pwrite64.c: New file. * sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite. * sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file. * sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file. * sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file. * sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite with weak aliases for *64 functions. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * string/bits/string2.h: Add casts to allow void * arguments. * sysdeps/i386/i486/bits/string.h: Define index and rindex only if __USE_BSD or __USE_XOPEN_EXTENDED. * sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other SCM_* constants from kernel header. * termios/termios.h: Add prototype for tcgetsid. 1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/clnt_perr.c: Add trailing '\0' to strings. * sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes. * sunrpc/pmap_clnt.c: Use get_myaddress from header file. 1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com> * configure.in: Punt if any directory mentioned in the enable-add-on parameter does not exist. 1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com> * termios/Makefile (routines): Add tcgetsid. * termios/tcgetsid.c: New file. Provided by Mark M. Kettenis <kettenis@phys.uva.nl>. 1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com> * stdlib/stdlib.h: Remove mblen optimization. * stdlib/mblen.c: Rewrite to make sure global state is not changed. Reported by anderson@metrolink.com. 1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de> * malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get} interface for thread-specific data. 1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com> * elf/dl-addr.c: Use braces for correct logical grouping. Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>. 1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au> * io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more convenient; that caused this test to break. * sysdeps/powerpc/dl-machine.h: Fix typo. * sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers when -msoft-float is in effect, because this causes compilation to stop. * sysdeps/powerpc/bits/mathinlines.h: Likewise. * rpm/template: Add description, use RPM flags rather than the ones used to build the spec. Build in a temporary directory, not /. * elf/dl-lookup.c: Don't include _itoa.h, it's not used. * elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that _itoa is the only routine that ld.so uses that requires something from libgcc.a on powerpc, so it would be best to avoid it in ld.so. * elf/rtld.c: Likewise. * sysdeps/generic/_strerror.c: Likewise. * stdio-common/_itoa.c: Split out digits strings. * stdio-common/itoa-digits.c: New file. * stdio-common/Makefile: Add itoa-digits. 1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/filesys.texi (Scanning Directory Content): Document error case more. * dirent/scandir.c (scandir): Ignore errors from select function. Suggested by urbanw@cs.umu.se (closes PR libc/316). 1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections. Patch by Erik Troan <ewt@redhat.com>. 1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact matching of version function if both the general (1) and glibc-specific (3) entry are present. 1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/rpc/clnt.h: Add get_myaddress prototype. * nis/libnsl.map: Fix typo. * nis/nis_call.c: Fix memory leak. 1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/memcmp.c: Define __P if not defined before. Patch by Jim Meyering <meyering@eng.ascend.com>. 1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch <rgooch@atnf.csiro.au>. 1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com> * misc/syslog.c (vsyslog): Open console with O_NOCTTY. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>. 1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com> * posix/wordexp.c: Improve handling of $... expressions. Patch by Tim Waugh <tim@cyberelk.demon.co.uk>. 1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com> * manual/string.texi: Correct return values of bcopy and bzero. Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>. 1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some elements in struct msghdr and struct cmsghdr, to keep in step with the kernel. 1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another bug in startup code. Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>. 1997-10-16 20:17 Richard Henderson <rth@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the stack and give the kernel a pointer. Use the sysdep.h macros. 1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com> * sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly. Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>. 1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo. 1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com> * manual/pattern.texi: Document globfree. 1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/net/if_packet.h: New file. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add net/if_packet.h. * sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for 64Mbps ASH. (ARPHRD_ETHER): This is used for 100Mbps networks too. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * Makerules (install): Use full pathnames for linker script. This is to work around a limitation in `ld' while no better solution is possible. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * malloc/malloc.c (mmap_chunk): Put inline before static in function definition to avoid compiler warning. (malloc_extend): Likewise. * sysdeps/generic/des_impl.c: Include "des.h" to avoid warning. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * NEWS: Fix @gnu.ai.mit.edu -> @gnu.org. * README.template: Likewise. * db/makedb.c: Likewise. * elf/ldd.bash.in: Likewise. * elf/ldd.sh.in: Likewise. * intl/locale.alias: Likewise. * login/programs/utmpd.c: Likewise. * libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Rules: Remove all empty.* files. (shared-only-routines): Correct implementation. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/s_lrintl.c: Make compilable. * sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/ldd.bash.in: Only prepend ./ if the file contains no slash at all. * elf/ldd.sh.in: Likewise. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/sys/ucontext.h: New file. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/fpu/s_scalbln.c: New (empty) file. * sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file. * sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file. * sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias. * sysdeps/m68k/fpu/s_scalbnf.c: Adapted. * sysdeps/m68k/fpu/s_scalbnl.c: Adapted. * sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff. * sysdeps/m68k/fpu/s_lrintf.c: New file. * sysdeps/m68k/fpu/s_lrintl.c: New file. * sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update lrint and scalbn. (__m81_inline) [__cplusplus]: Define to __inline. * math/bits/mathcalls.h: Remove whitespace before second argument of __MATHDECL. Add note explaining this. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * manual/arith.texi (Absolute Value): Spelling fix. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly parenthesize the macro parameter. * Rules: Remove rules to magically install <subdir>.h headers.
This commit is contained in:
@@ -76,6 +76,10 @@ sysdep_headers += netinet/in_systm.h netinet/udp.h \
|
||||
sys/socketvar.h
|
||||
endif
|
||||
|
||||
ifeq ($(subdir),posix)
|
||||
sysdep_routines += s_pread64 s_pwrite64
|
||||
endif
|
||||
|
||||
# Don't compile the ctype glue code, since there is no old non-GNU C library.
|
||||
inhibit-glue = yes
|
||||
|
||||
|
||||
1
sysdeps/unix/sysv/linux/alpha/pread64.c
Normal file
1
sysdeps/unix/sysv/linux/alpha/pread64.c
Normal file
@@ -0,0 +1 @@
|
||||
/* Empty since the pread syscall is equivalent. */
|
||||
1
sysdeps/unix/sysv/linux/alpha/pwrite64.c
Normal file
1
sysdeps/unix/sysv/linux/alpha/pwrite64.c
Normal file
@@ -0,0 +1 @@
|
||||
/* Empty since the pread syscall is equivalent. */
|
||||
@@ -21,6 +21,8 @@ getpeername - getpeername 3 __getpeername getpeername
|
||||
getpriority - getpriority 2 __getpriority getpriority
|
||||
mmap - mmap 6 __mmap mmap
|
||||
llseek EXTRA lseek 3 llseek
|
||||
pread EXTRA pread 4 __pread pread __pread64 pread64
|
||||
pwrite EXTRA pwrite 4 __pwrite pwrite __pwrite64 pwrite64
|
||||
|
||||
# these are actually common with the x86:
|
||||
fstatfs - fstatfs 2 __fstatfs fstatfs
|
||||
|
||||
@@ -136,10 +136,10 @@ struct msghdr
|
||||
socklen_t msg_namelen; /* Length of address data. */
|
||||
|
||||
struct iovec *msg_iov; /* Vector of data to send/receive into. */
|
||||
int msg_iovlen; /* Number of elements in the vector. */
|
||||
size_t msg_iovlen; /* Number of elements in the vector. */
|
||||
|
||||
__ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */
|
||||
socklen_t msg_controllen; /* Ancillary data buffer length. */
|
||||
size_t msg_controllen; /* Ancillary data buffer length. */
|
||||
|
||||
int msg_flags; /* Flags on received message. */
|
||||
};
|
||||
@@ -147,7 +147,7 @@ struct msghdr
|
||||
/* Structure used for storage of ancillary data object information. */
|
||||
struct cmsghdr
|
||||
{
|
||||
socklen_t cmsg_len; /* Length of data in cmsg_data plus length
|
||||
size_t cmsg_len; /* Length of data in cmsg_data plus length
|
||||
of cmsghdr structure. */
|
||||
int cmsg_level; /* Originating protocol. */
|
||||
int cmsg_type; /* Protocol specific type. */
|
||||
@@ -195,6 +195,16 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
|
||||
return (struct cmsghdr *) __p;
|
||||
}
|
||||
|
||||
/* Socket level message types. This must match the definitions in
|
||||
<linux/socket.h>. */
|
||||
enum
|
||||
{
|
||||
SCM_RIGHTS = 0x01, /* Data array contains access rights. */
|
||||
#define SCM_RIGHTS SCM_RIGHTS
|
||||
__SCM_CREDENTIALS = 0x02, /* Data array is `struct ucred'. */
|
||||
__SCM_CONNECT = 0x03 /* Data array is `struct scm_connect'. */
|
||||
};
|
||||
|
||||
|
||||
/* Get socket manipulation related informations from kernel headers. */
|
||||
#include <asm/socket.h>
|
||||
|
||||
@@ -69,7 +69,7 @@ struct arphdr
|
||||
|
||||
/* ARP protocol HARDWARE identifiers. */
|
||||
#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */
|
||||
#define ARPHRD_ETHER 1 /* Ethernet 10Mbps. */
|
||||
#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */
|
||||
#define ARPHRD_EETHER 2 /* Experimental Ethernet. */
|
||||
#define ARPHRD_AX25 3 /* AX.25 Level 2. */
|
||||
#define ARPHRD_PRONET 4 /* PROnet token ring. */
|
||||
@@ -92,6 +92,7 @@ struct arphdr
|
||||
#define ARPHRD_PPP 512
|
||||
#define ARPHRD_HDLC 513 /* (Cisco) HDLC. */
|
||||
#define ARPHRD_LAPB 516 /* LAPB. */
|
||||
#define ARPHRD_ASH 517 /* ASH. */
|
||||
|
||||
#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */
|
||||
#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */
|
||||
|
||||
26
sysdeps/unix/sysv/linux/net/if_packet.h
Normal file
26
sysdeps/unix/sysv/linux/net/if_packet.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Definitions for use with Linux SOCK_PACKET sockets.
|
||||
Copyright (C) 1997 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 __IF_PACKET_H
|
||||
#define __IF_PACKET_H
|
||||
|
||||
/* For now we can just use the kernel definitions. */
|
||||
#include <linux/if_packet.h>
|
||||
|
||||
#endif
|
||||
28
sysdeps/unix/sysv/linux/pread.c
Normal file
28
sysdeps/unix/sysv/linux/pread.c
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
ssize_t
|
||||
__pread (int fd, void *buf, size_t nbytes, off_t offset)
|
||||
{
|
||||
return __pread64 (fd, buf, nbytes, (off64_t) offset);
|
||||
}
|
||||
|
||||
weak_alias (__pread, pread)
|
||||
53
sysdeps/unix/sysv/linux/pread64.c
Normal file
53
sysdeps/unix/sysv/linux/pread64.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern ssize_t __syscall_pread64 (int fd, void *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pread64 (int fd, void *buf, size_t count,
|
||||
off64_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pread64 (fd, buf, count, offset)
|
||||
int fd;
|
||||
void *buf;
|
||||
size_t count;
|
||||
off64_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
result = __syscall_pread64 (fd, buf, count, (off_t) (offset >> 32),
|
||||
(off_t) (offset & 0xffffffff));
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pread64 (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pread64, pread64)
|
||||
|
||||
#define __pread64(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pread64 (fd, buf, count, offset)
|
||||
#include <sysdeps/posix/pread64.c>
|
||||
28
sysdeps/unix/sysv/linux/pwrite.c
Normal file
28
sysdeps/unix/sysv/linux/pwrite.c
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
ssize_t
|
||||
__pwrite (int fd, const void *buf, size_t nbytes, off_t offset)
|
||||
{
|
||||
return __pwrite64 (fd, buf, nbytes, (off64_t) offset);
|
||||
}
|
||||
|
||||
weak_alias (__pwrite, pwrite)
|
||||
53
sysdeps/unix/sysv/linux/pwrite64.c
Normal file
53
sysdeps/unix/sysv/linux/pwrite64.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern ssize_t __syscall_pwrite64 (int fd, const void *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pwrite64 (int fd, const void *buf, size_t count,
|
||||
off64_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pwrite64 (fd, buf, count, offset)
|
||||
int fd;
|
||||
const void *buf;
|
||||
size_t count;
|
||||
off64_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
result = __syscall_pwrite64 (fd, buf, count, (off_t) (offset >> 32),
|
||||
(off_t) (offset & 0xffffffff));
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pwrite64 (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pwrite64, pwrite64)
|
||||
|
||||
#define __pwrite64(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pwrite64 (fd, buf, count, offset)
|
||||
#include <sysdeps/posix/pwrite64.c>
|
||||
30
sysdeps/unix/sysv/linux/s_pread64.c
Normal file
30
sysdeps/unix/sysv/linux/s_pread64.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* This file is used if no system call is available. */
|
||||
ssize_t
|
||||
__syscall_pread64 (int fd, char *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
30
sysdeps/unix/sysv/linux/s_pwrite64.c
Normal file
30
sysdeps/unix/sysv/linux/s_pwrite64.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
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. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* This file is used if no system call is available. */
|
||||
ssize_t
|
||||
__syscall_pwrite64 (int fd, const char *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
@@ -76,12 +76,12 @@
|
||||
cmp %g2, 0
|
||||
beq 3f
|
||||
sethi %hi(__libc_multiple_libcs), %g3
|
||||
ld [%g4+%g2], %g2
|
||||
ld [%g2], %g2
|
||||
subcc %g0, %g2, %g0
|
||||
subx %g0, -1, %g2
|
||||
3: or %g3, %lo(__libc_multiple_libcs), %g3
|
||||
cmp %g2, 0
|
||||
st %g2, [%g3+%g4]
|
||||
st %g2, [%g3]
|
||||
/* If so, argc et al are in %o0-%o2 already. Otherwise, load them. */
|
||||
bnz " #INIT "
|
||||
nop
|
||||
|
||||
@@ -23,6 +23,13 @@
|
||||
#define P(a, b) P2(a, b)
|
||||
#define P2(a, b) a##b
|
||||
|
||||
#ifndef NARGS
|
||||
#ifdef socket
|
||||
#error NARGS not defined
|
||||
#endif
|
||||
#define NARGS 3
|
||||
#endif
|
||||
|
||||
.text
|
||||
/* The socket-oriented system calls are handled unusually in Linux.
|
||||
They are all gated through the single `socketcall' system call number.
|
||||
@@ -34,25 +41,36 @@
|
||||
|
||||
.globl P(__,socket)
|
||||
ENTRY (P(__,socket))
|
||||
mov SYS_ify(socketcall), %g1 /* System call number */
|
||||
|
||||
/* Use ## so `socket' is a separate token that might be #define'd. */
|
||||
mov P(SOCKOP_,socket), %o0 /* Subcode is first arg to syscall. */
|
||||
mov %i0,%o1 /* args pointer is second arg to syscall */
|
||||
/* Drop up to 6 arguments (recvfrom) into the memory allocated by
|
||||
the caller for varargs, since that's really what we have. */
|
||||
st %o0, [%sp + 68 + 0]
|
||||
st %o1, [%sp + 68 + 4]
|
||||
#if NARGS > 2
|
||||
st %o2, [%sp + 68 + 8]
|
||||
#if NARGS > 3
|
||||
st %o3, [%sp + 68 + 12]
|
||||
#if NARGS > 4
|
||||
st %o4, [%sp + 68 + 16]
|
||||
#if NARGS > 5
|
||||
st %o5, [%sp + 68 + 20]
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
mov P(SOCKOP_,socket), %o0 /* arg 1: socket subfunction */
|
||||
add %sp, 68, %o1 /* arg 2: parameter block */
|
||||
LOADSYSCALL(socketcall)
|
||||
t 0x10
|
||||
bcc,a 1
|
||||
nop
|
||||
save %sp,96,%sp
|
||||
call __errno_location
|
||||
nop
|
||||
st %i0,[%o0]
|
||||
restore
|
||||
retl
|
||||
mov -1,%o0
|
||||
1:
|
||||
ret
|
||||
|
||||
PSEUDO_END (P(__,socket))
|
||||
bcs,a 1f
|
||||
nop
|
||||
retl
|
||||
nop
|
||||
|
||||
1: SYSCALL_ERROR_HANDLER
|
||||
|
||||
END (P(__,socket))
|
||||
|
||||
weak_alias (P(__,socket), socket)
|
||||
|
||||
1
sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c
Normal file
1
sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c
Normal file
@@ -0,0 +1 @@
|
||||
/* Empty since the pread syscall is equivalent. */
|
||||
1
sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c
Normal file
1
sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c
Normal file
@@ -0,0 +1 @@
|
||||
/* Empty since the pread syscall is equivalent. */
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
# Whee! 64-bit systems naturally implement llseek.
|
||||
llseek EXTRA lseek 3 llseek
|
||||
pread EXTRA pread 4 __pread pread __pread64 pread64
|
||||
pwrite EXTRA pwrite 4 __pwrite pwrite __pwrite64 pwrite64
|
||||
|
||||
# Override select.S in parent directory:
|
||||
select - select 5 __select select
|
||||
|
||||
32
sysdeps/unix/sysv/linux/sys/prctl.h
Normal file
32
sysdeps/unix/sysv/linux/sys/prctl.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* Copyright (C) 1997 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_PRCTL_H
|
||||
#define _SYS_PRCTL_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <linux/prctl.h> /* The magic values come from here */
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Control process execution. */
|
||||
extern int prctl __P ((int __option, ...));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* sys/prctl.h */
|
||||
@@ -38,7 +38,9 @@ quotactl EXTRA quotactl 4 quotactl
|
||||
s_getdents EXTRA getdents 3 __getdents
|
||||
s_getpriority getpriority getpriority 2 __syscall_getpriority
|
||||
s_poll poll poll 3 __syscall_poll
|
||||
s_pread64 EXTRA pread 5 __syscall_pread64
|
||||
s_ptrace ptrace ptrace 4 __syscall_ptrace
|
||||
s_pwrite64 EXTRA pwrite 5 __syscall_pwrite64
|
||||
s_reboot EXTRA reboot 3 __syscall_reboot
|
||||
s_sigaction sigaction sigaction 3 __syscall_sigaction
|
||||
s_sigsuspend sigsuspend sigsuspend 3 __syscall_sigsuspend
|
||||
|
||||
Reference in New Issue
Block a user