summaryrefslogtreecommitdiff
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
parent5a5ec187ae6cb2afc874ad9ef118ef634e9164c8 (diff)
Mark functions that don't return with attribute noreturn
-rw-r--r--device/ds_routines.c2
-rw-r--r--device/ds_routines.h2
-rw-r--r--device/net_io.c2
-rw-r--r--device/net_io.h2
-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
-rw-r--r--vm/vm_pageout.h6
14 files changed, 19 insertions, 19 deletions
diff --git a/device/ds_routines.c b/device/ds_routines.c
index 146b7eb..c99818b 100644
--- a/device/ds_routines.c
+++ b/device/ds_routines.c
@@ -1479,7 +1479,7 @@ void iodone(ior)
splx(s);
}
-void io_done_thread_continue(void)
+void __attribute__ ((noreturn)) io_done_thread_continue(void)
{
for (;;) {
spl_t s;
diff --git a/device/ds_routines.h b/device/ds_routines.h
index a68c6c6..c0543cb 100644
--- a/device/ds_routines.h
+++ b/device/ds_routines.h
@@ -67,7 +67,7 @@ kern_return_t device_pager_setup(
extern void mach_device_init(void);
extern void dev_lookup_init(void);
extern void device_pager_init(void);
-extern void io_done_thread(void);
+extern void io_done_thread(void) __attribute__ ((noreturn));
io_return_t ds_device_write_trap(
device_t dev,
diff --git a/device/net_io.c b/device/net_io.c
index bce27b3..68dcc09 100644
--- a/device/net_io.c
+++ b/device/net_io.c
@@ -553,7 +553,7 @@ void net_ast(void)
(void) splx(s);
}
-void net_thread_continue(void)
+void __attribute__ ((noreturn)) net_thread_continue(void)
{
for (;;) {
spl_t s;
diff --git a/device/net_io.h b/device/net_io.h
index 0ffdc92..e68e64a 100644
--- a/device/net_io.h
+++ b/device/net_io.h
@@ -90,7 +90,7 @@ extern vm_size_t net_kmsg_size;
extern void net_kmsg_collect (void);
extern void net_io_init(void);
-extern void net_thread(void);
+extern void net_thread(void) __attribute__ ((noreturn));
#define net_kmsg_alloc() ((ipc_kmsg_t) kalloc(net_kmsg_size))
#define net_kmsg_free(kmsg) kfree((vm_offset_t) (kmsg), net_kmsg_size)
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_ */
diff --git a/vm/vm_pageout.h b/vm/vm_pageout.h
index 7e3e4e4..ea6cfaf 100644
--- a/vm/vm_pageout.h
+++ b/vm/vm_pageout.h
@@ -44,10 +44,10 @@ extern vm_page_t vm_pageout_setup(vm_page_t, vm_offset_t, vm_object_t,
vm_offset_t, boolean_t);
extern void vm_pageout_page(vm_page_t, boolean_t, boolean_t);
-extern void vm_pageout(void);
+extern void vm_pageout(void) __attribute__((noreturn));
-extern void vm_pageout_continue(void);
+extern void vm_pageout_continue(void) __attribute__((noreturn));
-extern void vm_pageout_scan_continue(void);
+extern void vm_pageout_scan_continue(void) __attribute__((noreturn));
#endif /* _VM_VM_PAGEOUT_H_ */