1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/sys
bors[bot] 1710650256
Merge #19601
19601: SUIT: Prepared manifests r=chrysn a=chrysn

### Contribution description

While SUIT can generally be used already with manifests that are "dropped into memory" (by any mechanism), the convenient SUIT worker thread mechanism so far could not be used with it.

This adds the suit_worker_try_prepare / suit_worker_trigger_prepared
pair for using the SUIT worker, and breaks suit_handle_manifest_buf out
of suit_handle_url (where the latter now calls the former).

#### By-catch

As part of factoring out reaping of the zombie worker thread, a locking
error that deadlocks the SUIT worker in case the race between the mutex
being unlocked and the thread being reaped hits the necessary handling
code is fixed (and mutex_unlock is called in the error path).

### Testing procedure

SUIT tests should pass.

https://github.com/RIOT-OS/RIOT/pull/19659 provides a demo of how the new API is used.

### Issues/PRs references

I think that the currently employed mechanism of having a resource to which a URL with the manifest gets posted is contrary to the design goals of SUIT -- the signed manifest should be what justifies the device to spend resources (eg. get data from a server), not a URI that is just *not* signed.

This PR makes it easier to implement a resource to which the manifest can be POSTed, rather than a CoAP URI that represents the manifest, as is proposed (but not mature) in 
https://github.com/RIOT-OS/RIOT/pull/19659.

[edit: Adjusted to reflect decisions made during review]

Co-authored-by: chrysn <chrysn@fsfe.org>
2023-05-27 19:14:05 +00:00
..
analog_util sys/analog_util/dac_util: fix truncation bug 2022-12-09 13:58:12 -05:00
app_metadata
arduino codespell: fix remaining issues 2022-09-16 14:00:35 +02:00
auto_init Merge #18620 #19296 #19504 #19506 2023-04-25 15:46:11 +00:00
base64
benchmark sys/benchmark: fix divide by zero if runs < 1000 2022-02-08 12:52:48 +01:00
bhp sys/bhp_msg: add IPC based Bottom Half Processor 2022-08-19 12:01:30 +02:00
bitfield sys/bitfield: don't set unrelated bits in bf_{set, clear}_all() 2023-03-17 00:08:10 +01:00
bloom
bus sys/bus: model Kconfig 2022-03-11 09:24:12 +01:00
can core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
cb_mux
checksum sys/checksum: add CRC-16 implementation without lookup table 2022-10-06 17:43:20 +02:00
chunked_ringbuffer sys/chunked_ringbuffer: model in Kconfig 2022-03-04 09:35:50 +01:00
clif sys: add Kconfig support for clif 2023-05-19 15:03:42 +02:00
coding sys/coding: add missing Kconfig 2023-05-19 15:09:54 +02:00
color
congure congure_abe: initial import of TCP ABE congestion control 2022-10-17 16:44:39 +02:00
cpp11-compat sys /cpp11-compat: remove pseudo anonymous namespaces 2023-04-18 16:30:43 +02:00
cpp_new_delete sys: remove -std=c++11 2022-01-13 17:50:59 +01:00
crypto sys/crypto: make AES_KEY struct private 2023-02-20 18:22:00 +01:00
cxx_ctor_guards doc: Improve C++ documentation 2021-12-15 18:58:23 +01:00
debug_irq_disable cpu/cortexm_common: measure time spent with IRQ disabled 2022-11-24 21:27:20 +01:00
div
ecc sys/ecc: model in Kconfig 2023-05-24 09:53:33 +02:00
eepreg
embunit
entropy_source
event sys/event: ensure that a queue has a waiter before waiting for flags 2022-04-14 17:10:24 +02:00
evtimer sys/evtimer: model in Kconfig 2023-05-24 09:53:34 +02:00
fido2 sys: fix remaining broken paths to tests 2023-05-13 19:08:39 +02:00
fmt Merge #19027 2023-02-17 20:09:53 +00:00
frac
fs vfs: drop unused abs_path parameter 2022-09-29 22:01:37 +02:00
fuzzing fuzzing: Add uri_parser fuzzer setup 2022-12-19 13:03:45 +01:00
hashes core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
include Merge #19601 2023-05-27 19:14:05 +00:00
iolist sys/iolist: introduce iolist_to_buffer() 2022-05-02 23:23:52 +02:00
isrpipe sys/isrpipe: add isrpipe_write 2021-12-07 13:00:58 +01:00
libc sys/string_utils: add strscpy() 2022-09-26 19:06:46 +02:00
log_color cpu/avr8_common: Wrap stdio.h 2023-02-27 12:31:03 +01:00
log_printfnoformat sys/log: modularize log into log_color and log_printfnoformat 2022-10-12 12:21:29 +02:00
luid
malloc_thread_safe sys/malloc_tracing: add module to trace dyn memory management 2022-11-15 12:59:46 +01:00
matstat
memarray
mineplex
net Merge #19618 #19639 #19644 #19649 #19656 2023-05-23 20:02:58 +00:00
newlib_syscalls_default cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
od sys/od/kconfig: add od_string 2022-03-11 09:20:24 +01:00
oneway-malloc
phydat sys/phydat: use flash_utils 2023-02-27 12:31:03 +01:00
picolibc_syscalls_default sys/picolibc_syscalls_default: Fix read/write return for picolibc >= 1.8 2023-03-03 12:04:48 -08:00
pipe sys/pipe: model in Kconfig 2023-05-24 09:53:35 +02:00
pm_layered Revert "sys/pm_layered: pm_(un)block add attribute optimize(3) -shortens hotpath" 2023-01-16 11:28:30 +01:00
posix sys/posix/sockets: set sin6_scope_id in _ep_to_sockaddr() 2023-05-23 22:04:12 +02:00
preprocessor sys/preprocessor: add Kconfig file 2022-10-17 10:38:14 +02:00
progress_bar sys/progress_bar: add Konfig configuration 2021-04-07 12:05:00 +02:00
ps schedstatistics: Convert to ztimer 2021-12-07 16:31:15 +01:00
puf_sram sys/puf_sram: cleanup header 2022-12-05 16:13:21 +01:00
random random: use void * in random_bytes() 2022-07-26 19:46:14 +02:00
riotboot sys/riotboot: uses SLOT1_OFFSET in hex format 2023-04-18 06:20:14 +02:00
rtc_utils sys: move rtc utility functions to their own module 2021-12-20 13:04:20 +01:00
rust_riotmodules rust_riotmodules: pub use instead of extern crate 2022-07-10 21:27:13 +02:00
rust_riotmodules_standalone Rust: Update riot-wrappers 2023-04-25 09:20:58 +02:00
saul_reg drivers/saul: use const qualifier for data to write 2022-05-23 08:35:27 +02:00
sched_round_robin sys/sched_round_robin: Add a round robin scheduler module 2021-11-11 13:18:52 +01:00
schedstatistics schedstatistics: Convert to ztimer 2021-12-07 16:31:15 +01:00
sema sys/sema: use sema_ztimer64 to implement old sema api 2022-03-10 14:19:44 +01:00
sema_inv sys/sema_inv: add missing Kconfig 2023-05-19 15:09:55 +02:00
senml sys/phydat: Fix unit confusion 2023-02-23 16:44:24 +01:00
seq
shell sys/shell: Add coreclk command to shell_cmd_sys 2023-05-16 10:58:06 +02:00
shell_lock sys/shell_lock: model in Kconfig 2023-05-24 09:53:35 +02:00
ssp sys/ssp: add missing Kconfig 2023-05-19 15:09:55 +02:00
stdio_nimble treewide: fix path to shell related tests in doc 2023-05-13 18:27:58 +02:00
stdio_null Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
stdio_rtt sys/stdio_rtt: move documentation in doc.txt 2023-02-05 15:49:20 +01:00
stdio_semihosting core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_uart core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_udp sys/stdio_udp: add stdio over UDP 2023-01-13 11:08:22 +01:00
suit sys/suit: Fix missing include 2023-05-27 21:01:18 +02:00
test_utils sys/test_utils: fix path to rmutex test in doc 2023-05-13 18:27:58 +02:00
timex
tiny_strerror sys/tiny_strerror: make use of flash_utils.h 2023-02-27 23:25:13 +01:00
trace treewide: make all modules use Kconfig ZTIMER_USEC indirection 2022-03-17 14:33:07 +01:00
trickle sys/trickle: Model kconfig 2023-03-17 12:09:01 +01:00
tsrb sys/tsrb: add peek functions 2021-11-24 17:54:44 +01:00
universal_address
uri_parser sys/uri_parser: fixing potential out of bounds read when consuming ports 2022-12-05 15:41:33 +01:00
usb sys/usb/usbus_msc: fix typo in C expression 2023-05-20 22:18:27 +02:00
usb_board_reset sys/usb_board_reset: allow to enable it also for stdio_usb_serial_jtag 2023-02-06 16:19:11 +01:00
ut_process sys/ut_process: add missing Kconfig 2023-05-19 15:09:56 +02:00
uuid sys/uuid: add missing Kconfig 2023-05-19 15:09:55 +02:00
vfs vfs: add auto_unmount_vfs() 2023-04-26 00:53:14 +02:00
vfs_util sys/vfs_util: bugfix rec. delete, rel. components 2022-08-30 17:53:36 +02:00
xtimer sys/xtimer: switch default backend to ztimer 2022-03-18 08:23:00 +01:00
zptr
ztimer sys/evtimer: remove support for xtimer backend 2023-05-24 09:53:33 +02:00
ztimer64 sys/ztimer64: properly clear timer on removal 2022-03-01 11:03:10 +01:00
doc.txt sys/doc.txt: add sys_compression doxygen group 2023-02-27 15:09:08 +01:00
Kconfig sys/shell_lock: model in Kconfig 2023-05-24 09:53:35 +02:00
Kconfig.newlib sys/syscalls: add libc_gettimeofday 2022-03-24 11:36:49 +01:00
Kconfig.picolibc sys/libc: model Kconfig 2021-10-01 11:26:15 +02:00
Kconfig.stdio cpu/esp32: add stdio_usb_serial_jtag 2023-01-09 00:51:27 +01:00
Makefile sys/preprocessor: add preprocessor module 2022-10-17 10:38:14 +02:00
Makefile.dep sys/evtimer: remove support for xtimer backend 2023-05-24 09:53:33 +02:00
Makefile.include sys: define CPU_RAM_SIZE as hex number 2023-04-18 06:20:14 +02:00