iwlwifi: allow a default callback for ASYNC host commands
[pandora-kernel.git] / drivers / net / wireless / iwlwifi / iwl-core.h
index 33bef1f..ce7f90e 100644 (file)
 #ifndef __iwl_core_h__
 #define __iwl_core_h__
 
+/************************
+ * forward declarations *
+ ************************/
+struct iwl_host_cmd;
+struct iwl_cmd;
+
+
 #define IWLWIFI_VERSION "1.2.26k"
 #define DRV_COPYRIGHT  "Copyright(c) 2003-2008 Intel Corporation"
 
 #define IWL_SKU_A       0x2
 #define IWL_SKU_N       0x8
 
+struct iwl_hcmd_utils_ops {
+       int (*enqueue_hcmd)(struct iwl_priv *priv, struct iwl_host_cmd *cmd);
+};
+
 struct iwl_lib_ops {
+       /* iwlwifi driver (priv) init */
+       int (*init_drv)(struct iwl_priv *priv);
        /* eeprom operations (as defined in iwl-eeprom.h) */
        struct iwl_eeprom_ops eeprom_ops;
 };
 
 struct iwl_ops {
        const struct iwl_lib_ops *lib;
+       const struct iwl_hcmd_utils_ops *utils;
 };
 
 struct iwl_mod_params {
@@ -110,4 +124,26 @@ struct iwl_cfg {
 struct ieee80211_hw *iwl_alloc_all(struct iwl_cfg *cfg,
                struct ieee80211_ops *hw_ops);
 
+void iwlcore_clear_stations_table(struct iwl_priv *priv);
+void iwlcore_reset_qos(struct iwl_priv *priv);
+int iwlcore_set_rxon_channel(struct iwl_priv *priv,
+                               enum ieee80211_band band,
+                               u16 channel);
+
+int iwl_setup(struct iwl_priv *priv);
+
+/*****************************************************
+ *   S e n d i n g     H o s t     C o m m a n d s   *
+ *****************************************************/
+
+const char *get_cmd_string(u8 cmd);
+int iwl_send_cmd_sync(struct iwl_priv *priv, struct iwl_host_cmd *cmd);
+int iwl_send_cmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd);
+int iwl_send_cmd_pdu(struct iwl_priv *priv, u8 id, u16 len, const void *data);
+int iwl_send_cmd_pdu_async(struct iwl_priv *priv, u8 id, u16 len,
+                          const void *data,
+                          int (*callback)(struct iwl_priv *priv,
+                                          struct iwl_cmd *cmd,
+                                          struct sk_buff *skb));
+
 #endif /* __iwl_core_h__ */