zephyr/kernel
Andy Ross 7cdf40541b kernel/sched: Eliminate PRESTART thread state
Traditionally threads have been initialized with a PRESTART flag set,
which gets cleared when the thread runs for the first time via either
its timeout or the k_thread_start() API.

But if you think about it, this is no different, semantically, than
SUSPENDED: the thread is prevented from running until the flag is
cleared.

So unify the two.  Start threads in the SUSPENDED state, point
everyone looking at the PRESTART bit to the SUSPENDED flag, and make
k_thread_start() be a synonym for k_thread_resume().

There is some mild code size savings from the eliminated duplication,
but the real win here is that we make space in the thread flags byte,
which had run out.

Signed-off-by: Andy Ross <andyross@google.com>
2024-11-27 10:38:05 -05:00
..
include kernel/sched: Eliminate PRESTART thread state 2024-11-27 10:38:05 -05:00
paging kernel: mm: rename z_num_pagefaults_get to k_mem_num_* 2024-06-12 21:13:26 -04:00
atomic_c.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
banner.c kernel: banner: Add option to clear screen on boot 2024-06-13 20:30:14 -04:00
busy_wait.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
CMakeLists.txt lib c/cpp: Move .ctor .init_array handling from C++ to kernel 2024-06-25 19:14:37 -04:00
compiler_stack_protect.c arch: kernel: lib: toolchain: Standardize TLS keyword 2024-09-23 10:01:48 +02:00
condvar.c kernel: Apply 'unlikely' attribute 2024-10-15 04:06:32 -04:00
cpu_mask.c kernel: Simplify k_thread_cpu_pin() 2024-09-20 09:02:38 +02:00
device.c device: Optimize device_get_binding search efficiency 2024-11-27 08:18:30 +01:00
dynamic.c kernel: fix typo 2024-07-08 15:51:37 +02:00
dynamic_disabled.c kernel: dynamic: declare dynamic stubs when disabled 2023-07-24 12:59:43 -04:00
errno.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
events.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
fatal.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
float.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
futex.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
idle.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
init.c kernel/sched: Eliminate PRESTART thread state 2024-11-27 10:38:05 -05:00
init_static.c lib c/cpp: Move .ctor .init_array handling from C++ to kernel 2024-06-25 19:14:37 -04:00
ipi.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
irq_offload.c kernel: add closing comments to config endifs 2024-03-25 18:03:31 -04:00
Kconfig arch: deprecate _current 2024-11-23 20:12:24 -05:00
Kconfig.device libc: common: Fix init hang issue 2024-06-26 13:07:02 -04:00
Kconfig.init init: support per-core init hook 2024-11-16 14:04:25 -05:00
Kconfig.mem_domain kconfig: replace known integer constants with variables 2024-07-27 20:49:15 +03:00
Kconfig.obj_core kernel: reorg Kconfigs and split them 2024-03-06 19:27:28 -05:00
Kconfig.smp kernel: remove CONFIG_MP_NUM_CPUS 2024-09-19 18:28:37 +01:00
Kconfig.vm kernel: mmu: support for on-demand mappings 2024-08-26 17:25:41 -04:00
kheap.c tracing: add k_realloc trace 2024-05-28 17:55:12 +02:00
mailbox.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
main_weak.c kernel: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
mem_domain.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
mem_slab.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
mempool.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
mmu.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
msg_q.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
mutex.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
nothread.c kernel: fix k_sleep in no multi-threading mode 2024-11-16 14:07:41 -05:00
obj_core.c kernel: reduce k_spin_unlock calls using if-else if-else structure 2024-07-27 20:48:07 +03:00
pipes.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
poll.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
priority_queues.c kernel: priority queues: declare as static inlines 2024-04-22 16:40:11 -04:00
queue.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
sched.c kernel/sched: Eliminate PRESTART thread state 2024-11-27 10:38:05 -05:00
sem.c kernel: Apply 'unlikely' attribute 2024-10-15 04:06:32 -04:00
smp.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
spinlock_validate.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
stack.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
system_work_q.c kernel: system_work_q: Mark queue thread as essential 2024-04-25 21:40:24 +02:00
thread.c kernel/sched: Eliminate PRESTART thread state 2024-11-27 10:38:05 -05:00
thread_monitor.c style: kernel: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
timeout.c kernel: fix typo 2024-07-08 15:51:37 +02:00
timer.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
timeslicing.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
usage.c kernel: Remove duplicate execution_cycles write and improve docstring 2024-04-28 13:04:20 -04:00
userspace.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
userspace_handler.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
version.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
work.c arch: deprecate _current 2024-11-23 20:12:24 -05:00
xip.c arch: common: fix copy for ramfunc region during XIP init 2024-11-06 10:19:08 -08:00