| /* |
| * Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
| * Use is subject to license terms. |
| */ |
| |
| /* |
| * Copyright (c) 2005, 2006 Damien Bergamini <damien.bergamini@free.fr> |
| * Copyright (c) 2006 Niall O'Higgins <niallo@openbsd.org> |
| * |
| * 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 |
| |
| #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 */ |