mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-12 12:07:12 +08:00
740152054e
1998-01-22 00:55 Ulrich Drepper <drepper@happy.cygnus.com> * libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo, __pread64, __pwrite64, and __getpid. * libc/rt/aio_misc.c: Use pread and pwrite instead of __ protected versions. 1998-01-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the cancelable socket functions as __libc_xxx with __xxx as weak alias. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be redefined. * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. * sysdeps/unix/sysv/linux/arm/socket.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise. * sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name and __xxx a weak alias. * sysdeps/unix/sysv/linux/connect.S: Likewise. * sysdeps/unix/sysv/linux/recv.S: Likewise. * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. * sysdeps/unix/sysv/linux/send.S: Likewise. * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. * sysdeps/unix/sysv/linux/sendto.S: Likewise. 1998-01-21 Andreas Jaeger <aj@arthur.rhein-neckar.de> * locale/langinfo.h: Add defines. * dirent/dirent.h: Add defines for DT_*, check also for _DIRENT_HAVE_D_TYPE. Suggested by Roland McGrath. 1998-01-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Update from Linux 2.1.73+79. * README.template: Update information about possible configurations. * manual/mbyte.texi (Wide String Conversion): Fix declaration of wcstombs. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>. [PR libc/417]. * manual/time.texi (Priority): Correct description of PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>. [PR libc/416]. 11998-01-21 21:34 Ulrich Drepper <drepper@cygnus.com> * sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and FP_ILOGNAN. Patch by a sun <asun@zoology.washington.edu>. 1998-01-21 17:53 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/_strerror.c: Handle BUFLEN == 0. Reported by Andreas Jaeger. 1998-01-20 18:13 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-collate.c: Little optimizations. * stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable. * string/Makefile (tests): Add tst-inlcall. * string/tst-inlcall.c: New file. * string/strsignal.c: Add support for real-time signals. * sysdeps/generic/_strerror.c: Fix Handling of unknown error in presense of small buffer. * sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros. * sysdeps/i386/i486/bits/string.h: Correct strrchr implementation for i686. * sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to _NSIG + 1. 1998-01-02 15:10 Matthias Urlichs <urlichs@noris.de> * Rules: Add explicit rule for dummy.o; at least one library needs it and it isn't autogenerated by the default rules. 1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * math/libm-test.c: Tweak epsilons. 1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the child. (feenv_mask_test): Likewise. 1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makeconfig: Don't export CPPFLAGS. 1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sunrpc/rpc_main.c (parseargs): Use perror to print error message. 1998-01-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include terminating null in key size. 1998-01-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_files/files-service.c: Fix allocation size to include length of PROTO. * nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if applicable. Fix return value and error checking. (CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over unparsable lines. (DB_LOOKUP): Allocate space for terminating null byte. * nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate uids specially. * db2/makedb.c (process_input): Continue processing if a duplicate key is encountered. 1998-01-19 15:20 Ulrich Drepper <drepper@cygnus.com> * time/tzfile.h: Updated from tzcode1998b. * time/zdump.c: Likewise. * time/zic.c: Likewise. * time/africa: Update from tzdata1998b. * time/antarctica: Likewise. * time/asia: Likewise. * time/australasia: Likewise. * time/etcetera: Likewise. * time/europe: Likewise. * time/leapseconds: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise. 1998-01-12 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nss/nss_files/files-alias.c (get_next_alias): Do mail alias lookups ignoring case. * nss/nss_files/files-network.c: Do network lookups ignoring case. * nss/nss_files/files-hosts.c: Do hostname lookups ignoring case. * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for case insensitive comparing. Patches by Cristian Gafton <gafton@redhat.com>. 1998-01-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines. Suggested by Roland McGrath. [PR libc/395] 1998-01-08 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/arith.texi (Parsing of Integers): Correct description of strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>. [PR libc/396] 1997-12-30 14:14 Matthias Urlichs <urlichs@noris.de> * misc/lsearch.c (lsearch): Return a pointer to the new element if one was "allocated". 1997-12-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * string/strsignal.c: NSIG is not a valid index into _sys_siglist. Don't zap the last character of the "Unknown signal" message. 1998-01-19 15:08 Ulrich Drepper <drepper@cygnus.com> * locale/programs/charmap.c (parse_charmap): Correct parsing of ellipsis expressions. * locale/programs/charset.c (insert_char): Correctly insert value of eliipsis expression.
190 lines
6.1 KiB
C
190 lines
6.1 KiB
C
/* Copyright (C) 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 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 _NET_IF_H
|
|
|
|
#define _NET_IF_H 1
|
|
#include <features.h>
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
|
|
/* Standard interface flags. */
|
|
enum
|
|
{
|
|
IFF_UP = 0x1, /* Interface is up. */
|
|
#define IFF_UP IFF_UP
|
|
IFF_BROADCAST = 0x2, /* Broadcast address valid. */
|
|
#define IFF_BROADCAST IFF_BROADCAST
|
|
IFF_DEBUG = 0x4, /* Turn on debugging. */
|
|
#define IFF_DEBUG IFF_DEBUG
|
|
IFF_LOOPBACK = 0x8, /* Is a loopback net. */
|
|
#define IFF_LOOPBACK IFF_LOOPBACK
|
|
IFF_POINTOPOINT = 0x10, /* Interface is point-to-point link. */
|
|
#define IFF_POINTOPOINT IFF_POINTOPOINT
|
|
IFF_NOTRAILERS = 0x20, /* Avoid use of trailers. */
|
|
#define IFF_NOTRAILERS IFF_NOTRAILERS
|
|
IFF_RUNNING = 0x40, /* Resources allocated. */
|
|
#define IFF_RUNNING IFF_RUNNING
|
|
IFF_NOARP = 0x80, /* No address resolution protocol. */
|
|
#define IFF_NOARP IFF_NOARP
|
|
IFF_PROMISC = 0x100, /* Receive all packets. */
|
|
#define IFF_PROMISC IFF_PROMISC
|
|
|
|
/* Not supported */
|
|
IFF_ALLMULTI = 0x200, /* Receive all multicast packets. */
|
|
#define IFF_ALLMULTI IFF_ALLMULTI
|
|
|
|
IFF_MASTER = 0x400, /* Master of a load balancer. */
|
|
#define IFF_MASTER IFF_MASTER
|
|
IFF_SLAVE = 0x800, /* Slave of a load balancer. */
|
|
#define IFF_SLAVE IFF_SLAVE
|
|
|
|
IFF_MULTICAST = 0x1000, /* Supports multicast. */
|
|
#define IFF_MULTICAST IFF_MULTICAST
|
|
|
|
IFF_PORTSEL = 0x2000, /* Can set media type. */
|
|
#define IFF_PORTSEL IFF_PORTSEL
|
|
IFF_AUTOMEDIA = 0x4000 /* Auto media select active. */
|
|
#define IFF_AUTOMEDIA IFF_AUTOMEDIA
|
|
};
|
|
|
|
/* The ifaddr structure contains information about one address of an
|
|
interface. They are maintained by the different address families,
|
|
are allocated and attached when an address is set, and are linked
|
|
together so all addresses for an interface can be located. */
|
|
|
|
struct ifaddr
|
|
{
|
|
struct sockaddr ifa_addr; /* Address of interface. */
|
|
union
|
|
{
|
|
struct sockaddr ifu_broadaddr;
|
|
struct sockaddr ifu_dstaddr;
|
|
} ifa_ifu;
|
|
struct iface *ifa_ifp; /* Back-pointer to interface. */
|
|
struct ifaddr *ifa_next; /* Next address for interface. */
|
|
};
|
|
|
|
#define ifa_broadaddr ifa_ifu.ifu_broadaddr /* broadcast address */
|
|
#define ifa_dstaddr ifa_ifu.ifu_dstaddr /* other end of link */
|
|
|
|
/* Device mapping structure. I'd just gone off and designed a
|
|
beautiful scheme using only loadable modules with arguments for
|
|
driver options and along come the PCMCIA people 8)
|
|
|
|
Ah well. The get() side of this is good for WDSETUP, and it'll be
|
|
handy for debugging things. The set side is fine for now and being
|
|
very small might be worth keeping for clean configuration. */
|
|
|
|
struct ifmap
|
|
{
|
|
unsigned long int mem_start;
|
|
unsigned long int mem_end;
|
|
unsigned short int base_addr;
|
|
unsigned char irq;
|
|
unsigned char dma;
|
|
unsigned char port;
|
|
/* 3 bytes spare */
|
|
};
|
|
|
|
/* Interface request structure used for socket ioctl's. All interface
|
|
ioctl's must have parameter definitions which begin with ifr_name.
|
|
The remainder may be interface specific. */
|
|
|
|
struct ifreq
|
|
{
|
|
#define IFHWADDRLEN 6
|
|
#define IFNAMSIZ 16
|
|
union
|
|
{
|
|
char ifrn_name[IFNAMSIZ]; /* Interface name, e.g. "en0". */
|
|
} ifr_ifrn;
|
|
|
|
union
|
|
{
|
|
struct sockaddr ifru_addr;
|
|
struct sockaddr ifru_dstaddr;
|
|
struct sockaddr ifru_broadaddr;
|
|
struct sockaddr ifru_netmask;
|
|
struct sockaddr ifru_hwaddr;
|
|
short int ifru_flags;
|
|
int ifru_ivalue;
|
|
int ifru_mtu;
|
|
struct ifmap ifru_map;
|
|
char ifru_slave[IFNAMSIZ]; /* Just fits the size */
|
|
__caddr_t ifru_data;
|
|
} ifr_ifru;
|
|
};
|
|
|
|
#define ifr_name ifr_ifrn.ifrn_name /* interface name */
|
|
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
|
|
#define ifr_addr ifr_ifru.ifru_addr /* address */
|
|
#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */
|
|
#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
|
|
#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */
|
|
#define ifr_flags ifr_ifru.ifru_flags /* flags */
|
|
#define ifr_metric ifr_ifru.ifru_ivalue /* metric */
|
|
#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
|
|
#define ifr_map ifr_ifru.ifru_map /* device map */
|
|
#define ifr_slave ifr_ifru.ifru_slave /* slave device */
|
|
#define ifr_data ifr_ifru.ifru_data /* for use by interface */
|
|
#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */
|
|
|
|
|
|
/* Structure used in SIOCGIFCONF request. Used to retrieve interface
|
|
configuration for machine (useful for programs which must know all
|
|
networks accessible). */
|
|
|
|
struct ifconf
|
|
{
|
|
int ifc_len; /* Size of buffer. */
|
|
union
|
|
{
|
|
__caddr_t ifcu_buf;
|
|
struct ifreq *ifcu_req;
|
|
} ifc_ifcu;
|
|
};
|
|
#define ifc_buf ifc_ifcu.ifcu_buf /* Buffer address. */
|
|
#define ifc_req ifc_ifcu.ifcu_req /* Array of structures. */
|
|
|
|
__BEGIN_DECLS
|
|
|
|
/* Convert an interface name to an index, and vice versa. */
|
|
|
|
extern unsigned int if_nametoindex __P ((__const char *__ifname));
|
|
extern char *if_indextoname __P ((unsigned int __ifindex, char *__ifname));
|
|
|
|
/* Return a list of all interfaces and their indices. */
|
|
|
|
struct if_nameindex
|
|
{
|
|
unsigned int if_index; /* 1, 2, ... */
|
|
char *if_name; /* null terminated name: "eth0", ... */
|
|
};
|
|
|
|
extern struct if_nameindex *if_nameindex __P ((void));
|
|
|
|
/* Free the data returned from if_nameindex. */
|
|
|
|
extern void if_freenameindex __P ((struct if_nameindex *__ptr));
|
|
|
|
__END_DECLS
|
|
|
|
#endif /* net/if.h */
|