/* Return command are almost always the same as the host command, but with * bit 15 set high. There are a few exceptions, though...
*/ #define CMD_RET(cmd) (0x8000 | cmd)
/* The size of SQ memory PPA, DPA are 8 DWORDs, that keep the physical * addresses of TxPD buffers. Station has only 8 TxPD available, Whereas * driver has more local TxPDs. Each TxPD on the host memory is associated * with a Tx control node. The driver maintains 8 RxPD descriptors for * station firmware to store Rx packet information. * * Current version of MAC has a 32x6 multicast address buffer. * * 802.11b can have up to 14 channels, the driver keeps the * BSSID(MAC address) of each APs or Ad hoc stations it has sensed.
*/
/** Timers */ struct timer_list command_timer; int nr_retries; int cmd_timed_out;
u8 cmd_response_rxed;
/** capability Info used in Association, start, join */
u16 capability;
/** MAC address information */
u8 current_addr[ETH_ALEN];
u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN];
u32 nr_of_multicastmacaddr; int cur_freq;
/* * Define data structure for CMD_GET_HW_SPEC * This structure defines the response for the GET_HW_SPEC command
*/ struct cmd_ds_get_hw_spec { struct cmd_header hdr;
/* HW Interface version number */
__le16 hwifversion; /* HW version number */
__le16 version; /* Max number of TxPD FW can handle */
__le16 nr_txpd; /* Max no of Multicast address */
__le16 nr_mcast_adr; /* MAC address */
u8 permanentaddr[6];
/** Function Prototype Declaration */ void lbtf_set_mac_control(struct lbtf_private *priv);
int lbtf_free_cmd_buffer(struct lbtf_private *priv);
int lbtf_allocate_cmd_buffer(struct lbtf_private *priv); int lbtf_execute_next_command(struct lbtf_private *priv); int lbtf_set_radio_control(struct lbtf_private *priv); int lbtf_update_hw_spec(struct lbtf_private *priv); int lbtf_cmd_set_mac_multicast_addr(struct lbtf_private *priv); void lbtf_set_mode(struct lbtf_private *priv, enum lbtf_mode mode); void lbtf_set_bssid(struct lbtf_private *priv, bool activate, const u8 *bssid); int lbtf_set_mac_address(struct lbtf_private *priv, uint8_t *mac_addr);
int lbtf_set_channel(struct lbtf_private *priv, u8 channel);
int lbtf_beacon_set(struct lbtf_private *priv, struct sk_buff *beacon); int lbtf_beacon_ctrl(struct lbtf_private *priv, bool beacon_enable, int beacon_int);
int lbtf_process_rx_command(struct lbtf_private *priv); void lbtf_complete_command(struct lbtf_private *priv, struct cmd_ctrl_node *cmd, int result); void lbtf_cmd_response_rx(struct lbtf_private *priv);
/* support functions for cmd.c */ /* lbtf_cmd() infers the size of the buffer to copy data back into, from the size of the target of the pointer. Since the command to be sent
may often be smaller, that size is set in cmd->size by the caller.*/ #define lbtf_cmd(priv, cmdnr, cmd, cb, cb_arg) ({ \
uint16_t __sz = le16_to_cpu((cmd)->hdr.size); \
(cmd)->hdr.size = cpu_to_le16(sizeof(*(cmd))); \
__lbtf_cmd(priv, cmdnr, &(cmd)->hdr, __sz, cb, cb_arg); \
})
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.