aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/rt/ports/ARMCMx/chcore_v7m.h6
-rw-r--r--os/rt/src/chschd.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/os/rt/ports/ARMCMx/chcore_v7m.h b/os/rt/ports/ARMCMx/chcore_v7m.h
index 3d72723fb..58f806784 100644
--- a/os/rt/ports/ARMCMx/chcore_v7m.h
+++ b/os/rt/ports/ARMCMx/chcore_v7m.h
@@ -282,12 +282,16 @@ struct port_intctx {
* by an @p port_intctx structure.
*/
#define PORT_SETUP_CONTEXT(tp, workspace, wsize, pf, arg) { \
+ /*lint -save -e9016 -e9087 [18.4, 11.3] Normal pointers arithmetic.*/ \
(tp)->p_ctx.r13 = (struct port_intctx *)((uint8_t *)(workspace) + \
- (wsize) - \
+ (size_t)(wsize) - \
sizeof(struct port_intctx)); \
+ /*lint -restore*/ \
+ /*lint -save -e9074 -e9087 [11.1, 11.3] Casts are planned here.*/ \
(tp)->p_ctx.r13->r4 = (regarm_t)(pf); \
(tp)->p_ctx.r13->r5 = (regarm_t)(arg); \
(tp)->p_ctx.r13->lr = (regarm_t)(_port_thread_start); \
+ /*lint -restore*/ \
}
/**
diff --git a/os/rt/src/chschd.c b/os/rt/src/chschd.c
index bcafb26b5..3de92aec8 100644
--- a/os/rt/src/chschd.c
+++ b/os/rt/src/chschd.c
@@ -304,6 +304,7 @@ static void wakeup(void *p) {
(void) queue_dequeue(tp);
break;
default:
+ /* Any other state, nothing to do.*/
break;
}
tp->p_u.rdymsg = MSG_TIMEOUT;