|
@@ -122,55 +122,6 @@ ssize_t batadv_show_##_name(struct kobject *kobj, \
|
|
|
batadv_store_##_name)
|
|
|
|
|
|
|
|
|
-#define BATADV_ATTR_HIF_STORE_UINT(_name, _min, _max, _post_func) \
|
|
|
-ssize_t batadv_store_##_name(struct kobject *kobj, \
|
|
|
- struct attribute *attr, char *buff, \
|
|
|
- size_t count) \
|
|
|
-{ \
|
|
|
- struct net_device *net_dev = batadv_kobj_to_netdev(kobj); \
|
|
|
- struct batadv_hard_iface *hard_iface; \
|
|
|
- ssize_t length; \
|
|
|
- \
|
|
|
- hard_iface = batadv_hardif_get_by_netdev(net_dev); \
|
|
|
- if (!hard_iface) \
|
|
|
- return 0; \
|
|
|
- \
|
|
|
- length = __batadv_store_uint_attr(buff, count, _min, _max, \
|
|
|
- _post_func, attr, \
|
|
|
- &hard_iface->_name, net_dev); \
|
|
|
- \
|
|
|
- batadv_hardif_free_ref(hard_iface); \
|
|
|
- return length; \
|
|
|
-}
|
|
|
-
|
|
|
-#define BATADV_ATTR_HIF_SHOW_UINT(_name) \
|
|
|
-ssize_t batadv_show_##_name(struct kobject *kobj, \
|
|
|
- struct attribute *attr, char *buff) \
|
|
|
-{ \
|
|
|
- struct net_device *net_dev = batadv_kobj_to_netdev(kobj); \
|
|
|
- struct batadv_hard_iface *hard_iface; \
|
|
|
- ssize_t length; \
|
|
|
- \
|
|
|
- hard_iface = batadv_hardif_get_by_netdev(net_dev); \
|
|
|
- if (!hard_iface) \
|
|
|
- return 0; \
|
|
|
- \
|
|
|
- length = sprintf(buff, "%i\n", atomic_read(&hard_iface->_name));\
|
|
|
- \
|
|
|
- batadv_hardif_free_ref(hard_iface); \
|
|
|
- return length; \
|
|
|
-}
|
|
|
-
|
|
|
-/* Use this, if you are going to set [name] in hard_iface to an
|
|
|
- * unsigned integer value
|
|
|
- */
|
|
|
-#define BATADV_ATTR_HIF_UINT(_name, _mode, _min, _max, _post_func) \
|
|
|
- static BATADV_ATTR_HIF_STORE_UINT(_name, _min, _max, _post_func)\
|
|
|
- static BATADV_ATTR_HIF_SHOW_UINT(_name) \
|
|
|
- static BATADV_ATTR(_name, _mode, batadv_show_##_name, \
|
|
|
- batadv_store_##_name)
|
|
|
-
|
|
|
-
|
|
|
static int batadv_store_bool_attr(char *buff, size_t count,
|
|
|
struct net_device *net_dev,
|
|
|
const char *attr_name, atomic_t *attr)
|