about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--arch/mips/ksigaction.h2
-rw-r--r--arch/sh/ksigaction.h8
-rw-r--r--src/internal/ksigaction.h2
-rw-r--r--src/signal/sh/restore.s2
-rw-r--r--src/signal/sigaction.c2
5 files changed, 12 insertions, 4 deletions
diff --git a/arch/mips/ksigaction.h b/arch/mips/ksigaction.h
index 6d731646..3127f7c0 100644
--- a/arch/mips/ksigaction.h
+++ b/arch/mips/ksigaction.h
@@ -7,3 +7,5 @@ struct k_sigaction {
 	 * mips-specific preprocessor conditionals in sigaction.c. */
 	void (*restorer)();
 };
+
+void __restore(), __restore_rt();
diff --git a/arch/sh/ksigaction.h b/arch/sh/ksigaction.h
new file mode 100644
index 00000000..0c652bea
--- /dev/null
+++ b/arch/sh/ksigaction.h
@@ -0,0 +1,8 @@
+struct k_sigaction {
+	void (*handler)(int);
+	unsigned long flags;
+	void *restorer;
+	unsigned mask[2];
+};
+
+extern unsigned char __restore[], __restore_rt[];
diff --git a/src/internal/ksigaction.h b/src/internal/ksigaction.h
index 2eacabf1..1d8d9646 100644
--- a/src/internal/ksigaction.h
+++ b/src/internal/ksigaction.h
@@ -7,3 +7,5 @@ struct k_sigaction {
 	void (*restorer)(void);
 	unsigned mask[2];
 };
+
+void __restore(), __restore_rt();
diff --git a/src/signal/sh/restore.s b/src/signal/sh/restore.s
index eaedcdfb..d5df8e14 100644
--- a/src/signal/sh/restore.s
+++ b/src/signal/sh/restore.s
@@ -1,5 +1,4 @@
 .global __restore
-.type   __restore, @function
 __restore:
 	mov   #119, r3  !__NR_sigreturn
 	trapa #31
@@ -11,7 +10,6 @@ __restore:
 	or    r0, r0
 
 .global __restore_rt
-.type   __restore_rt, @function
 __restore_rt:
 	mov   #100, r3  !__NR_rt_sigreturn
 	add   #73, r3
diff --git a/src/signal/sigaction.c b/src/signal/sigaction.c
index d5f47741..ab23a6f2 100644
--- a/src/signal/sigaction.c
+++ b/src/signal/sigaction.c
@@ -6,8 +6,6 @@
 #include "libc.h"
 #include "ksigaction.h"
 
-void __restore(), __restore_rt();
-
 static int unmask_done;
 static unsigned long handler_set[_NSIG/(8*sizeof(long))];