/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Copyright (c) 2006
* Damien Bergamini <damien.bergamini@free.fr>
* Copyright (c) 2006 Sam Leffler, Errno Consulting
*
* 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 _UATH_REG_H
#define _UATH_REG_H
#ifdef __cplusplus
extern "C" {
#endif
/* Location in the endpoint descriptor tree used by the device */
#define UATH_IFACE_INDEX 0
#define UATH_ALT_IF_INDEX 0
/* all fields are big endian */
#pragma pack(1)
struct uath_fwblock {
};
#pragma pack()
/*
* Messages are passed in Target Endianness. All fixed-size
* fields of a WDS Control Message are treated as 32-bit
* values and Control Msgs are guaranteed to be 32-bit aligned.
*
* The format of a WDS Control Message is as follows:
* Message Length 32 bits
* Message Opcode 32 bits
* Message ID 32 bits
* parameter 1
* parameter 2
* ...
*
* A variable-length parameter, or a parmeter that is larger than
* 32 bits is passed as <length, data> pair, where length is a
* 32-bit quantity and data is padded to 32 bits.
*/
#pragma pack(1)
struct uath_cmd_hdr {
/* NB: these are defined for rev 1.5 firmware; rev 1.6 is different */
/* messages from Host -> Target */
/* messages from Target -> Host */
/* more messages */
/* msg data follows */
};
#pragma pack()
#pragma pack(1)
struct uath_chunk {
/* chunk data follows */
};
#pragma pack()
/*
* Message format for a WDCMSG_DATA_AVAIL message from Target to Host.
*/
#pragma pack(1)
struct uath_rx_desc {
#define UATH_STATUS_OK 0
};
#pragma pack()
#pragma pack(1)
struct uath_tx_desc {
};
#pragma pack()
#pragma pack(1)
struct uath_cmd_host_available {
};
#pragma pack()
#define ATH_SW_VER_PATCH 0
/* structure for command UATH_CMD_WRITE_MAC */
#pragma pack(1)
struct uath_write_mac {
};
#pragma pack()
#pragma pack(1)
#define UATH_LED_LINK 0
#define UATH_LED_OFF 0
};
#pragma pack()
#pragma pack(1)
};
#pragma pack()
/* structure for command WDCMSG_RESET */
#pragma pack(1)
struct uath_cmd_reset {
};
#pragma pack()
#pragma pack(1)
struct uath_cmd_rateset {
};
#pragma pack()
#pragma pack(1)
/* structure for command WDCMSG_SET_BASIC_RATE */
struct uath_cmd_rates {
};
#pragma pack()
enum {
WLAN_MODE_NONE = 0,
};
#pragma pack(1)
struct uath_cmd_connection_attr {
};
#pragma pack()
#pragma pack(1)
/* structure for command WDCMSG_CREATE_CONNECTION */
struct uath_cmd_create_connection {
};
#pragma pack()
#pragma pack(1)
struct uath_cmd_txq_attr {
};
#pragma pack()
#pragma pack(1)
};
#pragma pack()
#pragma pack(1)
};
#pragma pack()
#pragma pack(1)
};
#pragma pack()
enum {
/* MAC Address to use. Overrides EEPROM */
/* An ID for use in error & debug messages */
};
enum {
/* Sentinal to indicate "no capability" */
/* Target supports WDC message debug features */
};
enum {
};
enum {
};
#define UATH_MAX_TXBUFSZ \
(sizeof (struct uath_chunk) + sizeof (struct uath_tx_desc) + \
/*
* it's not easy to measure how the chunk is passed into the host if the target
* passed the multi-chunks so just we check a minimal size we can imagine.
*/
#ifdef __cplusplus
}
#endif
#endif /* _UATH_REG_H */