blob: 57759fa5924e630742cf1f4e4fe1356528c422d5 [file] [log] [blame]
/*
* 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__ */