我熟悉mii-tool IOCTL调用,可用于访问PHY设备的MII寄存器,如下所示:
static int mdio_read(int skfd, int location){
struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
mii->reg_num = location;
if (ioctl(skfd, SIOCGMIIREG, &ifr) < 0) {
fprintf(stderr, "SIOCGMIIREG on %s failed: %s\n", ifr.ifr_name,
strerror(errno));
return -1;
}
return mii->out_value;
}
但我使用的linux kenel是2.6.32,它似乎不支持mii-tool IOCTL,而是支持更新的ethtool,但我似乎没有找到任何ethtool子命令,它可以服务于与上面相同的目的。
我如何使用ETHTOOL IOCTL做与mii-tool ioctls相同的操作,即读取phy的MII寄存器?或者我完全不能这样做?