📄 ieee80211_node.h
字号:
/* * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting * Copyright 2006 ATheros Communications, Inc. * * Wireless Network driver for Atheros AR6001 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * */#ifndef _IEEE80211_NODE_H_#define _IEEE80211_NODE_H_/* * Node locking definitions. */#define IEEE80211_NODE_LOCK_INIT(_nt) A_MUTEX_INIT(&(_nt)->nt_nodelock)#define IEEE80211_NODE_LOCK_DESTROY(_nt)#define IEEE80211_NODE_LOCK(_nt) A_MUTEX_LOCK(&(_nt)->nt_nodelock)#define IEEE80211_NODE_UNLOCK(_nt) A_MUTEX_UNLOCK(&(_nt)->nt_nodelock)#define IEEE80211_NODE_LOCK_BH(_nt) A_MUTEX_LOCK(&(_nt)->nt_nodelock)#define IEEE80211_NODE_UNLOCK_BH(_nt) A_MUTEX_UNLOCK(&(_nt)->nt_nodelock)#define IEEE80211_NODE_LOCK_ASSERT(_nt)/* * Node reference counting definitions. * * ieee80211_node_initref initialize the reference count to 1 * ieee80211_node_incref add a reference * ieee80211_node_decref remove a reference * ieee80211_node_dectestref remove a reference and return 1 if this * is the last reference, otherwise 0 * ieee80211_node_refcnt reference count for printing (only) */#define ieee80211_node_initref(_ni) ((_ni)->ni_refcnt = 1)#define ieee80211_node_incref(_ni) ((_ni)->ni_refcnt++)#define ieee80211_node_decref(_ni) ((_ni)->ni_refcnt--)#define ieee80211_node_dectestref(_ni) (((_ni)->ni_refcnt--) == 0)#define ieee80211_node_refcnt(_ni) ((_ni)->ni_refcnt)#define IEEE80211_NODE_HASHSIZE 32/* simple hash is enough for variation of macaddr */#define IEEE80211_NODE_HASH(addr) \ (((const A_UINT8 *)(addr))[IEEE80211_ADDR_LEN - 1] % \ IEEE80211_NODE_HASHSIZE)/* * Table of ieee80211_node instances. Each ieee80211com * has at least one for holding the scan candidates. * When operating as an access point or in ibss mode there * is a second table for associated stations or neighbors. */struct ieee80211_node_table { void *nt_wmip; /* back reference */ A_MUTEX_T nt_nodelock; /* on node table */ struct bss *nt_node_first; /* information of all nodes */ struct bss *nt_node_last; /* information of all nodes */ struct bss *nt_hash[IEEE80211_NODE_HASHSIZE]; const char *nt_name; /* for debugging */ A_UINT32 nt_scangen; /* gen# for timeout scan */ A_TIMER nt_inact_timer;};#define WLAN_NODE_INACT_TIMEOUT_MSEC 10000#endif /* _IEEE80211_NODE_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -