/* * Copyright (c) 2016 Wind River Systems, Inc. * Copyright (c) 2016 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * * System workqueue. */ #include #include static K_KERNEL_STACK_DEFINE(sys_work_q_stack, CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE); struct k_work_q k_sys_work_q; static int k_sys_work_q_init(void) { struct k_work_queue_config cfg = { .name = "sysworkq", .no_yield = IS_ENABLED(CONFIG_SYSTEM_WORKQUEUE_NO_YIELD), .essential = true, }; k_work_queue_start(&k_sys_work_q, sys_work_q_stack, K_KERNEL_STACK_SIZEOF(sys_work_q_stack), CONFIG_SYSTEM_WORKQUEUE_PRIORITY, &cfg); return 0; } SYS_INIT(k_sys_work_q_init, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);