diff options
author | Roland McGrath <roland@gnu.org> | 1996-07-09 23:17:59 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-07-09 23:17:59 +0000 |
commit | 07a4742f9ec2b0587c0d488bb65da2a6faa50fed (patch) | |
tree | 2b10e82cad4053bcbe27447bc3d444f6d2aef5e7 /sysdeps | |
parent | c150923988933b5db75a974d4cc08cd7f7aaf3dc (diff) | |
download | glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.tar.gz glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.tar.xz glibc-07a4742f9ec2b0587c0d488bb65da2a6faa50fed.zip |
* posix/glob.h (__glob_opendir_hook, __glob_readdir_hook, cvs/libc-960710
__glob_closedir_hook): Remove decls. * sysdeps/generic/machine-gmon.h: Declare mcount_internal. * sysdeps/unix/inet/syscalls.list: Define __ names with weak aliases for send and connect syscalls. * socket/sys/socket.h: New file, taken from non-sysdep parts of linux/sys/socket.h; break sysdeps parts out into socketbits.h. Declare __ names for send and connect. * sysdeps/generic/socketbits.h: New file. * sysdeps/unix/sysv/linux/socketbits.h: New file. * sysdeps/unix/sysv/linux/sys/socket.h: File removed. * sysdeps/generic/sys/socket.h: File removed. * sysdeps/mach/hurd/connect.c: Define __ name and weak alias. * sysdeps/mach/hurd/send.c: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/machine-gmon.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/socketbits.h (renamed from sysdeps/generic/sys/socket.h) | 147 | ||||
-rw-r--r-- | sysdeps/mach/hurd/connect.c | 5 | ||||
-rw-r--r-- | sysdeps/mach/hurd/send.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/inet/syscalls.list | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/socketbits.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/socket.h | 169 |
8 files changed, 22 insertions, 322 deletions
diff --git a/sysdeps/generic/machine-gmon.h b/sysdeps/generic/machine-gmon.h index 80ee97fcc3..115962a601 100644 --- a/sysdeps/generic/machine-gmon.h +++ b/sysdeps/generic/machine-gmon.h @@ -38,6 +38,8 @@ void _mcount (void); weak_alias (_mcount, mcount) #endif +static void mcount_internal (u_long frompc, u_long selfpc); + #define _MCOUNT_DECL(frompc, selfpc) \ static inline void mcount_internal (frompc, selfpc) diff --git a/sysdeps/generic/sys/socket.h b/sysdeps/generic/socketbits.h index 6ee3ebe52e..770f011ffb 100644 --- a/sysdeps/generic/sys/socket.h +++ b/sysdeps/generic/socketbits.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc. +/* System-specific socket constants and types. Generic/4.3 BSD version. +Copyright (C) 1991, 92, 94, 95, 96 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 @@ -16,9 +17,9 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#ifndef _SYS_SOCKET_H +#ifndef _SOCKETBITS_H -#define _SYS_SOCKET_H 1 +#define _SOCKETBITS_H 1 #include <features.h> __BEGIN_DECLS @@ -115,75 +116,6 @@ struct sockaddr char sa_data[14]; /* Address data. */ }; -/* This is the type we use for generic socket address arguments. - - With GCC 2.7 and later, the funky union causes redeclarations or uses with - any of the listed types to be allowed without complaint. */ -#if (!defined (__GNUC__) || __GNUC__ < 2 || \ - (__GNUC__ == 2 && __GNUC_MINOR__ < 7)) -#define __SOCKADDR_ARG struct sockaddr * -#define __CONST_SOCKADDR_ARG __const struct sockaddr * -#else -/* Add more `struct sockaddr_AF' types here as necessary. - These are all the ones I found on NetBSD and Linux. */ -#define __SOCKADDR_ALLTYPES \ - __SOCKADDR_ONETYPE (sockaddr) \ - __SOCKADDR_ONETYPE (sockaddr_at) \ - __SOCKADDR_ONETYPE (sockaddr_ax25) \ - __SOCKADDR_ONETYPE (sockaddr_dl) \ - __SOCKADDR_ONETYPE (sockaddr_eon) \ - __SOCKADDR_ONETYPE (sockaddr_in) \ - __SOCKADDR_ONETYPE (sockaddr_in6) \ - __SOCKADDR_ONETYPE (sockaddr_inarp) \ - __SOCKADDR_ONETYPE (sockaddr_ipx) \ - __SOCKADDR_ONETYPE (sockaddr_iso) \ - __SOCKADDR_ONETYPE (sockaddr_ns) \ - __SOCKADDR_ONETYPE (sockaddr_un) \ - __SOCKADDR_ONETYPE (sockaddr_x25) - -#define __SOCKADDR_ONETYPE(type) struct type *__##type##__; -typedef union { __SOCKADDR_ALLTYPES - } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); -#undef __SOCKADDR_ONETYPE -#define __SOCKADDR_ONETYPE(type) __const struct type *__##type##__; -typedef union { __SOCKADDR_ALLTYPES - } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__)); -#undef __SOCKADDR_ONETYPE -#endif - - -/* Create a new socket of type TYPE in domain DOMAIN, using - protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically. - Returns a file descriptor for the new socket, or -1 for errors. */ -extern int socket __P ((int __domain, enum __socket_type __type, - int __protocol)); - -/* Create two new sockets, of type TYPE in domain DOMAIN and using - protocol PROTOCOL, which are connected to each other, and put file - descriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero, - one will be chosen automatically. Returns 0 on success, -1 for errors. */ -extern int socketpair __P ((int __domain, enum __socket_type __type, - int __protocol, int __fds[2])); - -/* Give the socket FD the local address ADDR (which is LEN bytes long). */ -extern int bind __P ((int __fd, __CONST_SOCKADDR_ARG __addr, size_t __len)); - -/* Put the local address of FD into *ADDR and its length in *LEN. */ -extern int getsockname __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__len)); - -/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). - For connectionless socket types, just set the default address to send to - and the only address from which to accept transmissions. - Return 0 on success, -1 for errors. */ -extern int connect __P ((int __fd, - __CONST_SOCKADDR_ARG __addr, size_t __len)); - -/* Put the address of the peer connected to socket FD into *ADDR - (which is *LEN bytes long), and its actual length into *LEN. */ -extern int getpeername __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__len)); - /* Bits in the FLAGS argument to `send', `recv', et al. */ enum @@ -198,26 +130,6 @@ enum MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */ }; -/* Send N bytes of BUF to socket FD. Returns the number sent or -1. */ -extern int send __P ((int __fd, __ptr_t __buf, size_t __n, int __flags)); - -/* Read N bytes into BUF from socket FD. - Returns the number read or -1 for errors. */ -extern int recv __P ((int __fd, __ptr_t __buf, size_t __n, int __flags)); - -/* Send N bytes of BUF on socket FD to peer at address ADDR (which is - ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */ -extern int sendto __P ((int __fd, __ptr_t __buf, size_t __n, int __flags, - __CONST_SOCKADDR_ARG __addr, size_t __addr_len)); - -/* Read N bytes into BUF through socket FD. - If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of - the sender, and store the actual size of the address in *ADDR_LEN. - Returns the number of bytes read or -1 for errors. */ -extern int recvfrom __P ((int __fd, __ptr_t __buf, size_t __n, int __flags, - __SOCKADDR_ARG __addr, size_t *__addr_len)); - - /* Structure describing messages sent by `sendmsg' and received by `recvmsg'. */ @@ -233,15 +145,6 @@ struct msghdr size_t msg_accrightslen; /* Length of access rights information. */ }; -/* Send a message described MESSAGE on socket FD. - Returns the number of bytes sent, or -1 for errors. */ -extern int sendmsg __P ((int __fd, __const struct msghdr *__message, - int __flags)); - -/* Receive a message as described by MESSAGE from socket FD. - Returns the number of bytes read or -1 for errors. */ -extern int recvmsg __P ((int __fd, struct msghdr *__message, int __flags)); - /* Protocol number used to manipulate socket-level options with `getsockopt' and `setsockopt'. */ @@ -285,46 +188,6 @@ struct linger int l_linger; /* Time to linger. */ }; - -/* Put the current value for socket FD's option OPTNAME at protocol level LEVEL - into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's - actual length. Returns 0 on success, -1 for errors. */ -extern int getsockopt __P ((int __fd, int __level, int __optname, - __ptr_t __optval, size_t *__optlen)); - -/* Set socket FD's option OPTNAME at protocol level LEVEL - to *OPTVAL (which is OPTLEN bytes long). - Returns 0 on success, -1 for errors. */ -extern int setsockopt __P ((int __fd, int __level, int __optname, - __ptr_t __optval, size_t __optlen)); - - -/* Prepare to accept connections on socket FD. - N connection requests will be queued before further requests are refused. - Returns 0 on success, -1 for errors. */ -extern int listen __P ((int __fd, unsigned int __n)); - -/* Await a connection on socket FD. - When a connection arrives, open a new socket to communicate with it, - set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting - peer and *ADDR_LEN to the address's actual length, and return the - new socket's descriptor, or -1 for errors. */ -extern int accept __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__addr_len)); - -/* Shut down all or part of the connection open on socket FD. - HOW determines what to shut down: - 0 = No more receptions; - 1 = No more transmissions; - 2 = No more receptions or transmissions. - Returns 0 on success, -1 for errors. */ -extern int shutdown __P ((int __fd, int __how)); - - -/* Determine whether FILDES if the property identified by the value if - FDTYPE. */ -extern int isfdtype __P ((int __fildes, int __fdtype)); - __END_DECLS -#endif /* sys/socket.h */ +#endif /* socketbits.h */ diff --git a/sysdeps/mach/hurd/connect.c b/sysdeps/mach/hurd/connect.c index 0ecf7369ed..f55a2ae591 100644 --- a/sysdeps/mach/hurd/connect.c +++ b/sysdeps/mach/hurd/connect.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1994, 1995, 1996 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 @@ -30,7 +30,7 @@ Cambridge, MA 02139, USA. */ and the only address from which to accept transmissions. Return 0 on success, -1 for errors. */ int -DEFUN(connect, (fd, addr, len), +DEFUN(__connect, (fd, addr, len), int fd AND const struct sockaddr_un *addr AND size_t len) { error_t err; @@ -72,3 +72,4 @@ DEFUN(connect, (fd, addr, len), return err ? __hurd_dfail (fd, err) : 0; } +weak_alias (__connect, connect) diff --git a/sysdeps/mach/hurd/send.c b/sysdeps/mach/hurd/send.c index 153ee93701..17fa66344f 100644 --- a/sysdeps/mach/hurd/send.c +++ b/sysdeps/mach/hurd/send.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1996 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 @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ /* Send N bytes of BUF to socket FD. Returns the number sent or -1. */ int -DEFUN(send, (fd, buf, n, flags), +DEFUN(__send, (fd, buf, n, flags), int fd AND PTR buf AND size_t n AND int flags) { error_t err; @@ -38,3 +38,4 @@ DEFUN(send, (fd, buf, n, flags), return err ? __hurd_dfail (fd, err) : wrote; } +weak_alias (__send, send) diff --git a/sysdeps/unix/inet/syscalls.list b/sysdeps/unix/inet/syscalls.list index 3b6ac59990..661a8433f5 100644 --- a/sysdeps/unix/inet/syscalls.list +++ b/sysdeps/unix/inet/syscalls.list @@ -2,7 +2,7 @@ accept - accept 3 accept bind - bind 3 bind -connect - connect 3 connect +__connect - connect 3 connect connect gethostid - gethostid 0 gethostid gethostname - gethostname 2 __gethostname gethostname getpeername - getpeername 3 getpeername @@ -12,7 +12,7 @@ listen - listen 2 listen recv - recv 4 recv recvfrom - recvfrom 6 recvfrom recvmsg - recvmsg 3 recvmsg -send - send 4 send +__send - send 4 send send sendmsg - sendmsg 3 sendmsg sendto - sendto 6 sendto sethostid - sethostid 1 sethostid diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index 7dbb0f9f33..fd72c092ad 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -8,7 +8,7 @@ test $stdio = default && stdio=libio inhibit_glue=yes echo $ac_n "checking installed Linux kernel header files""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'libc_cv_linux'+set}'`\" = set"; then +if eval "test \"`echo '$''{'libc_cv_linux201'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF @@ -24,17 +24,17 @@ eat flaming death EOF if { (eval echo configure:26: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - libc_cv_linux='2.0.1 or later' + libc_cv_linux201='2.0.1 or later' else rm -rf conftest* - libc_cv_linux='TOO OLD!' + libc_cv_linux201='TOO OLD!' fi rm -f conftest* fi -echo "$ac_t""$libc_cv_linux" 1>&6 -if test "$libc_cv_linux" != '2.0.1 or later'; then +echo "$ac_t""$libc_cv_linux201" 1>&6 +if test "$libc_cv_linux201" != '2.0.1 or later'; then { echo "configure: error: GNU libc requires kernel header files from Linux 2.0.1 or later to be installed before configuring. The kernel header files are found usually in /usr/include/asm and /usr/include/linux; make sure diff --git a/sysdeps/unix/sysv/linux/socketbits.h b/sysdeps/unix/sysv/linux/socketbits.h new file mode 100644 index 0000000000..1c7cee0dad --- /dev/null +++ b/sysdeps/unix/sysv/linux/socketbits.h @@ -0,0 +1,2 @@ +/* Get Linux specific constants and data types kernel header. */ +#include <linux/socket.h> diff --git a/sysdeps/unix/sysv/linux/sys/socket.h b/sysdeps/unix/sysv/linux/sys/socket.h deleted file mode 100644 index a680d5fb29..0000000000 --- a/sysdeps/unix/sysv/linux/sys/socket.h +++ /dev/null @@ -1,169 +0,0 @@ -/* Copyright (C) 1991, 92, 94, 95, 96 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., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -#ifndef _SYS_SOCKET_H - -#define _SYS_SOCKET_H 1 -#include <features.h> - -__BEGIN_DECLS - -#define __need_size_t -#include <stddef.h> - - -/* Get Linux specific constants and data types. */ -#include <linux/socket.h> - -/* This is the type we use for generic socket address arguments. - - With GCC 2.7 and later, the funky union causes redeclarations or uses with - any of the listed types to be allowed without complaint. */ -#if (!defined (__GNUC__) || __GNUC__ < 2 || \ - (__GNUC__ == 2 && __GNUC_MINOR__ < 7)) -#define __SOCKADDR_ARG struct sockaddr * -#define __CONST_SOCKADDR_ARG __const struct sockaddr * -#else -/* Add more `struct sockaddr_AF' types here as necessary. - These are all the ones I found on NetBSD and Linux. */ -#define __SOCKADDR_ALLTYPES \ - __SOCKADDR_ONETYPE (sockaddr) \ - __SOCKADDR_ONETYPE (sockaddr_at) \ - __SOCKADDR_ONETYPE (sockaddr_ax25) \ - __SOCKADDR_ONETYPE (sockaddr_dl) \ - __SOCKADDR_ONETYPE (sockaddr_eon) \ - __SOCKADDR_ONETYPE (sockaddr_in) \ - __SOCKADDR_ONETYPE (sockaddr_in6) \ - __SOCKADDR_ONETYPE (sockaddr_inarp) \ - __SOCKADDR_ONETYPE (sockaddr_ipx) \ - __SOCKADDR_ONETYPE (sockaddr_iso) \ - __SOCKADDR_ONETYPE (sockaddr_ns) \ - __SOCKADDR_ONETYPE (sockaddr_un) \ - __SOCKADDR_ONETYPE (sockaddr_x25) - -#define __SOCKADDR_ONETYPE(type) struct type *__##type##__; -typedef union { __SOCKADDR_ALLTYPES - } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); -#undef __SOCKADDR_ONETYPE -#define __SOCKADDR_ONETYPE(type) __const struct type *__##type##__; -typedef union { __SOCKADDR_ALLTYPES - } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__)); -#undef __SOCKADDR_ONETYPE -#endif - - -/* Create a new socket of type TYPE in domain DOMAIN, using - protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically. - Returns a file descriptor for the new socket, or -1 for errors. */ -extern int socket __P ((int __domain, int __type, int __protocol)); - -/* Create two new sockets, of type TYPE in domain DOMAIN and using - protocol PROTOCOL, which are connected to each other, and put file - descriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero, - one will be chosen automatically. Returns 0 on success, -1 for errors. */ -extern int socketpair __P ((int __domain, int __type, int __protocol, - int __fds[2])); - -/* Give the socket FD the local address ADDR (which is LEN bytes long). */ -extern int bind __P ((int __fd, __CONST_SOCKADDR_ARG __addr, size_t __len)); - -/* Put the local address of FD into *ADDR and its length in *LEN. */ -extern int getsockname __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__len)); - -/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). - For connectionless socket types, just set the default address to send to - and the only address from which to accept transmissions. - Return 0 on success, -1 for errors. */ -extern int connect __P ((int __fd, - __CONST_SOCKADDR_ARG __addr, size_t __len)); - -/* Put the address of the peer connected to socket FD into *ADDR - (which is *LEN bytes long), and its actual length into *LEN. */ -extern int getpeername __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__len)); - - -/* Send N bytes of BUF to socket FD. Returns the number sent or -1. */ -extern int send __P ((int __fd, __ptr_t __buf, size_t __n, int __flags)); - -/* Read N bytes into BUF from socket FD. - Returns the number read or -1 for errors. */ -extern int recv __P ((int __fd, __ptr_t __buf, size_t __n, int __flags)); - -/* Send N bytes of BUF on socket FD to peer at address ADDR (which is - ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */ -extern int sendto __P ((int __fd, __ptr_t __buf, size_t __n, int __flags, - __CONST_SOCKADDR_ARG __addr, size_t __addr_len)); - -/* Read N bytes into BUF through socket FD. - If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of - the sender, and store the actual size of the address in *ADDR_LEN. - Returns the number of bytes read or -1 for errors. */ -extern int recvfrom __P ((int __fd, __ptr_t __buf, size_t __n, int __flags, - __SOCKADDR_ARG __addr, size_t *__addr_len)); - - -/* Send a message described MESSAGE on socket FD. - Returns the number of bytes sent, or -1 for errors. */ -extern int sendmsg __P ((int __fd, __const struct msghdr *__message, - int __flags)); - -/* Receive a message as described by MESSAGE from socket FD. - Returns the number of bytes read or -1 for errors. */ -extern int recvmsg __P ((int __fd, struct msghdr *__message, int __flags)); - - -/* Put the current value for socket FD's option OPTNAME at protocol level LEVEL - into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's - actual length. Returns 0 on success, -1 for errors. */ -extern int getsockopt __P ((int __fd, int __level, int __optname, - __ptr_t __optval, size_t *__optlen)); - -/* Set socket FD's option OPTNAME at protocol level LEVEL - to *OPTVAL (which is OPTLEN bytes long). - Returns 0 on success, -1 for errors. */ -extern int setsockopt __P ((int __fd, int __level, int __optname, - __ptr_t __optval, size_t __optlen)); - - -/* Prepare to accept connections on socket FD. - N connection requests will be queued before further requests are refused. - Returns 0 on success, -1 for errors. */ -extern int listen __P ((int __fd, unsigned int __n)); - -/* Await a connection on socket FD. - When a connection arrives, open a new socket to communicate with it, - set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting - peer and *ADDR_LEN to the address's actual length, and return the - new socket's descriptor, or -1 for errors. */ -extern int accept __P ((int __fd, __SOCKADDR_ARG __addr, - size_t *__addr_len)); - -/* Shut down all or part of the connection open on socket FD. - HOW determines what to shut down: - 0 = No more receptions; - 1 = No more transmissions; - 2 = No more receptions or transmissions. - Returns 0 on success, -1 for errors. */ -extern int shutdown __P ((int __fd, int __how)); - - -__END_DECLS - -#endif /* sys/socket.h */ |