include/uapi/asm-generic/signal.h: hide sigset_t definition in userspace

Started by Mikko Rapeli on Feb 16, 2015 · 3 messages from 2 authors · Last reply Mar 11, 2015

Subsystems (2)

Maintainers (2)

STALE4261d

open the first message on its own page

Message details and related content
It is already defined by libc headers in
/usr/include/i386-linux-gnu/sys/select.h

Signed-off-by: Mikko Rapeli <redacted>
---
 include/uapi/asm-generic/signal.h | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h
index 8a341a2..af4d83a 100644
--- a/include/uapi/asm-generic/signal.h
+++ b/include/uapi/asm-generic/signal.h
@@ -88,9 +88,12 @@
 #define SIGSTKSZ	8192
 
 #ifndef __ASSEMBLY__
+#ifdef __KERNEL__
+/* already defined in userspace via stdlib.h */
 typedef struct {
 	unsigned long sig[_NSIG_WORDS];
 } sigset_t;
+#endif /* __KERNEL__ */
 
 /* not actually used, but required for linux/syscalls.h */
 typedef unsigned long old_sigset_t;
-- 
2.1.4
Message details and related content
On Tuesday 17 February 2015 00:05:37 Mikko Rapeli wrote:
quoted hunk
+#ifdef __KERNEL__
+/* already defined in userspace via stdlib.h */
 typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
+#endif /* __KERNEL__ */
I'm not sure here: Is this structure always identical to the one
we see in user space?

If not, we might want to rename the typedef to __kernel_sigset_t
instead and use that inside of the uapi headers.

	Arnd
Message details and related content
On Tue, Feb 17, 2015 at 10:16:09AM +0100, Arnd Bergmann wrote:
On Tuesday 17 February 2015 00:05:37 Mikko Rapeli wrote:
quoted
+#ifdef __KERNEL__
+/* already defined in userspace via stdlib.h */
 typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
+#endif /* __KERNEL__ */
I'm not sure here: Is this structure always identical to the one
we see in user space?

If not, we might want to rename the typedef to __kernel_sigset_t
instead and use that inside of the uapi headers.
I was copying this ifdef from the struct sigaction part in the same file:

#ifndef __KERNEL__
struct sigaction {
        __sighandler_t sa_handler;
        unsigned long sa_flags;
#ifdef SA_RESTORER
        __sigrestore_t sa_restorer;
#endif
        sigset_t sa_mask;               /* mask last for extensibility */
};
#endif

I assumed it had the same problems at some point.

-Mikko
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help