carl9170 firmware: extract tx and rx code from wlan.c into separate files
[carl9170fw.git] / carlfw / include / wl.h
index 9af4fdb278c1c23efc5556917961e9e7ef9eaeac..50fee61221ea579d2f3778b399b17e79a7be6792 100644 (file)
@@ -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,