/* * Copyright (c) 2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ /** * @brief Header containing work specific declarations for the * Zephyr OS layer of the Wi-Fi driver. */ #ifndef __WORK_H__ #define __WORK_H__ extern struct k_work_q zep_wifi_bh_q; enum zep_work_type { ZEP_WORK_TYPE_BH, ZEP_WORK_TYPE_IRQ, ZEP_WORK_TYPE_TX_DONE, ZEP_WORK_TYPE_RX, }; struct zep_work_item { bool in_use; struct k_work work; unsigned long data; void (*callback)(unsigned long data); enum zep_work_type type; }; struct zep_work_item *work_alloc(enum zep_work_type); void work_init(struct zep_work_item *work, void (*callback)(unsigned long callbk_data), unsigned long data); void work_schedule(struct zep_work_item *work); void work_kill(struct zep_work_item *work); void work_free(struct zep_work_item *work); #endif /* __WORK_H__ */