summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorMarin Ramesa <mpr@hi.t-com.hr>2013-12-16 23:55:18 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-12-17 19:05:05 +0100
commit13a3d2472961902e809bb90fc5adc6b7696f7db5 (patch)
tree4557759cdc799e9774442e82cee9bd39eafaf514 /kern
parent5a5ec187ae6cb2afc874ad9ef118ef634e9164c8 (diff)
Mark functions that don't return with attribute noreturn
Diffstat (limited to 'kern')
-rw-r--r--kern/eventcount.c2
-rw-r--r--kern/machine.c2
-rw-r--r--kern/machine.h2
-rw-r--r--kern/sched_prim.c2
-rw-r--r--kern/sched_prim.h6
-rw-r--r--kern/thread.c4
-rw-r--r--kern/thread.h2
-rw-r--r--kern/thread_swap.c2
-rw-r--r--kern/thread_swap.h2
9 files changed, 12 insertions, 12 deletions
diff --git a/kern/eventcount.c b/kern/eventcount.c
index 1bc9968..22c4932 100644
--- a/kern/eventcount.c
+++ b/kern/eventcount.c
@@ -123,7 +123,7 @@ void evc_notify_abort(const thread_t thread)
* Just so that we return success, and give
* up the stack while blocked
*/
-static void
+static void __attribute__((noreturn))
evc_continue(void)
{
thread_syscall_return(KERN_SUCCESS);
diff --git a/kern/machine.c b/kern/machine.c
index 5d1ea34..d5944ce 100644
--- a/kern/machine.c
+++ b/kern/machine.c
@@ -390,7 +390,7 @@ void action_thread_continue()
}
}
-void action_thread()
+void __attribute__((noreturn)) action_thread()
{
action_thread_continue();
/*NOTREACHED*/
diff --git a/kern/machine.h b/kern/machine.h
index af2b7e9..c67213a 100644
--- a/kern/machine.h
+++ b/kern/machine.h
@@ -53,6 +53,6 @@ extern kern_return_t processor_shutdown (processor_t);
/*
* action_thread() shuts down processors or changes their assignment.
*/
-extern void action_thread_continue (void);
+extern void action_thread_continue (void) __attribute__((noreturn));
#endif /* _MACHINE_H_ */
diff --git a/kern/sched_prim.c b/kern/sched_prim.c
index f817004..1d2e14e 100644
--- a/kern/sched_prim.c
+++ b/kern/sched_prim.c
@@ -1618,7 +1618,7 @@ int no_dispatch_count = 0;
* to execute.
*/
-void idle_thread_continue(void)
+void __attribute__((noreturn)) idle_thread_continue(void)
{
processor_t myprocessor;
volatile thread_t *threadp;
diff --git a/kern/sched_prim.h b/kern/sched_prim.h
index c7ff977..50041e4 100644
--- a/kern/sched_prim.h
+++ b/kern/sched_prim.h
@@ -132,8 +132,8 @@ extern void thread_timeout_setup(
* Machine-dependent code must define these functions.
*/
-extern void thread_bootstrap_return(void);
-extern void thread_exception_return(void);
+extern void thread_bootstrap_return(void) __attribute__((noreturn));
+extern void thread_exception_return(void) __attribute__((noreturn));
extern void __attribute__((__noreturn__)) thread_syscall_return(kern_return_t);
extern thread_t switch_context(
@@ -178,7 +178,7 @@ void checkrq(run_queue_t rq, char *msg);
void thread_check(thread_t th, run_queue_t rq);
#endif /* DEBUG */
-extern void idle_thread(void);
+extern void idle_thread(void) __attribute__((noreturn));
extern void sched_thread(void);
#endif /* _KERN_SCHED_PRIM_H_ */
diff --git a/kern/thread.c b/kern/thread.c
index 1414078..ddb06d5 100644
--- a/kern/thread.c
+++ b/kern/thread.c
@@ -1123,7 +1123,7 @@ kern_return_t thread_halt(
}
}
-void walking_zombie(void)
+void __attribute__((noreturn)) walking_zombie(void)
{
panic("the zombie walks!");
}
@@ -1693,7 +1693,7 @@ thread_t kernel_thread(
* This kernel thread runs forever looking for threads to destroy
* (when they request that they be destroyed, of course).
*/
-void reaper_thread_continue(void)
+void __attribute__((noreturn)) reaper_thread_continue(void)
{
for (;;) {
thread_t thread;
diff --git a/kern/thread.h b/kern/thread.h
index 9946bde..d088c27 100644
--- a/kern/thread.h
+++ b/kern/thread.h
@@ -350,7 +350,7 @@ extern thread_t kernel_thread(
void (*start)(void),
void * arg);
-extern void reaper_thread(void);
+extern void reaper_thread(void) __attribute__((noreturn));
#if MACH_HOST
extern void thread_freeze(
diff --git a/kern/thread_swap.c b/kern/thread_swap.c
index e76511e..94e5c21 100644
--- a/kern/thread_swap.c
+++ b/kern/thread_swap.c
@@ -154,7 +154,7 @@ void thread_doswapin(thread)
* This procedure executes as a kernel thread. Threads that need to
* be swapped in are swapped in by this thread.
*/
-void swapin_thread_continue(void)
+void __attribute__((noreturn)) swapin_thread_continue(void)
{
for (;;) {
thread_t thread;
diff --git a/kern/thread_swap.h b/kern/thread_swap.h
index 7f611ec..9d64537 100644
--- a/kern/thread_swap.h
+++ b/kern/thread_swap.h
@@ -38,6 +38,6 @@
extern void swapper_init(void);
extern void thread_swapin(thread_t thread);
extern void thread_doswapin(thread_t thread);
-extern void swapin_thread(void);
+extern void swapin_thread(void) __attribute__((noreturn));
#endif /* _KERN_THREAD_SWAP_H_ */