zephyr/kernel
Andy Ross 364cbae412 kernel: Make irq_{un}lock() APIs into a global spinlock in SMP mode
In SMP mode, the idea of a single "IRQ lock" goes away.  Long term,
all usage needs to migrate to spinlocks (which become simple IRQ locks
in the uniprocessor case).  For the near term, we can ease the
migration (at the expense of performance) by providing a compatibility
implementation around a single global lock.

Note that one complication is that the older lock was recursive, while
spinlocks will deadlock if you try to lock them twice.  So we
implement a simple "count" semantic to handle multiple locks.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-02-16 10:44:29 -05:00
..
include kernel: Move per-cpu _kernel_t fields into separate struct 2018-02-16 10:44:29 -05:00
posix kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
CMakeLists.txt kernel: Make irq_{un}lock() APIs into a global spinlock in SMP mode 2018-02-16 10:44:29 -05:00
Kconfig kernel, esp32: Add SMP kconfig flag and MP_NUM_CPUS variable 2018-02-16 10:44:29 -05:00
Kconfig.event_logger kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.power_mgmt kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
alert.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
atomic_c.c
compiler_stack_protect.c
device.c kernel: device: Only compare strings if pointer comparison fails 2018-02-15 17:31:59 -08:00
errno.c
idle.c
init.c kernel: Create idle threads and interrupt stacks for SMP processors 2018-02-16 10:44:29 -05:00
int_latency_bench.c
mailbox.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mem_domain.c kernel: mem_domain: Break down assertions 2018-02-14 10:07:10 -05:00
mem_slab.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mempool.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
msg_q.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
mutex.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
pipes.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
poll.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
queue.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
sched.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
sem.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
smp.c kernel: Make irq_{un}lock() APIs into a global spinlock in SMP mode 2018-02-16 10:44:29 -05:00
stack.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
sys_clock.c kernel: Allow late processing of timeouts 2018-01-29 23:18:13 -05:00
system_work_q.c
thread.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
thread_abort.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
timer.c kernel: Add kswap.h header to unbreak cycles 2018-02-16 10:44:29 -05:00
userspace.c dma: add system calls for dma_start/dma_stop 2018-02-12 19:24:25 -05:00
userspace_handler.c userspace: assign thread IDs at build time 2017-11-03 11:29:23 -07:00
version.c
work_q.c work_q: Correctly clear pending flag in delayed work queue, update docs 2018-02-13 18:08:57 -05:00