From: Jan Kiszka <jan.kis...@siemens.com> This Introduces an additional blocking state for threads. It is used to hold back threads after resumption by the debugger in primary mode for coordinated continuation.
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- include/cobalt/kernel/thread.h | 2 +- include/cobalt/uapi/kernel/thread.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/cobalt/kernel/thread.h b/include/cobalt/kernel/thread.h index f1f06ff0a6..03adb25296 100644 --- a/include/cobalt/kernel/thread.h +++ b/include/cobalt/kernel/thread.h @@ -38,7 +38,7 @@ * @addtogroup cobalt_core_thread * @{ */ -#define XNTHREAD_BLOCK_BITS (XNSUSP|XNPEND|XNDELAY|XNDORMANT|XNRELAX|XNMIGRATE|XNHELD) +#define XNTHREAD_BLOCK_BITS (XNSUSP|XNPEND|XNDELAY|XNDORMANT|XNRELAX|XNMIGRATE|XNHELD|XNDBGSTOP) #define XNTHREAD_MODE_BITS (XNRRB|XNWARN|XNTRAPLB) struct xnthread; diff --git a/include/cobalt/uapi/kernel/thread.h b/include/cobalt/uapi/kernel/thread.h index 04982ee0e4..0802a16dcd 100644 --- a/include/cobalt/uapi/kernel/thread.h +++ b/include/cobalt/uapi/kernel/thread.h @@ -51,6 +51,7 @@ #define XNJOINED 0x00080000 /**< Another thread waits for joining this thread */ #define XNTRAPLB 0x00100000 /**< Trap lock break (i.e. may not sleep with sched lock) */ #define XNDEBUG 0x00200000 /**< User-level debugging enabled */ +#define XNDBGSTOP 0x00400000 /**< Stopped for synchronous debugging */ /** @} */ @@ -101,8 +102,9 @@ * 'r' -> Undergoes round-robin. * 't' -> Runtime mode errors notified. * 'L' -> Lock breaks trapped. + * 's' -> Ptraced, stopped synchronously. */ -#define XNTHREAD_STATE_LABELS "SWDRU..X.HbTlrt.....L." +#define XNTHREAD_STATE_LABELS "SWDRU..X.HbTlrt.....L.s" struct xnthread_user_window { __u32 state; -- 2.16.4