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