/Zephyr-latest/tests/bluetooth/audio/mocks/src/ |
D | kernel.c | 30 dwork->work.handler = handler; in k_work_init_delayable() 36 struct k_work *work; in k_work_reschedule() local 40 /* Determine whether the work item is queued already. */ in k_work_reschedule() 41 SYS_SLIST_FOR_EACH_CONTAINER(&work_pending, work, node) { in k_work_reschedule() 42 on_list = work == &dwork->work; in k_work_reschedule() 49 dwork->work.handler(&dwork->work); in k_work_reschedule() 51 (void)sys_slist_remove(&work_pending, NULL, &dwork->work.node); in k_work_reschedule() 54 sys_slist_append(&work_pending, &dwork->work.node); in k_work_reschedule() 62 struct k_work *work; in k_work_schedule() local 64 /* Determine whether the work item is queued already. */ in k_work_schedule() [all …]
|
/Zephyr-latest/doc/kernel/services/threads/ |
D | workqueue.rst | 11 work items in a first in, first out manner. Each work item is processed by 12 calling the function specified by the work item. A workqueue is typically 21 * A **queue** of work items that have been added, but not yet processed. 23 * A **thread** that processes the work items in the queue. The priority of the 28 between each submitted work item, to prevent a cooperative workqueue from 33 when no work items are available. 39 * Precise tracking of the status of cancelled work items, so that the 43 * Direct submission of delayable work items to the queue with 46 * The ability to wait until a work item has completed or a queue has been 48 * Finer control of behavior when scheduling a delayable work item, [all …]
|
D | nothread.rst | 15 been limited, there are conditions on what can be expected to work in 18 What Can be Expected to Work 47 What Cannot be Expected to Work 50 Functionality that will not work with :kconfig:option:`CONFIG_MULTITHREADING` 77 expected to work to some degree when :kconfig:option:`CONFIG_MULTITHREADING` is 79 work. 81 Some existing drivers within the listed subsystems do not work when 85 capabilities that were not originally implemented to work with threads 91 The :ref:`flash_api` is expected to work for all SoC flash peripheral 100 The :ref:`gpio_api` is expected to work for all SoC GPIO peripheral [all …]
|
/Zephyr-latest/tests/kernel/workq/work_queue/ |
D | README.txt | 36 - Submitting work 1 from preempt thread 38 - Submitting work 2 from coop thread 39 - Submitting work 3 from preempt thread 40 - Submitting work 4 from coop thread 42 - Submitting work 5 from preempt thread 43 - Submitting work 6 from coop thread 44 - Waiting for work to finish 51 - Submitting work 52 - Waiting for work to finish 53 - Resubmitting work [all …]
|
/Zephyr-latest/kernel/ |
D | work.c | 10 * Second generation work queue implementation 60 /* Lock to protect the internal state of all work items, work queues, 65 /* Invoked by work thread */ 66 static void handle_flush(struct k_work *work) { } in handle_flush() argument 70 struct k_work *work = &flusher->work; in init_flusher() local 72 k_work_init(&flusher->work, handle_flush); in init_flusher() 73 flag_set(&work->flags, K_WORK_FLUSHING_BIT); in init_flusher() 82 * Invoked with work lock held. 85 * @param work the work structure that is to be canceled 88 struct k_work *work) in init_work_cancel() argument [all …]
|
D | poll.c | 570 static void triggered_work_handler(struct k_work *work) in triggered_work_handler() argument 573 CONTAINER_OF(work, struct k_work_poll, work); in triggered_work_handler() 588 /* Drop work ownership and execute real handler. */ in triggered_work_handler() 590 twork->real_handler(work); in triggered_work_handler() 600 k_work_submit_to_queue(twork->workq, &twork->work); in triggered_work_expiration_handler() 604 struct k_work *work); 617 z_work_submit_to_queue(work_q, &twork->work); in signal_triggered_work() 623 static int triggered_work_cancel(struct k_work_poll *work, in triggered_work_cancel() argument 626 /* Check if the work waits for event. */ in triggered_work_cancel() 627 if (work->poller.is_polling && work->poller.mode != MODE_NONE) { in triggered_work_cancel() [all …]
|
/Zephyr-latest/boards/sifive/hifive_unleashed/support/ |
D | openocd_hifive_unleashed.cfg | 20 $_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 21 $_TARGETNAME.1 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 22 $_TARGETNAME.2 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 23 $_TARGETNAME.3 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 24 $_TARGETNAME.4 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1
|
/Zephyr-latest/boards/sifive/hifive_unmatched/support/ |
D | openocd_hifive_unmatched.cfg | 20 $_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 21 $_TARGETNAME.1 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 22 $_TARGETNAME.2 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 23 $_TARGETNAME.3 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1 24 $_TARGETNAME.4 configure -work-area-phys 0x80000000 -work-area-size 0x4000 -work-area-backup 1
|
/Zephyr-latest/tests/kernel/workq/work_queue/src/ |
D | main.c | 28 /* Each work item takes 100ms by default. */ 31 /* In fact, each work item could take up to this value */ 36 * Wait 50ms between work submissions, to ensure co-op and prempt 50 struct k_work_delayable work; member 55 struct k_work_poll work; member 85 struct k_work_poll work; member 93 static void work_handler(struct k_work *work) in work_handler() argument 95 struct k_work_delayable *dwork = k_work_delayable_from_work(work); in work_handler() 97 CONTAINER_OF(dwork, struct delayed_test_item, work); in work_handler() 115 k_work_init_delayable(&delayed_tests[i].work, work_handler); in delayed_test_items_init() [all …]
|
D | start_stop.c | 11 /* In fact, each work item could take up to this value */ 18 static void work_handler(struct k_work *work) in work_handler() argument 20 ARG_UNUSED(work); in work_handler() 27 struct k_work work; in ZTEST() local 36 "Succeeded to stop work queue on non-initialized work queue"); in ZTEST() 43 "Failed to submit work item"); in ZTEST() 46 /* Wait for the work item to complete */ in ZTEST() 50 "Succeeded to stop work queue while it is running & not plugged"); in ZTEST() 51 zassert_true(k_work_queue_drain(&work_q, true) >= 0, "Failed to drain & plug work queue"); in ZTEST() 52 zassert_ok(k_work_queue_stop(&work_q, K_FOREVER), "Failed to stop work queue"); in ZTEST() [all …]
|
/Zephyr-latest/subsys/rtio/ |
D | rtio_workq.c | 7 #include <zephyr/rtio/work.h> 23 static void rtio_work_handler(struct k_p4wq_work *work) in rtio_work_handler() argument 25 struct rtio_work_req *req = CONTAINER_OF(work, in rtio_work_handler() 27 work); in rtio_work_handler() 45 /** Initialize work item before using it as it comes in rtio_work_req_alloc() 48 req->work.thread = NULL; in rtio_work_req_alloc() 49 (void)k_sem_init(&req->work.done_sem, 1, 1); in rtio_work_req_alloc() 67 struct k_p4wq_work *work = &req->work; in rtio_work_req_submit() local 70 /** Link the relevant info so that we can get it on the k_p4wq_work work item. in rtio_work_req_submit() 76 work->handler = rtio_work_handler; in rtio_work_req_submit() [all …]
|
D | Kconfig.workq | 5 bool "RTIO Work-queues service to process Sync operations" 9 Enable RTIO Work-queues to allow processing synchronous operations 15 int "Medium Thread priority of RTIO Work-queues" 23 int "Number of threads to use for processing work-items" 27 int "Pool of work items to use with the RTIO Work-queues" 30 Configure the Pool of work items appropriately to your
|
/Zephyr-latest/include/zephyr/rtio/ |
D | work.h | 20 * @brief Callback API to execute work operation. 27 * @brief RTIO Work request. 29 * This RTIO Work request to perform a work operation decoupled 30 * from its submission in the RTIO work-queues. 33 /** Work item used to submit unit of work. */ 34 struct k_p4wq_work work; member 48 * @brief Allocate item to perform an RTIO work request. 59 * @brief Submit RTIO work request. 63 * @param handler Callback to handler where work operation is performed.
|
/Zephyr-latest/ |
D | LICENSE | 35 "Work" shall mean the work of authorship, whether in Source or 37 copyright notice that is included in or attached to the work 40 "Derivative Works" shall mean any work, whether in Source or Object 41 form, that is based on (or derived from) the Work and for which the 43 represent, as a whole, an original work of authorship. For the purposes 46 the Work and Derivative Works thereof. 48 "Contribution" shall mean any work of authorship, including 49 the original version of the Work and any modifications or additions 50 to that Work or Derivative Works thereof, that is intentionally 51 submitted to Licensor for inclusion in the Work by the copyright owner [all …]
|
/Zephyr-latest/tests/kernel/workq/user_work/src/ |
D | main.c | 24 static ZTEST_BMEM struct k_work_user work[NUM_OF_WORK]; variable 52 * -EBUSY: if the work item was already in some workqueue and 64 k_work_user_init(&work[0], common_work_handler); in test_k_work_user_submit_to_queue_fail() 65 k_work_user_init(&work[1], common_work_handler); in test_k_work_user_submit_to_queue_fail() 67 /* TESTPOINT: When a work item be added to a workqueue, its flag will in test_k_work_user_submit_to_queue_fail() 68 * be in pending state, before the work item be processed, it cannot in test_k_work_user_submit_to_queue_fail() 71 k_work_user_submit_to_queue(&user_workq, &work[0]); in test_k_work_user_submit_to_queue_fail() 72 zassert_true(k_work_user_is_pending(&work[0])); in test_k_work_user_submit_to_queue_fail() 73 k_work_user_submit_to_queue(&user_workq, &work[0]); in test_k_work_user_submit_to_queue_fail() 75 /* Test the work item's callback function can only be invoked once */ in test_k_work_user_submit_to_queue_fail() [all …]
|
/Zephyr-latest/modules/nrf_wifi/os/ |
D | timer.c | 21 static void timer_expiry_function(struct k_work *work) in timer_expiry_function() argument 25 timer = (struct timer_list *)CONTAINER_OF(work, struct timer_list, work.work); in timer_expiry_function() 32 k_work_init_delayable(&timer->work, timer_expiry_function); in init_timer() 37 k_work_schedule(&timer->work, K_MSEC(msec)); in mod_timer() 42 k_work_cancel_delayable(&timer->work); in del_timer_sync()
|
D | work.h | 8 * @brief Header containing work specific declarations for the 27 struct k_work work; member 35 void work_init(struct zep_work_item *work, void (*callback)(unsigned long callbk_data), 38 void work_schedule(struct zep_work_item *work); 40 void work_kill(struct zep_work_item *work); 42 void work_free(struct zep_work_item *work);
|
D | work.c | 8 * @brief File containing work specific definitions for the 17 #include "work.h" 53 void workqueue_callback(struct k_work *work) in workqueue_callback() argument 55 struct zep_work_item *item = CONTAINER_OF(work, struct zep_work_item, work); in workqueue_callback() 65 LOG_ERR("%s: Reached maximum work items", __func__); in work_alloc() 129 k_work_init(&item->work, workqueue_callback); in work_init() 135 k_work_submit_to_queue(&zep_wifi_intr_q, &item->work); in work_schedule() 137 k_work_submit_to_queue(&zep_wifi_bh_q, &item->work); in work_schedule() 141 k_work_submit_to_queue(&zep_wifi_tx_done_q, &item->work); in work_schedule() 146 k_work_submit_to_queue(&zep_wifi_rx_q, &item->work); in work_schedule() [all …]
|
/Zephyr-latest/samples/subsys/zbus/work_queue/ |
D | README.rst | 1 .. zephyr:code-sample:: zbus-work-queue 2 :name: Work queue 5 Use a work queue to process zbus messages in various ways. 9 …ng a listener callback. It can schedule a job, pushing that to the system work queue. Last, it can… 31 I: Sensor msg processed by WORK QUEUE handler dh1: temp = 10, press = 1, humidity = 100 32 I: Sensor msg processed by WORK QUEUE handler dh2: temp = 10, press = 1, humidity = 100 33 I: Sensor msg processed by WORK QUEUE handler dh3: temp = 10, press = 1, humidity = 100 40 I: Sensor msg processed by WORK QUEUE handler dh1: temp = 20, press = 2, humidity = 200 41 I: Sensor msg processed by WORK QUEUE handler dh2: temp = 20, press = 2, humidity = 200 42 I: Sensor msg processed by WORK QUEUE handler dh3: temp = 20, press = 2, humidity = 200 [all …]
|
/Zephyr-latest/include/zephyr/tracing/ |
D | tracing.h | 310 * @brief Work Tracing APIs 311 * @defgroup subsys_tracing_apis_work Work Tracing APIs 316 * @brief Trace initialisation of a Work structure 317 * @param work Work structure 319 #define sys_port_trace_k_work_init(work) argument 322 * @brief Trace submit work to work queue call entry 323 * @param queue Work queue structure 324 * @param work Work structure 326 #define sys_port_trace_k_work_submit_to_queue_enter(queue, work) argument 329 * @brief Trace submit work to work queue call exit [all …]
|
/Zephyr-latest/include/zephyr/sys/ |
D | p4wq.h | 12 /* Zephyr Pooled Parallel Preemptible Priority-based Work Queues */ 19 typedef void (*k_p4wq_handler_t)(struct k_p4wq_work *work); 22 * @brief P4 Queue Work Item 24 * User-populated struct representing a single work item. The 53 * Kernel pooled parallel preemptible priority-based work queue 58 /* Pending threads waiting for work items 69 /* Work items waiting for processing */ 72 /* Work items in progress */ 89 * @brief Statically initialize a P4 Work Queue 96 * @param n_threads Number of threads in the work queue pool [all …]
|
/Zephyr-latest/tests/kernel/interrupt/src/ |
D | interrupt_offload.c | 46 struct k_work *work; member 52 static void entry_offload_job(struct k_work *work) in entry_offload_job() argument 68 /* offload work to work queue */ 71 struct k_work *work = ((struct interrupt_param *)param)->work; in isr_handler() local 73 zassert_not_null(work, "kwork should not be NULL"); in isr_handler() 77 /* If the work is busy, we don't submit it. */ in isr_handler() 78 if (!k_work_busy_get(work)) { in isr_handler() 79 zassert_equal(k_work_submit_to_queue(&wq_queue, work), in isr_handler() 125 static void trigger_offload_interrupt(const bool real_irq, void *work) in trigger_offload_interrupt() argument 127 irq_param.work = work; in trigger_offload_interrupt() [all …]
|
/Zephyr-latest/drivers/sensor/nuvoton/nuvoton_adc_cmp_npcx/ |
D | Kconfig | 19 bool "NPCX ADC threshold detection uses internal work queue" 21 Threshold detection ISR utilizes system work queue for calling 22 trigger handlers; set this option to use dedicated work queue instead. 27 int "Nuvoton NPCX ADC trheshold detection work queue priority" 34 int "Nuvoton NPCX ADC trheshold detection work queue stack size"
|
/Zephyr-latest/doc/connectivity/bluetooth/api/mesh/ |
D | core.rst | 77 the change needs to be stored persistently, the stack schedules a work item. 78 The delay between scheduling the work item and submitting it to the workqueue 80 storing of data is scheduled, it can not be rescheduled until the work item is 83 When IV index, Sequence Number or CDB configuration have to be stored, the work 84 item is submitted to the workqueue without the delay. If the work item was 87 The Replay Protection List uses the same work item to store RPL entries. If 92 :kconfig:option:`CONFIG_BT_MESH_RPL_STORE_TIMEOUT`, and the work item was 93 scheduled by the Replay Protection List, the work item will be rescheduled. 95 When the work item is running, the stack will store all pending configuration, 98 Work item execution context [all …]
|
/Zephyr-latest/drivers/sensor/ite/ite_vcmp_it8xxx2/ |
D | Kconfig | 25 bool "ITE it8xxx2 voltage comparator threshold detection uses internal work queue" 27 Threshold detection ISR utilizes system work queue for calling 28 trigger handlers; set this option to use dedicated work queue instead. 33 int "ITE it8xxx2 voltage comparator threshold detection work queue priority" 40 int "ITE it8xxx2 voltage comparator threshold detection work queue stack size"
|