1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (C) 2010-2020 B.A.T.M.A.N. contributors: 3 * 4 * Marek Lindner 5 */ 6 7 #ifndef _NET_BATMAN_ADV_SYSFS_H_ 8 #define _NET_BATMAN_ADV_SYSFS_H_ 9 10 #include "main.h" 11 12 #include <linux/kobject.h> 13 #include <linux/netdevice.h> 14 #include <linux/sysfs.h> 15 #include <linux/types.h> 16 17 #define BATADV_SYSFS_IF_MESH_SUBDIR "mesh" 18 #define BATADV_SYSFS_IF_BAT_SUBDIR "batman_adv" 19 /** 20 * BATADV_SYSFS_VLAN_SUBDIR_PREFIX - prefix of the subfolder that will be 21 * created in the sysfs hierarchy for each VLAN interface. The subfolder will 22 * be named "BATADV_SYSFS_VLAN_SUBDIR_PREFIX%vid". 23 */ 24 #define BATADV_SYSFS_VLAN_SUBDIR_PREFIX "vlan" 25 26 /** 27 * struct batadv_attribute - sysfs export helper for batman-adv attributes 28 */ 29 struct batadv_attribute { 30 /** @attr: sysfs attribute file */ 31 struct attribute attr; 32 33 /** 34 * @show: function to export the current attribute's content to sysfs 35 */ 36 ssize_t (*show)(struct kobject *kobj, struct attribute *attr, 37 char *buf); 38 39 /** 40 * @store: function to load new value from character buffer and save it 41 * in batman-adv attribute 42 */ 43 ssize_t (*store)(struct kobject *kobj, struct attribute *attr, 44 char *buf, size_t count); 45 }; 46 47 #ifdef CONFIG_BATMAN_ADV_SYSFS 48 49 int batadv_sysfs_add_meshif(struct net_device *dev); 50 void batadv_sysfs_del_meshif(struct net_device *dev); 51 int batadv_sysfs_add_hardif(struct kobject **hardif_obj, 52 struct net_device *dev); 53 void batadv_sysfs_del_hardif(struct kobject **hardif_obj); 54 int batadv_sysfs_add_vlan(struct net_device *dev, 55 struct batadv_softif_vlan *vlan); 56 void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv, 57 struct batadv_softif_vlan *vlan); 58 59 #else 60 61 static inline int batadv_sysfs_add_meshif(struct net_device *dev) 62 { 63 return 0; 64 } 65 66 static inline void batadv_sysfs_del_meshif(struct net_device *dev) 67 { 68 } 69 70 static inline int batadv_sysfs_add_hardif(struct kobject **hardif_obj, 71 struct net_device *dev) 72 { 73 return 0; 74 } 75 76 static inline void batadv_sysfs_del_hardif(struct kobject **hardif_obj) 77 { 78 } 79 80 static inline int batadv_sysfs_add_vlan(struct net_device *dev, 81 struct batadv_softif_vlan *vlan) 82 { 83 return 0; 84 } 85 86 static inline void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv, 87 struct batadv_softif_vlan *vlan) 88 { 89 } 90 91 #endif 92 93 #endif /* _NET_BATMAN_ADV_SYSFS_H_ */ 94
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.