zmk/app/src/workqueue.c
2024-02-09 14:32:46 -08:00

27 lines
778 B
C

/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zmk/workqueue.h>
K_THREAD_STACK_DEFINE(lowprio_q_stack, CONFIG_ZMK_LOW_PRIORITY_THREAD_STACK_SIZE);
static struct k_work_q lowprio_work_q;
struct k_work_q *zmk_workqueue_lowprio_work_q(void) {
return &lowprio_work_q;
}
static int workqueue_init(void) {
static const struct k_work_queue_config queue_config = {.name = "Low Priority Work Queue"};
k_work_queue_start(&lowprio_work_q, lowprio_q_stack, K_THREAD_STACK_SIZEOF(lowprio_q_stack),
CONFIG_ZMK_LOW_PRIORITY_THREAD_PRIORITY, &queue_config);
return 0;
}
SYS_INIT(workqueue_init, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);