Lines Matching +full:start +full:- +full:from +full:- +full:bottom

43 * A **start delay**, which specifies how long the kernel should wait before
66 Specifying a start delay of :c:macro:`K_NO_WAIT` instructs the kernel
67 to start thread execution immediately. Alternatively, the kernel can be
69 value -- for example, to allow device hardware used by the thread
72 The kernel allows a delayed start to be canceled before the thread begins
74 started. A thread whose delayed start was successfully canceled must be
75 re-spawned before it can be used.
81 synchronously end its execution by returning from its entry point function.
91 thread self-exits, or the target thread aborts (either due to a
96 re-used for any purpose, including spawning a new thread. Note that
102 and not rely on signaling from within application logic.
125 A thread can be prevented from executing for an indefinite period of time
134 A thread can prevent itself from executing for a specified period of time
135 using :c:func:`k_sleep`. However, this is different from suspending
176 - There may need to be additional memory reserved for memory management
178 - If guard-based stack overflow detection is enabled, a small write-protected
181 - If userspace is enabled, a separate fixed-size privilege elevation stack must
183 - If userspace is enabled, the thread's stack buffer must be appropriately
195 Kernel-only Stacks
207 Attempts from user mode to use stacks declared in this way will result in
230 non-negative.
233 over thread B of priority 7; likewise thread C of priority -2 has higher
243 * A :dfn:`preemptible thread` has a non-negative priority value.
254 The scheduler does not make heuristic decisions to re-prioritize threads.
263 * cooperative threads: (-:kconfig:option:`CONFIG_NUM_COOP_PRIORITIES`) to -1
264 * preemptive threads: 0 to (:kconfig:option:`CONFIG_NUM_PREEMPT_PRIORITIES` - 1)
270 results in the ranges -5 to -1 and 0 to 9, respectively.
274 Meta-IRQ Priorities
279 end of the priority space: meta-IRQ threads. These are scheduled
281 to preempt all other threads (and other meta-IRQ threads) at lower
283 scheduler lock. Meta-IRQ threads are still threads, however,
286 This behavior makes the act of unblocking a meta-IRQ thread (by any
289 priority thread, or an ARM-like "pended IRQ" when done from true
291 implement interrupt "bottom half" processing and/or "tasklet" features
295 Unlike similar features in other OSes, meta-IRQ threads are true
297 not the per-CPU interrupt stack. Design work to enable the use of the
303 used only with great care from application code. These are not simply
330 This x86-specific option indicate that the thread uses the CPU's
361 Every thread has a 32-bit :dfn:`custom data` area, accessible only by
384 .. code-block:: c
402 Use thread custom data to allow a routine to access thread-specific information,
419 - The original requested stack size passed to
422 - For a stack object defined with the ``K_THREAD_STACK`` family of
425 - For a stack object defined with the ``K_KERNEL_STACK`` family of
434 .. code-block:: c
456 .. code-block:: c
469 :c:type:`k_timeout_t` value, so :c:macro:`K_NO_WAIT` means to start the
474 ---------------------
503 may perform a one-way transition to user mode using the
504 :c:func:`k_thread_user_mode_enter` API. This is a one-way operation which
506 as non-essential.
511 A thread terminates itself by returning from its entry point function.
515 .. code-block:: c
522 return; /* thread terminates from mid-entry point function */
531 mark the thread and stack objects as uninitialized so that they may be re-used.
547 .. code-block:: c