X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Fwl.h;h=50fee61221ea579d2f3778b399b17e79a7be6792;hb=11c1064a307a661df20e237e3623e1b5d88641fa;hp=9af4fdb278c1c23efc5556917961e9e7ef9eaeac;hpb=484cb254482ee644cc2981d1e2753fca2718bcd3;p=carl9170fw.git diff --git a/carlfw/include/wl.h b/carlfw/include/wl.h index 9af4fdb..50fee61 100644 --- a/carlfw/include/wl.h +++ b/carlfw/include/wl.h @@ -1,7 +1,7 @@ /* * carl9170 firmware - used by the ar9170 wireless device * - * WLAN + * shared WLAN functions, interfaces and definitions * * Copyright (c) 2000-2005 ZyDAS Technology Corporation * Copyright (c) 2007-2009 Atheros Communications, Inc. @@ -254,10 +254,29 @@ static inline __inline __hot void read_tsf(uint32_t *tsf) tsf[1] = get(AR9170_MAC_REG_TSF_H); } +/* This function will only work on uint32_t-aligned pointers! */ +static inline bool compare_ether_address(const void *_d0, const void *_d1) +{ + const uint32_t *d0 = _d0; + const uint32_t *d1 = _d1; + + /* BUG_ON((unsigned long)d0 & 3 || (unsigned long)d1 & 3)) */ + return !((d0[0] ^ d1[0]) | (unsigned short)(d0[1] ^ d1[1])); +} + void wlan_tx(struct dma_desc *desc); +void wlan_tx_fw(struct carl9170_tx_superdesc *super, fw_desc_callback_t cb); void wlan_timer(void); void handle_wlan(void); +void handle_wlan_rx(void); + +void wlan_send_buffered_tx_status(void); +void wlan_send_buffered_cab(void); +void wlan_send_buffered_ba(void); +void handle_wlan_tx_completion(void); +void wlan_dma_bump(unsigned int qidx); + void wlan_cab_flush_queue(const unsigned int vif); void wlan_modify_beacon(const unsigned int vif, const unsigned int bcn_addr,