linux/net/batman-adv/sysfs.h
<<
>>
Prefs
   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 */
  29struct 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
  49int batadv_sysfs_add_meshif(struct net_device *dev);
  50void batadv_sysfs_del_meshif(struct net_device *dev);
  51int batadv_sysfs_add_hardif(struct kobject **hardif_obj,
  52                            struct net_device *dev);
  53void batadv_sysfs_del_hardif(struct kobject **hardif_obj);
  54int batadv_sysfs_add_vlan(struct net_device *dev,
  55                          struct batadv_softif_vlan *vlan);
  56void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv,
  57                           struct batadv_softif_vlan *vlan);
  58
  59#else
  60
  61static inline int batadv_sysfs_add_meshif(struct net_device *dev)
  62{
  63        return 0;
  64}
  65
  66static inline void batadv_sysfs_del_meshif(struct net_device *dev)
  67{
  68}
  69
  70static inline int batadv_sysfs_add_hardif(struct kobject **hardif_obj,
  71                                          struct net_device *dev)
  72{
  73        return 0;
  74}
  75
  76static inline void batadv_sysfs_del_hardif(struct kobject **hardif_obj)
  77{
  78}
  79
  80static inline int batadv_sysfs_add_vlan(struct net_device *dev,
  81                                        struct batadv_softif_vlan *vlan)
  82{
  83        return 0;
  84}
  85
  86static 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