/* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* * Copyright (c) 2005, 2006 Damien Bergamini * Copyright (c) 2006 Niall O'Higgins * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _RUM_VAR_H #define _RUM_VAR_H #ifdef __cplusplus extern "C" { #endif #define RAL_FLAG_RUNNING (1<<0) #define RAL_RCR_PROMISC (1<<0) #define RAL_RCR_MULTI (2<<0) #ifndef DDI_NT_NET_WIFI #define DDI_NT_NET_WIFI "ddi_network:wifi" #endif /* * Bit flags in the ral_dbg_flags */ #define RAL_DBG_MSG 0x000001 #define RAL_DBG_ERR 0x000002 #define RAL_DBG_USB 0x000004 #define RAL_DBG_TX 0x000008 #define RAL_DBG_RX 0x000010 #define RAL_DBG_IOCTL 0x000020 #define RAL_DBG_HW 0x000040 #define RAL_DBG_ALL 0x000fff #ifdef DEBUG #define RAL_DEBUG \ ral_debug #else #define RAL_DEBUG #endif #define RAL_RX_LIST_COUNT 8 #define RAL_TX_LIST_COUNT 8 struct rum_amrr { int txcnt; int retrycnt; int success; int success_threshold; int recovery; }; struct rum_softc { struct ieee80211com sc_ic; dev_info_t *sc_dev; usb_client_dev_data_t *sc_udev; /* usb dev */ int sc_rx_no; int sc_tx_no; uint8_t rf_rev; uint8_t rffreq; kmutex_t sc_genlock; usb_pipe_handle_t sc_rx_pipeh; usb_pipe_handle_t sc_tx_pipeh; enum ieee80211_state sc_state; struct rum_amrr amrr; kmutex_t tx_lock; kmutex_t rx_lock; int tx_queued; int rx_queued; int sc_tx_timer; timeout_id_t sc_scan_id; timeout_id_t sc_amrr_id; uint32_t sc_need_sched; uint32_t sc_flags; uint32_t sc_rcr; /* RAL RCR */ int dwelltime; uint32_t sta[6]; uint32_t rf_regs[4]; uint8_t txpow[44]; #pragma pack(1) struct { uint8_t val; uint8_t reg; } bbp_prom[16]; #pragma pack() int hw_radio; int rx_ant; int tx_ant; int nb_ant; int ext_2ghz_lna; int ext_5ghz_lna; int rssi_2ghz_corr; int rssi_5ghz_corr; int sifs; uint8_t bbp17; /* kstats */ uint32_t sc_tx_nobuf; uint32_t sc_rx_nobuf; uint32_t sc_tx_err; uint32_t sc_rx_err; uint32_t sc_tx_retries; int (*sc_newstate)(struct ieee80211com *, enum ieee80211_state, int); }; #define RAL_IS_RUNNING(_sc) ((_sc)->sc_flags & RAL_FLAG_RUNNING) #define RAL_LOCK(sc) mutex_enter(&(sc)->sc_genlock) #define RAL_UNLOCK(sc) mutex_exit(&(sc)->sc_genlock) #define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5] #define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x" #ifdef __cplusplus } #endif #endif /* _RUM_VAR_H */