X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fcore%2Fnet-sysfs.c;h=060f703659e83544283990912aa92c587938e41b;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=6cf0afc7b1c454708418bade5f9af9b1012e5cba;hpb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;p=linux-2.6.git diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 6cf0afc7b..060f70365 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -126,8 +126,18 @@ static ssize_t show_broadcast(struct class_device *dev, char *buf) return -EINVAL; } +static ssize_t show_carrier(struct class_device *dev, char *buf) +{ + struct net_device *netdev = to_net_dev(dev); + if (netif_running(netdev)) { + return sprintf(buf, fmt_dec, !!netif_carrier_ok(netdev)); + } + return -EINVAL; +} + static CLASS_DEVICE_ATTR(address, S_IRUGO, show_address, NULL); static CLASS_DEVICE_ATTR(broadcast, S_IRUGO, show_broadcast, NULL); +static CLASS_DEVICE_ATTR(carrier, S_IRUGO, show_carrier, NULL); /* read-write attributes */ NETDEVICE_SHOW(mtu, fmt_dec); @@ -186,6 +196,7 @@ static struct class_device_attribute *net_class_attributes[] = { &class_device_attr_type, &class_device_attr_address, &class_device_attr_broadcast, + &class_device_attr_carrier, NULL };