/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Copyright (c) 2006
* Damien Bergamini <damien.bergamini@free.fr>
*
* 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 _WPIREG_H_
#define _WPIREG_H_
#ifdef __cplusplus
extern "C" {
#endif
/*
* Rings must be aligned on a four 4K-pages boundary.
* I had a hard time figuring this out.
*/
/*
*/
/*
* Control and status registers.
*/
/*
* NIC internal memory offsets.
*/
/*
* possible flags for register WPI_HWCONFIG
*/
/*
* possible flags for registers WPI_READ_MEM_ADDR/WPI_WRITE_MEM_ADDR
*/
/*
* possible values for WPI_FW_TARGET
*/
/*
* possible flags for WPI_GPIO_STATUS
*/
/*
* possible flags for register WPI_RESET
*/
/*
* possible flags for register WPI_GPIO_CTL
*/
/*
* possible flags for register WPI_CHICKEN
*/
/*
* possible flags for register WPI_PLL_CTL
*/
/*
* possible flags for register WPI_UCODE_CLR
*/
/*
* possible flags for WPI_RX_STATUS
*/
/*
* possible flags for register WPI_UC_CTL
*/
/*
* possible flags for register WPI_INTR_CSR
*/
#define WPI_INTR_MASK \
/*
* possible flags for register WPI_TX_STATUS
*/
/*
* possible flags for register WPI_EEPROM_CTL
*/
/*
* possible flags for register WPI_EEPROM_STATUS
*/
typedef struct wpi_shared {
} wpi_shared_t;
typedef struct wpi_tx_desc {
struct {
typedef struct wpi_tx_stat {
typedef struct wpi_rx_desc {
typedef struct wpi_rx_stat {
typedef struct wpi_rx_head {
typedef struct wpi_rx_tail {
typedef struct wpi_tx_cmd {
} wpi_tx_cmd_t;
/*
* structure for WPI_CMD_CONFIGURE
*/
typedef struct wpi_config {
} wpi_config_t;
/*
* structure for command WPI_CMD_ASSOCIATE
*/
typedef struct wpi_assoc {
} wpi_assoc_t;
/*
* structure for command WPI_CMD_SET_WME
*/
typedef struct wpi_wme_setup {
struct {
/*
* structure for command WPI_CMD_TSF
*/
typedef struct wpi_cmd_tsf {
/*
* structure for WPI_CMD_ADD_NODE
*/
typedef struct wpi_node {
#define WPI_ID_BSS 0
} wpi_node_t;
/*
* structure for command WPI_CMD_TX_DATA
*/
typedef struct wpi_cmd_data {
/*
* structure for command WPI_CMD_SET_BEACON
*/
typedef struct wpi_cmd_beacon {
/*
* structure for WPI_CMD_MRR_SETUP
*/
typedef struct wpi_mrr_setup {
#define WPI_MRR_CTL 0
struct {
#define WPI_OFDM6 0
/*
* structure for WPI_CMD_SET_LED
*/
typedef struct wpi_cmd_led {
/*
* structure for WPI_CMD_SET_POWER_MODE
*/
typedef struct wpi_power {
} wpi_power_t;
/*
* structure for command WPI_CMD_SCAN
*/
typedef struct wpi_scan_hdr {
/* followed by probe request body */
/* followed by nchan x wpi_scan_chan */
typedef struct wpi_scan_chan {
/*
* structure for WPI_CMD_BLUETOOTH
*/
typedef struct wpi_bluetooth {
/*
* structure for command WPI_CMD_TXPOWER
*/
typedef struct wpi_txpower {
/*
* firmware image header
*/
typedef struct wpi_firmware_hdr {
/*
* structure for WPI_UC_READY notification
*/
typedef struct wpi_ucode_info {
/*
* structure for WPI_START_SCAN notification
*/
typedef struct wpi_start_scan {
/*
* structure for WPI_STOP_SCAN notification
*/
typedef struct wpi_stop_scan {
while (--c > 0) { \
p++; \
s += 4; \
} \
}
#ifdef __cplusplus
}
#endif
#endif /* _WPIREG_H_ */