1 /** @file
2  * @brief Modem workqueue header file.
3  */
4 
5 /*
6  * Copyright (c) 2025 Embeint Pty Ltd
7  *
8  * SPDX-License-Identifier: Apache-2.0
9  */
10 
11 #ifndef ZEPHYR_INCLUDE_MODEM_WORKQUEUE_H_
12 #define ZEPHYR_INCLUDE_MODEM_WORKQUEUE_H_
13 
14 #include <zephyr/kernel.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #ifdef CONFIG_MODEM_DEDICATED_WORKQUEUE
21 
22 int modem_work_submit(struct k_work *work);
23 int modem_work_schedule(struct k_work_delayable *dwork, k_timeout_t delay);
24 int modem_work_reschedule(struct k_work_delayable *dwork, k_timeout_t delay);
25 
26 #else
27 
28 static inline int modem_work_submit(struct k_work *work)
29 {
30 	return k_work_submit(work);
31 }
32 
33 static inline int modem_work_schedule(struct k_work_delayable *dwork, k_timeout_t delay)
34 {
35 	return k_work_schedule(dwork, delay);
36 }
37 
38 static inline int modem_work_reschedule(struct k_work_delayable *dwork, k_timeout_t delay)
39 {
40 	return k_work_reschedule(dwork, delay);
41 }
42 
43 #endif /* CONFIG_MODEM_DEDICATED_WORKQUEUE */
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 
49 #endif /* ZEPHYR_INCLUDE_MODEM_WORKQUEUE_H_ */
50