[klibc] [klibc:master] i386, m68k, s390: signal: Switch to RT signal API
klibc-bot for Ben Hutchings
ben at decadent.org.uk
Sun Feb 12 14:48:08 PST 2023
Commit-ID: 871a230845c8baf46f97cdbb055a23e7e5a034db
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=871a230845c8baf46f97cdbb055a23e7e5a034db
Author: Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Sat, 14 Jan 2023 04:09:21 +0100
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sun, 12 Feb 2023 18:53:53 +0100
[klibc] i386,m68k,s390: signal: Switch to RT signal API
These are the last 3 architectures not using the RT signal system
calls and structures. Change them over so that we won't need to
keep support the old API.
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/include/arch/i386/klibc/archconfig.h | 3 +--
usr/include/arch/i386/klibc/archsignal.h | 15 ++++++++++-----
usr/include/arch/m68k/klibc/archconfig.h | 1 +
usr/include/arch/m68k/klibc/archsignal.h | 15 ++++++++++-----
usr/include/arch/s390/klibc/archconfig.h | 1 +
usr/include/arch/s390/klibc/archsignal.h | 9 +++++++--
6 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/usr/include/arch/i386/klibc/archconfig.h b/usr/include/arch/i386/klibc/archconfig.h
index f070f5bb..3e52a6b6 100644
--- a/usr/include/arch/i386/klibc/archconfig.h
+++ b/usr/include/arch/i386/klibc/archconfig.h
@@ -9,8 +9,7 @@
#ifndef _KLIBC_ARCHCONFIG_H
#define _KLIBC_ARCHCONFIG_H
-/* The i386 <asm/signal.h> is still not clean enough for this... */
-#define _KLIBC_USE_RT_SIG 0
+#define _KLIBC_USE_RT_SIG 1
/* We have klibc/archinit.h and __libc_archinit() */
#define _KLIBC_HAS_ARCHINIT 1
diff --git a/usr/include/arch/i386/klibc/archsignal.h b/usr/include/arch/i386/klibc/archsignal.h
index 82395b2c..5b3379a2 100644
--- a/usr/include/arch/i386/klibc/archsignal.h
+++ b/usr/include/arch/i386/klibc/archsignal.h
@@ -7,8 +7,13 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-#define NSIG 32
-typedef unsigned long sigset_t;
+#define _NSIG 64
+#define _NSIG_BPW 32
+#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
+
+typedef struct {
+ unsigned long sig[_NSIG_WORDS];
+} sigset_t;
#define SIGHUP 1
#define SIGINT 2
@@ -59,9 +64,9 @@ struct sigaction {
__sighandler_t _sa_handler;
void (*_sa_sigaction)(int, struct siginfo *, void *);
} _u;
- sigset_t sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer)(void);
+ unsigned int sa_flags;
+ __sigrestore_t sa_restorer;
+ sigset_t sa_mask; /* mask last for extensibility */
};
#define sa_handler _u._sa_handler
diff --git a/usr/include/arch/m68k/klibc/archconfig.h b/usr/include/arch/m68k/klibc/archconfig.h
index 10ef62e6..6213277b 100644
--- a/usr/include/arch/m68k/klibc/archconfig.h
+++ b/usr/include/arch/m68k/klibc/archconfig.h
@@ -11,5 +11,6 @@
/* On m68k, sys_mmap2 uses the current page size as the shift factor */
#define _KLIBC_MMAP2_SHIFT __getpageshift()
+#define _KLIBC_USE_RT_SIG 1
#endif /* _KLIBC_ARCHCONFIG_H */
diff --git a/usr/include/arch/m68k/klibc/archsignal.h b/usr/include/arch/m68k/klibc/archsignal.h
index 59b1ac87..64613466 100644
--- a/usr/include/arch/m68k/klibc/archsignal.h
+++ b/usr/include/arch/m68k/klibc/archsignal.h
@@ -8,8 +8,13 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-#define NSIG 32
-typedef unsigned long sigset_t;
+#define _NSIG 64
+#define _NSIG_BPW 32
+#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
+
+typedef struct {
+ unsigned long sig[_NSIG_WORDS];
+} sigset_t;
#define SIGHUP 1
#define SIGINT 2
@@ -58,9 +63,9 @@ struct sigaction {
__sighandler_t _sa_handler;
void (*_sa_sigaction)(int, struct siginfo *, void *);
} _u;
- sigset_t sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer)(void);
+ unsigned int sa_flags;
+ __sigrestore_t sa_restorer;
+ sigset_t sa_mask; /* mask last for extensibility */
};
#define sa_handler _u._sa_handler
diff --git a/usr/include/arch/s390/klibc/archconfig.h b/usr/include/arch/s390/klibc/archconfig.h
index b08bbb3f..52d324c9 100644
--- a/usr/include/arch/s390/klibc/archconfig.h
+++ b/usr/include/arch/s390/klibc/archconfig.h
@@ -16,5 +16,6 @@
#define _KLIBC_NEEDS_SA_RESTORER 1
/* Our restorer will call rt_sigreturn() */
#define _KLIBC_NEEDS_SA_SIGINFO 1
+#define _KLIBC_USE_RT_SIG 1
#endif /* _KLIBC_ARCHCONFIG_H */
diff --git a/usr/include/arch/s390/klibc/archsignal.h b/usr/include/arch/s390/klibc/archsignal.h
index a79b166b..31993a48 100644
--- a/usr/include/arch/s390/klibc/archsignal.h
+++ b/usr/include/arch/s390/klibc/archsignal.h
@@ -8,8 +8,13 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-#define NSIG 32
-typedef unsigned long sigset_t;
+#define _NSIG 64
+#define _NSIG_BPW __BITS_PER_LONG
+#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
+
+typedef struct {
+ unsigned long sig[_NSIG_WORDS];
+} sigset_t;
#define SIGHUP 1
#define SIGINT 2
More information about the klibc
mailing list