zephyr/include
Andy Ross 7367b84f8e kernel/spinlock: Augment runtime validation
There was an existing validation layer in the spinlock implementation,
but it was only enabled when both SMP and CONFIG_DEBUG were enabled,
which meant that nothing was using it.  Replace it with a more
elaborate framework that ensures that every lock taken is not already
taken by the current CPU and is released on the same CPU by the same
thread.

This catches the much more common goof of locking a spinlock
recursively, which would "work" on uniprocessor setups but have the
side effect of releasing the lock prematurely at the end of the inner
lock.  We've done that in two spots already.

Note that this patch causes k_spinlock_t to have non-zero size on
builds with CONFIG_ASSERT, so expect a little data and code size
increase.  Worth it IMHO.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-01-30 13:29:42 -08:00
..
app_memory app_shmem: delete parallel API for domains 2019-01-29 11:11:49 -08:00
arch linker: x86: add orphan linker sections 2019-01-26 09:21:17 -05:00
audio
bluetooth Bluetooth: Add identifiers for Bluetooth 5.1 2019-01-29 16:00:57 +02:00
cmsis_rtos_v1
cmsis_rtos_v2 CMSIS RTOS V2: Introduce CMSIS RTOS V2 API header file 2018-12-20 12:23:22 +01:00
crypto
debug include: remove unused header file gdb_server.h 2019-01-22 07:45:22 -05:00
dfu
display doc: add missing cfb API 2019-01-03 12:38:28 -05:00
drivers display: Remove stale ILI9340 header file 2019-01-20 07:51:03 -05:00
dt-bindings interrupt_controller: RV32M1: add intmux driver / DT bindings 2019-01-25 11:59:46 -05:00
fs
linker linker: x86: add orphan linker sections 2019-01-26 09:21:17 -05:00
logging logging: Extend log_output to support raw data 2019-01-29 17:24:37 +01:00
mgmt smp: shell: Add support for SMP in new shell. 2019-01-15 17:19:20 -05:00
misc logging: Replace custom macros with generic ones from util.h 2019-01-24 08:40:01 -05:00
net net: mqtt: Remove legacy MQTT headers 2019-01-30 16:32:21 +02:00
nvs doc: group file system/storage APIs 2018-12-10 20:38:09 -05:00
posix lib: posix: fs: Convert to use generic fdtable 2018-11-04 22:04:11 +01:00
random
settings doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
shell shell: safe print from different threads 2019-01-30 13:05:56 +01:00
toolchain arch/x86_64: New architecture added 2019-01-11 15:18:52 -05:00
usb usb: hid: macro for report descriptor 2019-01-10 08:58:31 -05:00
zephyr
adc.h include: adc: Fix async ADC API documentation 2018-12-04 15:52:18 -05:00
aio_comparator.h
atomic.h atomic: Add atomic_set_bit_to() API 2019-01-25 17:35:44 -05:00
base64.h
cache.h
can.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
clock_control.h
console.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
counter.h
crc8.h crc: deprecate old headers and issue warning when used 2018-12-04 08:52:46 -06:00
crc16.h crc: move all crc APIs into one header 2018-12-04 08:52:46 -06:00
crc32.h crc: deprecate old headers and issue warning when used 2018-12-04 08:52:46 -06:00
crc.h crc: Move crc7 into CRC single header 2018-12-30 16:24:10 -05:00
device.h drivers: Modify drivers to use DEVICE_AND_API_INIT() 2019-01-15 10:39:34 -08:00
disk_access.h
display.h display: Added double buffer screen info to display API 2019-01-07 16:05:35 -05:00
dma.h c++: convert implicit conversion to explicit ones in header files 2018-11-16 15:18:36 -05:00
entropy.h
exc_handle.h kernel: Fix type of Z_EXC_HANDLE 2018-11-16 09:18:27 -08:00
fcb.h
flash_map.h
flash.h
fs.h doc: group file system/storage APIs 2018-12-10 20:38:09 -05:00
generated_dts_board.h cmake: Fix the generation of fixup files 2019-01-28 12:18:38 -05:00
gna.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
gpio.h api/gpio: Controller may not support GPIO_INT at all 2019-01-25 11:24:29 -05:00
i2c.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
i2s.h i2s: add i2s_configure() as a system call 2018-11-15 16:20:36 -05:00
init.h drivers: Modify drivers to use DEVICE_AND_API_INIT() 2019-01-15 10:39:34 -08:00
ipm.h
irq_nextlevel.h
irq_offload.h
irq.h kernel: add dynamic interrupt API 2018-11-10 11:01:22 -05:00
json.h
kernel_includes.h
kernel_version.h doc: add kernel version API to doxygen 2018-12-08 17:24:53 -05:00
kernel.h doc: move usermode API documentation 2019-01-24 09:16:03 -05:00
led_strip.h
led.h
pinmux.h
power.h power: rename api sys_soc -> sys_ 2018-12-28 16:16:28 -05:00
ptp_clock.h
pwm.h
ring_buffer.h
rtc.h
sched_priq.h
sensor.h C++ : Fix error: template with C linkage 2019-01-25 11:19:56 -05:00
shared_irq.h
spi.h docs: spi.h: removed dev doxygen comment from struct spi_config 2018-12-17 08:19:21 -06:00
spinlock.h kernel/spinlock: Augment runtime validation 2019-01-30 13:29:42 -08:00
stats.h include: stats.h: Packed attribute was incorrect. 2018-12-07 10:32:41 -05:00
sw_isr_table.h arch: common: add function for updating IRQ table 2018-11-10 11:01:22 -05:00
sys_clock.h sys_clock: Change function signature 2018-12-11 14:37:10 -08:00
sys_io.h
syscall.h syscall: Return bool in a boolean function 2018-11-30 08:05:11 -08:00
toolchain.h
tracing.h debug: tracing: Add CPU stats module 2018-11-30 11:01:32 -08:00
tty.h doc: regular misspelling scan 2018-12-26 13:27:14 -05:00
uart.h api: uart: Add new asynchronous UART API. 2019-01-22 18:54:12 +01:00
watchdog.h watchdog: put in correct doxygen group 2018-12-10 20:38:09 -05:00
zephyr.h