zephyr/include/misc
Peter A. Bigot d40b8ce1fb sys: dlist: Add sys_dnode_is_linked
The original implementation allows a list to be corrupted by list
operations on the removed node.  Existing code attempts to avoid this by
using external state to determine whether a node is in a list, but this
is fragile and fails when the state that holds the flag value is changed
after the node is removed, e.g. in preparation for re-using the node.

Follow Linux in invalidating the link pointers in a removed node.  Add
API so that detection of particpation in a list is available at the node
abstraction.

This solution relies on the following steady-state invariants:
* A node (as opposed to a list) will never be adjacent to itself in a
  list;
* The next and prev pointers of a node are always either both null or
  both non-null.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2019-01-23 20:46:49 +01:00
..
__assert.h include: __assert: Fix output formatting of __ASSERT_NO_MSG() 2018-12-05 11:21:51 +01:00
byteorder.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
dlist.h sys: dlist: Add sys_dnode_is_linked 2019-01-23 20:46:49 +01:00
errno_private.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
fdtable.h lib: fdtable: Change ioctl vmethod signature to take va_list 2018-12-14 13:21:31 +02:00
gcov.h tests: coverage: Add Gcov support. 2019-01-16 06:12:33 -05:00
libc-hooks.h libc: newlib: libc-hooks: Consistently use const void* as arg to write 2018-10-22 15:01:12 +01:00
list_gen.h include: misc: list_gen: Fix possible undefined behavior 2018-12-07 09:06:34 -05:00
mempool_base.h misc: mempool: Using distinct macro identifiers 2018-10-31 19:43:47 -04:00
mempool.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
printk.h printk: don't print incorrect 64-bit integers 2019-01-18 08:23:15 -08:00
rb.h misc: rb: Make an evaluation a boolean expression 2018-11-30 08:05:11 -08:00
reboot.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
ring_buffer.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
sflist.h include: misc: list_gen: Fix possible undefined behavior 2018-12-07 09:06:34 -05:00
slist.h include: misc: list_gen: Fix possible undefined behavior 2018-12-07 09:06:34 -05:00
stack.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
util.h include: misc: util: Added new util macros FOR_EACH_FIXED_ARG 2019-01-03 12:35:14 -08:00