Как можно через userspace записать/считать регистры switch'а ip175c?
Цитата
int getPhy (reg mii)
{
struct mii_ioctl_data *data;
struct ifreq iwr;
int s = socket (AF_INET, SOCK_DGRAM, 0);
if (s < 0)
{
return -1;
}
(void) strncpy (iwr.ifr_name, "eth0", sizeof ("eth0"));
data = (struct mii_ioctl_data *) &iwr.ifr_data;
data->phy_id = mii.p;
data->reg_num = mii.m;
data->val_out = 0;
if (ioctl (s, SIOCGMIIREG, &iwr) == -1) {
fprintf(stderr,"Cannot get PHY %d %d",mii.p,mii.m); //заходит сюды
perror("");
}
close (s);
fprintf(stderr, "PHY %d %d is currently 0x%04X\n",mii.p,mii.m,data->val_out);
return data->val_out;
}
{
struct mii_ioctl_data *data;
struct ifreq iwr;
int s = socket (AF_INET, SOCK_DGRAM, 0);
if (s < 0)
{
return -1;
}
(void) strncpy (iwr.ifr_name, "eth0", sizeof ("eth0"));
data = (struct mii_ioctl_data *) &iwr.ifr_data;
data->phy_id = mii.p;
data->reg_num = mii.m;
data->val_out = 0;
if (ioctl (s, SIOCGMIIREG, &iwr) == -1) {
fprintf(stderr,"Cannot get PHY %d %d",mii.p,mii.m); //заходит сюды
perror("");
}
close (s);
fprintf(stderr, "PHY %d %d is currently 0x%04X\n",mii.p,mii.m,data->val_out);
return data->val_out;
}
При попытке считать что-то выдает:
Cannot get PHY 29 23Operation not supported
В правильном ли я вообще русле двигаюсь?
На форуме про это ничего не нашел... Есть собственно статейка...
https://dev.openwrt.org/ticket/4050
кернел пропатчил как там написано и все равно...