xref: /linux/drivers/net/wireless/intel/iwlwifi/mld/notif.h (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (C) 2024-2025 Intel Corporation
4  */
5 #ifndef __iwl_mld_notif_h__
6 #define __iwl_mld_notif_h__
7 
8 struct iwl_mld;
9 
10 void iwl_mld_rx(struct iwl_op_mode *op_mode, struct napi_struct *napi,
11 		struct iwl_rx_cmd_buffer *rxb);
12 
13 void iwl_mld_rx_rss(struct iwl_op_mode *op_mode, struct napi_struct *napi,
14 		    struct iwl_rx_cmd_buffer *rxb, unsigned int queue);
15 
16 void iwl_mld_async_handlers_wk(struct wiphy *wiphy, struct wiphy_work *wk);
17 
18 void iwl_mld_purge_async_handlers_list(struct iwl_mld *mld);
19 
20 enum iwl_mld_object_type {
21 	IWL_MLD_OBJECT_TYPE_NONE,
22 	IWL_MLD_OBJECT_TYPE_LINK,
23 	IWL_MLD_OBJECT_TYPE_STA,
24 	IWL_MLD_OBJECT_TYPE_VIF,
25 	IWL_MLD_OBJECT_TYPE_ROC,
26 	IWL_MLD_OBJECT_TYPE_SCAN,
27 	IWL_MLD_OBJECT_TYPE_FTM_REQ,
28 };
29 
30 void iwl_mld_cancel_notifications_of_object(struct iwl_mld *mld,
31 					    enum iwl_mld_object_type obj_type,
32 					    u32 obj_id);
33 void iwl_mld_delete_handlers(struct iwl_mld *mld, const u16 *cmds, int n_cmds);
34 
35 #endif /* __iwl_mld_notif_h__ */
36