PHY_MII_IOCTL(9) Network device support PHY_MII_IOCTL(9)NAME
phy_mii_ioctl - generic PHY MII ioctl interface
SYNOPSIS
int phy_mii_ioctl(struct phy_device * phydev, struct ifreq * ifr, int cmd);
ARGUMENTS
phydev
the phy_device struct
ifr
struct ifreq for socket ioctl's
cmd
ioctl cmd to execute
DESCRIPTION
Note that this function is currently incompatible with the PHYCONTROL layer. It changes registers without regard to current state. Use at
own risk.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 PHY_MII_IOCTL(9)
Check Out this Related Man Page
te(7) Miscellaneous Information Manual te(7)NAME
te - TGEC Ethernet interface
SYNOPSIS
config_driver te
DESCRIPTION
The te interface provides access to a 10 Mb/s Ethernet network through the TGEC controller.
The host's Internet address is specified at boot time with an SIOCSIFADDR ioctl. The te interface employs the address resolution protocol
described in arp(7) to map dynamically between Internet and Ethernet addresses on the local network.
The SIOCSPHYSADDR ioctl can be used to change the physical address of the TGEC. The SIOCRPHYSADDR ioctl can be used to read the physical
address of the TGEC.
The SIOCADDMULTI and SIOCDELMULTI ioctls can be used to add or delete multicast addresses. The TGEC recognizes a maximum of 12 multicast
addresses.
The SIOCRDCTRS and SIOCRDZCTRS ioctls can be used to read or ``read and clear'' the Ethernet driver counters. The argument to these two
ioctls is a pointer to a counter structure, ctrreq, found in <net/if.h>.
The SIOCENABLBACK and SIOCDISABLBACK ioctls can be used to enable and disable the interface loopback mode respectively.
EXAMPLES
To obtain the physical address of the adapter, use the SIOCRPHYSADDR ioctl as in the following program example: #include <stdio.h>
/* standard I/O */ #include <errno.h> /* error numbers */ #include <sys/socket.h> /* socket definitions */ #include
<sys/ioctl.h> /* ioctls */ #include <net/if.h> /* generic interface structures */
main() {
int s,i;
struct ifdevea devea;
/* Get a socket */
s = socket(AF_INET,SOCK_DGRAM,0);
if (s < 0) {
perror("socket");
exit(1);
}
strcpy(devea.ifr_name,"te0");
if (ioctl(s,SIOCRPHYSADDR,&devea) < 0) {
perror(&devea.ifr_name[0]);
exit(1);
}
printf("Address is ");
for (i = 0; i < 6; i++)
printf("%X ", devea.default_pa[i] & 0xff);
printf("
");
close(s); }
To enable external loopback, use the SIOCENABLEBACK ioctl as in the following program example: #include <stdio.h> /* standard
I/O */ #include <errno.h> /* error numbers */ #include <sys/socket.h> /* socket definitions */ #include <sys/ioctl.h>
/* ioctls */ #include <net/if.h> /* generic interface structures */
main() {
int s;
struct ifreq data;
/* Get a socket */
s = socket(AF_INET,SOCK_DGRAM,0);
if (s < 0) {
perror("socket");
exit(1);
}
strcpy(data.ifr,"te0");
if (ioctl(s,SIOCENABLEBACK,&data) < 0) {
perror("SIOCENABLEBACK:");
exit(1);
}
close(s); }
ERRORS
The diagnostic error messages contain relevant information provided by the TGEC. The interface was handed a message with addresses format-
ted in an unsuitable address family, and the packet was dropped. The TGEC hardware failed to reset itself properly. The driver's attempt
to allocate a buffer failed. The driver's attempt to allocate a buffer failed. Too many multicast requests have been made. The shared
memory block for the TGEC's local RAM buffer is missing from the CMOS configuration data.
RELATED INFORMATION arp(7), inet(7), netintro(7) delim off
te(7)