diff options
Diffstat (limited to 'os/rt')
-rw-r--r-- | os/rt/include/chthreads.h | 2 | ||||
-rw-r--r-- | os/rt/ports/ARM/compilers/GCC/chcoreasm.s | 1 | ||||
-rw-r--r-- | os/rt/ports/ARM/compilers/GCC/chtypes.h | 2 | ||||
-rw-r--r-- | os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s | 1 | ||||
-rw-r--r-- | os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s | 1 | ||||
-rw-r--r-- | os/rt/ports/ARMCMx/compilers/GCC/chtypes.h | 2 | ||||
-rw-r--r-- | os/rt/ports/ARMCMx/compilers/IAR/chtypes.h | 2 | ||||
-rw-r--r-- | os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h | 2 | ||||
-rw-r--r-- | os/rt/ports/SIMIA32/chcore.c | 3 | ||||
-rw-r--r-- | os/rt/ports/SIMIA32/compilers/GCC/chtypes.h | 2 | ||||
-rw-r--r-- | os/rt/ports/e200/chcore.c | 1 |
11 files changed, 12 insertions, 7 deletions
diff --git a/os/rt/include/chthreads.h b/os/rt/include/chthreads.h index aca3e1d78..690c45f7f 100644 --- a/os/rt/include/chthreads.h +++ b/os/rt/include/chthreads.h @@ -49,7 +49,7 @@ /**
* @brief Thread function.
*/
-typedef msg_t (*tfunc_t)(void *p);
+typedef void (*tfunc_t)(void *p);
/*===========================================================================*/
/* Module macros. */
diff --git a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s index 619a90bd7..764735b05 100644 --- a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s +++ b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s @@ -268,6 +268,7 @@ _bxr4: bx r4 mov r0, r5
mov lr, pc
bx r4
+ mov r0, #0 /* MSG_OK */
bl chThdExit
_zombies: b _zombies
#endif /* !defined(THUMB_NO_INTERWORKING) */
diff --git a/os/rt/ports/ARM/compilers/GCC/chtypes.h b/os/rt/ports/ARM/compilers/GCC/chtypes.h index 72674a53f..88e9956ed 100644 --- a/os/rt/ports/ARM/compilers/GCC/chtypes.h +++ b/os/rt/ports/ARM/compilers/GCC/chtypes.h @@ -98,7 +98,7 @@ typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ /**
* @brief Optimized thread function declaration macro.
*/
-#define PORT_THD_FUNCTION(tname, arg) msg_t tname(void *arg)
+#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg)
/**
* @brief Packed variable specifier.
diff --git a/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s b/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s index b8f6446ba..31d2a5f63 100644 --- a/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s +++ b/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s @@ -95,6 +95,7 @@ _port_thread_start: cpsie i
mov r0, r5
blx r4
+ movs r0, #0 /* MSG_OK */
bl chThdExit
/*--------------------------------------------------------------------------*
diff --git a/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s b/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s index 8446a0ecd..b232e0397 100644 --- a/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s +++ b/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.s @@ -96,6 +96,7 @@ _port_thread_start: #endif
mov r0, r5
blx r4
+ movs r0, #0 /* MSG_OK */
bl chThdExit
/*--------------------------------------------------------------------------*
diff --git a/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h b/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h index 25ed63a90..af3349d79 100644 --- a/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h +++ b/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h @@ -99,7 +99,7 @@ typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ /**
* @brief Optimized thread function declaration macro.
*/
-#define PORT_THD_FUNCTION(tname, arg) msg_t tname(void *arg)
+#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg)
/**
* @brief Packed variable specifier.
diff --git a/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h b/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h index 964fc4d22..4e41e4c6d 100644 --- a/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h +++ b/os/rt/ports/ARMCMx/compilers/IAR/chtypes.h @@ -98,7 +98,7 @@ typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ /**
* @brief Optimized thread function declaration macro.
*/
-#define PORT_THD_FUNCTION(tname, arg) msg_t tname(void *arg)
+#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg)
/**
* @brief Packed variable specifier.
diff --git a/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h b/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h index b308b8054..a8e92db6f 100644 --- a/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h +++ b/os/rt/ports/ARMCMx/compilers/RVCT/chtypes.h @@ -98,7 +98,7 @@ typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ /**
* @brief Optimized thread function declaration macro.
*/
-#define PORT_THD_FUNCTION(tname, arg) msg_t tname(void *arg)
+#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg)
/**
* @brief Packed variable specifier.
diff --git a/os/rt/ports/SIMIA32/chcore.c b/os/rt/ports/SIMIA32/chcore.c index 97cf2f142..a2dbbbe71 100644 --- a/os/rt/ports/SIMIA32/chcore.c +++ b/os/rt/ports/SIMIA32/chcore.c @@ -93,7 +93,8 @@ __attribute__((cdecl, noreturn)) void _port_thread_start(msg_t (*pf)(void *), void *p) {
chSysUnlock();
- chThdExit(pf(p));
+ pf(p);
+ chThdExit(0);
while(1);
}
diff --git a/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h b/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h index 252bba104..175a44287 100644 --- a/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h +++ b/os/rt/ports/SIMIA32/compilers/GCC/chtypes.h @@ -98,7 +98,7 @@ typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ /**
* @brief Optimized thread function declaration macro.
*/
-#define PORT_THD_FUNCTION(tname, arg) msg_t tname(void *arg)
+#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg)
/**
* @brief Packed variable specifier.
diff --git a/os/rt/ports/e200/chcore.c b/os/rt/ports/e200/chcore.c index cfa8a3564..28fb8926b 100644 --- a/os/rt/ports/e200/chcore.c +++ b/os/rt/ports/e200/chcore.c @@ -100,6 +100,7 @@ void port_dummy2(void) { asm ("mr %r3, %r31"); /* Thread parameter. */
asm ("mtctr %r30");
asm ("bctrl"); /* Invoke thread function. */
+ asm ("li %r0, 0"); /* MSG_OK. */
asm ("bl chThdExit"); /* Thread termination on exit. */
}
|