mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
* hurd/Makefile (user-interfaces): Add pfinet. * hurd/hurdioctl.c: Include <hurd/pfinet.h>, <net/if.h> and <netinet/in.h>. (siocgifconf): New function. Register it with HURD_HANDLE_IOCTL as the handler for SIOCGIFCONF. * sysdeps/mach/hurd/bits/ioctls.h: Modify SIOCSIFFLAGS and SIOCGIFFLAGS to be of IOC type ifreq_short. Modify SIOCSIFMETRIC and SIOCGIFMETRIC to be of IOC type ifreq_int. Add new macro definitions for SIOCGIFMTU, SIOCSIFMTU, SIOCGIFINDEX and SIOCGIFNAME. From Marcus Brunkmann <marcus@gnu.org>.
2001-06-26 Mark Kettenis <kettenis@gnu.org> * hurd/Makefile (user-interfaces): Add pfinet. * hurd/hurdioctl.c: Include <hurd/pfinet.h>, <net/if.h> and <netinet/in.h>. (siocgifconf): New function. Register it with HURD_HANDLE_IOCTL as the handler for SIOCGIFCONF. * sysdeps/mach/hurd/bits/ioctls.h: Modify SIOCSIFFLAGS and SIOCGIFFLAGS to be of IOC type ifreq_short. Modify SIOCSIFMETRIC and SIOCGIFMETRIC to be of IOC type ifreq_int. Add new macro definitions for SIOCGIFMTU, SIOCSIFMTU, SIOCGIFINDEX and SIOCGIFNAME. From Marcus Brunkmann <marcus@gnu.org>.
This commit is contained in:
parent
da0debaa44
commit
7facfddd0d
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
|||||||
|
2001-06-26 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* hurd/Makefile (user-interfaces): Add pfinet.
|
||||||
|
* hurd/hurdioctl.c: Include <hurd/pfinet.h>, <net/if.h> and
|
||||||
|
<netinet/in.h>.
|
||||||
|
(siocgifconf): New function. Register it with HURD_HANDLE_IOCTL
|
||||||
|
as the handler for SIOCGIFCONF.
|
||||||
|
* sysdeps/mach/hurd/bits/ioctls.h: Modify SIOCSIFFLAGS and
|
||||||
|
SIOCGIFFLAGS to be of IOC type ifreq_short. Modify SIOCSIFMETRIC
|
||||||
|
and SIOCGIFMETRIC to be of IOC type ifreq_int. Add new macro
|
||||||
|
definitions for SIOCGIFMTU, SIOCSIFMTU, SIOCGIFINDEX and
|
||||||
|
SIOCGIFNAME.
|
||||||
|
From Marcus Brunkmann <marcus@gnu.org>.
|
||||||
|
|
||||||
2001-06-25 Ulrich Drepper <drepper@redhat.com>
|
2001-06-25 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/gnu/net/if.h: Correct _IOT_ifreq and add _IOT_ifreq_short
|
* sysdeps/gnu/net/if.h: Correct _IOT_ifreq and add _IOT_ifreq_short
|
||||||
|
@ -40,7 +40,7 @@ user-interfaces := $(addprefix hurd/,\
|
|||||||
msg msg_reply msg_request \
|
msg msg_reply msg_request \
|
||||||
exec exec_startup crash interrupt \
|
exec exec_startup crash interrupt \
|
||||||
fs fsys io term tioctl socket ifsock \
|
fs fsys io term tioctl socket ifsock \
|
||||||
login password \
|
login password pfinet \
|
||||||
)
|
)
|
||||||
server-interfaces := hurd/msg faultexc
|
server-interfaces := hurd/msg faultexc
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* ioctl commands which must be done in the C library.
|
/* ioctl commands which must be done in the C library.
|
||||||
Copyright (C) 1994, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1994,95,96,97,99,2001 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -300,3 +300,32 @@ tiocnotty (int fd,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_HURD_HANDLE_IOCTL (tiocnotty, TIOCNOTTY);
|
_HURD_HANDLE_IOCTL (tiocnotty, TIOCNOTTY);
|
||||||
|
|
||||||
|
#include <hurd/pfinet.h>
|
||||||
|
#include <net/if.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
|
||||||
|
/* Fill in the buffer IFC->IFC_BUF of length IFC->IFC_LEN with a list
|
||||||
|
of ifr structures, one for each network interface. */
|
||||||
|
static int
|
||||||
|
siocgifconf (int fd, int request, struct ifconf *ifc)
|
||||||
|
{
|
||||||
|
error_t err;
|
||||||
|
int data_len = ifc->ifc_len;
|
||||||
|
char *data = ifc->ifc_buf;
|
||||||
|
|
||||||
|
if (data_len <= 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err = HURD_DPORT_USE (fd, __pfinet_siocgifconf (port, ifc->ifc_len,
|
||||||
|
&data, &data_len));
|
||||||
|
if (data_len < ifc->ifc_len)
|
||||||
|
ifc->ifc_len = data_len;
|
||||||
|
if (data != ifc->ifc_buf)
|
||||||
|
{
|
||||||
|
memcpy (ifc->ifc_buf, data, ifc->ifc_len);
|
||||||
|
__vm_deallocate (__mach_task_self (), (vm_address_t) data, data_len);
|
||||||
|
}
|
||||||
|
return err ? __hurd_dfail (fd, err) : 0;
|
||||||
|
}
|
||||||
|
_HURD_HANDLE_IOCTL (siocgifconf, SIOCGIFCONF);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
|
/* Copyright (C) 1992,93,96,97,98,99,2001 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -229,8 +229,8 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
|
|||||||
#define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */
|
#define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */
|
||||||
#define OSIOCGIFDSTADDR _IOWR('i',15, struct ifreq) /* get p-p address */
|
#define OSIOCGIFDSTADDR _IOWR('i',15, struct ifreq) /* get p-p address */
|
||||||
#define SIOCGIFDSTADDR _IOWR('i',34, struct ifreq) /* get p-p address */
|
#define SIOCGIFDSTADDR _IOWR('i',34, struct ifreq) /* get p-p address */
|
||||||
#define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */
|
#define SIOCSIFFLAGS _IOW('i', 16, struct ifreq_short)/* set ifnet flags */
|
||||||
#define SIOCGIFFLAGS _IOWR('i',17, struct ifreq) /* get ifnet flags */
|
#define SIOCGIFFLAGS _IOWR('i',17, struct ifreq_short)/* get ifnet flags */
|
||||||
#define OSIOCGIFBRDADDR _IOWR('i',18, struct ifreq) /* get broadcast addr */
|
#define OSIOCGIFBRDADDR _IOWR('i',18, struct ifreq) /* get broadcast addr */
|
||||||
#define SIOCGIFBRDADDR _IOWR('i',35, struct ifreq) /* get broadcast addr */
|
#define SIOCGIFBRDADDR _IOWR('i',35, struct ifreq) /* get broadcast addr */
|
||||||
#define SIOCSIFBRDADDR _IOW('i',19, struct ifreq) /* set broadcast addr */
|
#define SIOCSIFBRDADDR _IOW('i',19, struct ifreq) /* set broadcast addr */
|
||||||
@ -239,8 +239,8 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
|
|||||||
#define OSIOCGIFNETMASK _IOWR('i',21, struct ifreq) /* get net addr mask */
|
#define OSIOCGIFNETMASK _IOWR('i',21, struct ifreq) /* get net addr mask */
|
||||||
#define SIOCGIFNETMASK _IOWR('i',37, struct ifreq) /* get net addr mask */
|
#define SIOCGIFNETMASK _IOWR('i',37, struct ifreq) /* get net addr mask */
|
||||||
#define SIOCSIFNETMASK _IOW('i',22, struct ifreq) /* set net addr mask */
|
#define SIOCSIFNETMASK _IOW('i',22, struct ifreq) /* set net addr mask */
|
||||||
#define SIOCGIFMETRIC _IOWR('i',23, struct ifreq) /* get IF metric */
|
#define SIOCGIFMETRIC _IOWR('i',23, struct ifreq_int) /* get IF metric */
|
||||||
#define SIOCSIFMETRIC _IOW('i',24, struct ifreq) /* set IF metric */
|
#define SIOCSIFMETRIC _IOW('i',24, struct ifreq_int) /* set IF metric */
|
||||||
#define SIOCDIFADDR _IOW('i',25, struct ifreq) /* delete IF addr */
|
#define SIOCDIFADDR _IOW('i',25, struct ifreq) /* delete IF addr */
|
||||||
#define SIOCAIFADDR _IOW('i',26, struct ifaliasreq) /* add/chg IF alias */
|
#define SIOCAIFADDR _IOW('i',26, struct ifaliasreq) /* add/chg IF alias */
|
||||||
|
|
||||||
@ -249,6 +249,12 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_32, IOC_64 };
|
|||||||
#define SIOCGARP _IOWR('i',38, struct arpreq) /* get arp entry */
|
#define SIOCGARP _IOWR('i',38, struct arpreq) /* get arp entry */
|
||||||
#define SIOCDARP _IOW('i', 32, struct arpreq) /* delete arp entry */
|
#define SIOCDARP _IOW('i', 32, struct arpreq) /* delete arp entry */
|
||||||
|
|
||||||
|
#define SIOCGIFMTU _IOWR('i', 51, struct ifreq_int)/* get IF mtu */
|
||||||
|
#define SIOCSIFMTU _IOW('i', 52, struct ifreq_int) /* set IF mtu */
|
||||||
|
|
||||||
|
#define SIOCGIFINDEX _IOWR('i', 90, struct ifreq_int)/* get IF index */
|
||||||
|
#define SIOCGIFNAME _IOWR('i', 91, struct ifreq_int)/* set IF name */
|
||||||
|
|
||||||
|
|
||||||
/* Compatibility with 4.3 BSD terminal driver.
|
/* Compatibility with 4.3 BSD terminal driver.
|
||||||
From 4.4 <sys/ioctl_compat.h>. */
|
From 4.4 <sys/ioctl_compat.h>. */
|
||||||
|
Loading…
Reference in New Issue
Block a user