root/net/wimax/wimax-internal.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. wimax_dev_is_ready
  2. __wimax_state_set
  3. wimax_debugfs_add
  4. wimax_debugfs_rm

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Linux WiMAX
   4  * Internal API for kernel space WiMAX stack
   5  *
   6  * Copyright (C) 2007 Intel Corporation <linux-wimax@intel.com>
   7  * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
   8  *
   9  * This header file is for declarations and definitions internal to
  10  * the WiMAX stack. For public APIs and documentation, see
  11  * include/net/wimax.h and include/linux/wimax.h.
  12  */
  13 
  14 #ifndef __WIMAX_INTERNAL_H__
  15 #define __WIMAX_INTERNAL_H__
  16 #ifdef __KERNEL__
  17 
  18 #ifdef pr_fmt
  19 #undef pr_fmt
  20 #endif
  21 
  22 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
  23 
  24 #include <linux/device.h>
  25 #include <net/wimax.h>
  26 
  27 
  28 /*
  29  * Decide if a (locked) device is ready for use
  30  *
  31  * Before using the device structure, it must be locked
  32  * (wimax_dev->mutex). As well, most operations need to call this
  33  * function to check if the state is the right one.
  34  *
  35  * An error value will be returned if the state is not the right
  36  * one. In that case, the caller should not attempt to use the device
  37  * and just unlock it.
  38  */
  39 static inline __must_check
  40 int wimax_dev_is_ready(struct wimax_dev *wimax_dev)
  41 {
  42         if (wimax_dev->state == __WIMAX_ST_NULL)
  43                 return -EINVAL; /* Device is not even registered! */
  44         if (wimax_dev->state == WIMAX_ST_DOWN)
  45                 return -ENOMEDIUM;
  46         if (wimax_dev->state == __WIMAX_ST_QUIESCING)
  47                 return -ESHUTDOWN;
  48         return 0;
  49 }
  50 
  51 
  52 static inline
  53 void __wimax_state_set(struct wimax_dev *wimax_dev, enum wimax_st state)
  54 {
  55         wimax_dev->state = state;
  56 }
  57 void __wimax_state_change(struct wimax_dev *, enum wimax_st);
  58 
  59 #ifdef CONFIG_DEBUG_FS
  60 void wimax_debugfs_add(struct wimax_dev *);
  61 void wimax_debugfs_rm(struct wimax_dev *);
  62 #else
  63 static inline void wimax_debugfs_add(struct wimax_dev *wimax_dev) {}
  64 static inline void wimax_debugfs_rm(struct wimax_dev *wimax_dev) {}
  65 #endif
  66 
  67 void wimax_id_table_add(struct wimax_dev *);
  68 struct wimax_dev *wimax_dev_get_by_genl_info(struct genl_info *, int);
  69 void wimax_id_table_rm(struct wimax_dev *);
  70 void wimax_id_table_release(void);
  71 
  72 int wimax_rfkill_add(struct wimax_dev *);
  73 void wimax_rfkill_rm(struct wimax_dev *);
  74 
  75 /* generic netlink */
  76 extern struct genl_family wimax_gnl_family;
  77 
  78 /* ops */
  79 int wimax_gnl_doit_msg_from_user(struct sk_buff *skb, struct genl_info *info);
  80 int wimax_gnl_doit_reset(struct sk_buff *skb, struct genl_info *info);
  81 int wimax_gnl_doit_rfkill(struct sk_buff *skb, struct genl_info *info);
  82 int wimax_gnl_doit_state_get(struct sk_buff *skb, struct genl_info *info);
  83 
  84 #endif /* #ifdef __KERNEL__ */
  85 #endif /* #ifndef __WIMAX_INTERNAL_H__ */

/* [<][>][^][v][top][bottom][index][help] */