about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/net/if.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-07-06 22:02:42 +0000
committerUlrich Drepper <drepper@redhat.com>1997-07-06 22:02:42 +0000
commit762a2918eee55943319f2c81f35257d59450ad5b (patch)
treecc635357e30891c59d637817601593e975ee05af /sysdeps/mach/hurd/net/if.h
parent5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa (diff)
downloadglibc-762a2918eee55943319f2c81f35257d59450ad5b.tar.gz
glibc-762a2918eee55943319f2c81f35257d59450ad5b.tar.xz
glibc-762a2918eee55943319f2c81f35257d59450ad5b.zip
1997-07-06 23:36  Ulrich Drepper  <drepper@cygnus.com>

	* isomac.c (get_null_defines): Put NULL at end of list.

	* hurd/Makefile: Remove special handling of sunrpc code.
	* sysdeps/mach/hurd/Makefile: Likewise.
	Compile CThreads code.
	* sunrpc/rpc_main.c: Don't use MAXPATHLEN.
	* sysdeps/mach/bits/libc-lock.h: Add definitions for key handling
	functions.
	* sysdeps/stub/bits/libc-lock.h: Likewise.
	* sysdeps/mach/hurd/net/ethernet.h: New file.
	* sysdeps/mach/hurd/net/if.h: New file.
	* sysdeps/mach/hurd/net/if_arp.h: New file.
	* sysdeps/mach/hurd/net/if_ether.h: New file.
	* sysdeps/mach/hurd/net/if_ppp.h: New file.
	* sysdeps/mach/hurd/net/route.h: New file.
	Patches by  Fila Kolodny <fila@ibi.com>.

	* math/fenv-test.c: Add more tests.
	Patch by Andreas Jaeger <aj@arthur.rhein-neckar.de>.

	* sysdeps/wordsize-32/inttypes.h: Correct values for INTFAST_MIN,
	INTFAST_MAX, and UINTFAST_MAX.
	* sysdeps/wordsize-64/inttypes.h: Likewise.
	Correct intmax_t definition.

1997-07-04 15:33  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* elf/rtld.c (dl_main): Add '\n' to _dl_sysdep_fatal ().

1997-07-01 09:18  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* libc.map: Add missing symbol.

1997-07-04 18:04  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* stdlib/tst-strtol.c: Don't assume cpp takes ~0UL as long
	in cc1.  Cpp in gcc doesn't do it.

1997-07-01 21:15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* libio/libioP.h: Remove second definition of _IO_file_attach.

	* sysdeps/i386/fpu/fraiseexcpt.c (feraiseexcept): Correct comments.

	* sysdeps/sparc64/elf/start.S (_start): Update and reformat
	copyright.
	* manual/summary.awk: Likewise.
	* misc/bits/stab.def: Likewise.
	* posix/glob/Makefile.ami: Likewise.
	* posix/glob/Makefile.in: Likewise.
	* posix/glob/SMakefile: Likewise.
	* sysdeps/gnu/errlist.awk: Likewise.
	* sysdeps/mach/hurd/errnos.awk: Likewise.
	* sysdeps/standalone/i386/force_cpu386/target.ld: Likewise.
	* sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld: Likewise.
	* sysdeps/unix/snarf-ioctls: Likewise.
	* sysdeps/vax/setjmp.c: Likewise.

1997-07-05 11:56  Ulrich Drepper  <drepper@cygnus.com>

	* login/login.c (tty_name): Use newly allocated buffer.
	Patch by Jaakko Hyvätti <jaakko.hyvatti@iki.fi>.

	* time/asctime.c: Never translate week and month name according
	to LC_TIME.  Patch by Paul Eggert <eggert@twinsun.com>.

1997-07-03 22:50  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* locale/setlocale.c (setname): Do nothing when reusing the same
	name.

1997-07-03 20:18  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libc.map: Add global variables of malloc.

1997-07-03 13:24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-version.c (find_needed): Look for needed objects also in
	the dependency list of the current object.  Added new parameter to
	find its link map, caller changed.

1997-07-03 12:33  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/fraiseexcpt.c: Correct the FE_INEXACT and
	FE_UNDERFLOW cases.

1997-07-01 13:36  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/link.h: Remove final comma from enumerator list, forbidden
	by ISO C.  Use __inline instead of inline.

1997-07-01 16:40  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/hurdsig.c: Include <hurd/id.h>.
	(reauth_proc): Call proc_setowner appropriately too.

1997-07-01 09:18  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* libc.map: Add missing symbol.

1997-06-30 12:12  Fila Kolodny  <fila@ibi.com>

	* sysdeps/mach/hurd/fchdir.c: Make fchdir a weak alias of __fchdir.
	* sysdeps/mach/hurd/getpeername.c (getpeername): Remove spurious
	declaration of addr.

1997-06-29 17:56  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/argp.texi (Argp Option Vectors): Fix use of @math to make
	it work in TeX.

1997-06-27 21:25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig (+includes): Add include directory to include path.
	* configure.in (sysnames): Don't add it here.
	* Makefile (subdir-dirs): Define and add it to vpath for headers.
	* Make-dist (all-headers): Look in include directory for
	indirection headers.  Filter out header names pointing outside the
	source directory.

	* Makefile (distribute): Remove ansidecl.h, add libc.map.
	* Make-dist (+tsrcs): Add version scripts for extra libraries.
	* Makerules (distinfo-vars): Add %-map for extra libraries.

	* sysdeps/unix/sysv/linux/alpha/Dist: Rename sys/kernel_termios.h
	to kernel_termios.h.
	* sysdeps/unix/sysv/linux/powerpc/Dist: Remove ioctl-types.h,
	termbits.h and sys/kernel_termios.h.
	* sysdeps/mips/mips64/Dist: New file.
	* sysdeps/unix/sysv/linux/Dist: Add stdio_lim.h.in.

1997-06-29 23:03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/test-fenv.c (feenv_nomask_test): New test for non masked
	exceptions.
	(feenv_mask_test): New test for masked exceptions
	(feenv_tests): New function calls feenv_nomask_test and
	feenv_mask_test.
	(main): Call new tests.
	(initial_tests): New test for initilisation.
Diffstat (limited to 'sysdeps/mach/hurd/net/if.h')
-rw-r--r--sysdeps/mach/hurd/net/if.h169
1 files changed, 169 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/net/if.h b/sysdeps/mach/hurd/net/if.h
new file mode 100644
index 0000000000..3c0f6665ad
--- /dev/null
+++ b/sysdeps/mach/hurd/net/if.h
@@ -0,0 +1,169 @@
+/* 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 _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.  */
+    IFF_BROADCAST = 0x2,	/* Broadcast address valid.  */
+    IFF_DEBUG = 0x4,		/* Turn on debugging.  */
+    IFF_LOOPBACK = 0x8,		/* Is a loopback net.  */
+    IFF_POINTOPOINT = 0x10,	/* Interface is point-to-point link.  */
+    IFF_NOTRAILERS = 0x20,	/* Avoid use of trailers.  */
+    IFF_RUNNING = 0x40,		/* Resources allocated.  */
+    IFF_NOARP = 0x80,		/* No address resolution protocol.  */
+    IFF_PROMISC = 0x100,	/* Receive all packets.  */
+    /* Not supported */
+    IFF_ALLMULTI = 0x200,	/* Receive all multicast packets.  */
+
+    IFF_MASTER = 0x400,		/* Master of a load balancer.  */
+    IFF_SLAVE = 0x800,		/* Slave of a load balancer.  */
+
+    IFF_MULTICAST = 0x1000	/* Supports multicast.  */
+  };
+
+/* 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      */
+
+#define _IOT_ifreq \
+_IOT(_IOTS(struct ifreq),1,0,0,0,0)
+
+/* 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.  */
+#define _IOT_ifconf \
+_IOT(_IOTS(struct ifconf),1,0,0,0,0)
+
+
+/* Convert an interface name to an index, and vice versa.  */
+
+unsigned int  if_nametoindex(const char *ifname);
+char  *if_indextoname(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", .... */
+};
+
+struct if_nameindex  *if_nameindex(void);
+
+/* Free the data returned from if_nameindex.  */
+
+void  if_freenameindex(struct if_nameindex *ptr);
+
+#endif /* net/if.h */