blob: 46fd1b0b3e25248752f5f6618fd37782e5d45ebc [file] [log] [blame]
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -04001/*
2 * Copyright (c) 2016 Wind River Systems, Inc.
3 * Copyright (c) 2016 Intel Corporation
4 *
David B. Kinderac74d8b2017-01-18 17:01:01 -08005 * SPDX-License-Identifier: Apache-2.0
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -04006 */
7
8/**
9 * @file
10 *
11 * System workqueue.
12 */
13
14#include <kernel.h>
15#include <init.h>
16
Andrew Boieb4ce7a72020-04-26 15:02:31 -070017K_KERNEL_STACK_DEFINE(sys_work_q_stack, CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE);
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -040018
19struct k_work_q k_sys_work_q;
20
Tomasz Bursztykae18fcbb2020-04-30 20:33:38 +020021static int k_sys_work_q_init(const struct device *dev)
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -040022{
23 ARG_UNUSED(dev);
24
25 k_work_q_start(&k_sys_work_q,
26 sys_work_q_stack,
Andrew Boieb4ce7a72020-04-26 15:02:31 -070027 K_KERNEL_STACK_SIZEOF(sys_work_q_stack),
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -040028 CONFIG_SYSTEM_WORKQUEUE_PRIORITY);
Paul Sokolovskyd91c11f2018-10-12 21:14:48 +030029 k_thread_name_set(&k_sys_work_q.thread, "sysworkq");
Benjamin Walsh8cf56bc2016-11-04 15:47:32 -040030
31 return 0;
32}
33
Benjamin Walshe0ca2102016-12-16 18:01:13 -050034SYS_INIT(k_sys_work_q_init, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);