summaryrefslogtreecommitdiff
path: root/hurd/pfinet.defs
diff options
context:
space:
mode:
authorMarcus Brinkmann <marcus@gnu.org>2001-01-11 22:28:29 +0000
committerMarcus Brinkmann <marcus@gnu.org>2001-01-11 22:28:29 +0000
commit2a0220f19b262f122bc8dc7b68e6f4c0a5a16cae (patch)
tree933d00b5e3b4b7371ccf1b10f2a24affa2bfc70d /hurd/pfinet.defs
parentf63be3bda31acdc2a88e1cd64770966e73ca0b5d (diff)
hurd/
2001-01-07 Marcus Brinkmann <marcus@gnu.org> * ioctl_types.h: Include <net/if.h>, define types sockaddr_t and ifname_t for iioctl.defs. * iioctl.defs: New file for network interface ioctls. * pfinet.defs: Remove old RPCs, fix subsystem number, add RPC for SIOCGIFCONF. pfinet/ 2001-01-07 Marcus Brinkmann <marcus@gnu.org> * pfinet-ops.c: New file to implement hurd/pfinet.defs. * iioctl-ops.c: New file to implement iioctl.defs. * linux-src/net/core/dev.c: If _HURD_, don't define netdev_chain as static. * glue-include/linux/if.h: New file, to avoid conflict between <net/if.h> (imported by iioctl.defs) and linux version of it. * main.c (pfinet_demuxer): Prototype pfinet_server and iioctl_server, use them. * pfinet.h: New global variables pfinetctl, pfinet_owner and pfinet_group. * main.c (main): New variable ST. Request pfinetctl from trivfs_startup. Use it to determine the owner and group of the underlying node. * io-ops.c (S_io_reauthenticate): New index variable j. Set newuser->isroot also for owners of the underlying file and group owners. (S_io_restrict_auth): Likewise. * socket-ops.c: Include <sys/stat.h> and <hurd/fshelp.h>. (S_socket_create): New variable isroot. If master->isroot is not set, use fshelp_isowner to check ownership and if to set it. Pass isroot to make_sock_user instead master->isroot. * linux-src/net/ipv4/devinet.c (configure_device): Accept new parameter BROADCAST, set ifa_broadcast if this is not INADDR_NONE. (inquire_device): Accept new parameter broadcast, set it. * main.c: Add new paramter to prototype of configure_device. (main): Add new parameter to call to configure_device. * options.c: Add new parameters to prototypes of configure_device and inquire_device. (trivfs_append_args): Define new variable BROAD, use its address as the new parameter for inquire_device. * linux-src/net/core/dev.c (dev_ifconf): Don't declare static if _HURD_. * linux-src/net/ipv4/devinet.c (inet_gifconf): If _HURD_, set sin_len member. * Makefile (MIGSRCS): Add pfinetServer.c and iioctlServer.c. (SRCS): Add pfinet-ops.c, iioctl-ops.c.
Diffstat (limited to 'hurd/pfinet.defs')
-rw-r--r--hurd/pfinet.defs46
1 files changed, 12 insertions, 34 deletions
diff --git a/hurd/pfinet.defs b/hurd/pfinet.defs
index abaf14d8..669e3f7a 100644
--- a/hurd/pfinet.defs
+++ b/hurd/pfinet.defs
@@ -1,5 +1,5 @@
/* Definitions for pfinet-specific calls
- Copyright (C) 1999 Free Software Foundation
+ Copyright (C) 1999, 2000 Free Software Foundation
This file is part of the GNU Hurd.
@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with the GNU Hurd; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-subsystem pfinet 21000;
+subsystem pfinet 37000;
#include <hurd/hurd_types.defs>
@@ -27,35 +27,13 @@ SOCKET_IMPORTS
INTR_INTERFACE
-
-/* Register a new interface. This call is made on the main socket
- rendezvous port (/servers/socket/pfinet). */
-routine pfinet_register_interface (
- server: pf_t;
- name: string_t;
- address: int; /* in net byte order */
- network: int; /* in net byte order */
- mask: int; /* in net byte order */
- broadcast: int; /* in net byte order */
- mac_hdr_len: int;
- xmit: mach_port_send_t;
- out recv: mach_port_send_t);
-
-/* Process an incoming packet. This is made on the RECVXMIT port returned
- by a previous call to pfinet_register_interface. */
-simpleroutine pfinet_recv (
- rx: mach_port_t;
- packet: data_t);
-
-/* Sent by pfinet TO an interface for each packet that needs to be sent.
- The first mac_hdr_len bytes of the buffer are unfilled; the actual
- IP packet begins that many bytes in. */
-simpleroutine pfinet_xmit (
- tx: mach_port_t;
- is_broadcast: int;
- packet: data_t);
-
-
-
-
-
+/* Return a list of interfaces as expected by the SIOCGIFCONF ioctl.
+ The maximum number of bytes returned can be given in AMOUNT, but if
+ AMOUNT is negative, all interfaces will be returned. Always
+ succeeds (and interface list will be truncated to fit into AMOUNT
+ space) for BSD compatibility. */
+routine pfinet_siocgifconf (
+ port: io_t;
+ amount: int;
+ out buf: data_t, dealloc
+);