summaryrefslogtreecommitdiff
path: root/sys/compat/linux
diff options
context:
space:
mode:
authornjoly <njoly@NetBSD.org>2009-06-08 11:46:06 +0000
committernjoly <njoly@NetBSD.org>2009-06-08 11:46:06 +0000
commit55d5cc9d0d0d3202f2dfe5ceb654ac526bb0475c (patch)
tree60e6bd3168f5bcc68b485fe9f1604cf0c6664c40 /sys/compat/linux
parentb63f2e1e6a9e7623909afda17e6844b55b24dd98 (diff)
Various compat linux siginfo fixes.
- alpha: add missing _uid member to SIGCHLD structure. - amd64: add missing typedef, and fix padding size. - arm: add missing linux_siginfo definition.
Diffstat (limited to 'sys/compat/linux')
-rw-r--r--sys/compat/linux/arch/alpha/linux_siginfo.h3
-rw-r--r--sys/compat/linux/arch/amd64/linux_siginfo.h6
-rw-r--r--sys/compat/linux/arch/arm/linux_siginfo.h89
3 files changed, 93 insertions, 5 deletions
diff --git a/sys/compat/linux/arch/alpha/linux_siginfo.h b/sys/compat/linux/arch/alpha/linux_siginfo.h
index 6b7b1223804..e53d8afa43f 100644
--- a/sys/compat/linux/arch/alpha/linux_siginfo.h
+++ b/sys/compat/linux/arch/alpha/linux_siginfo.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_siginfo.h,v 1.5 2008/11/23 23:48:48 njoly Exp $ */
+/* $NetBSD: linux_siginfo.h,v 1.6 2009/06/08 11:46:06 njoly Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -69,6 +69,7 @@ typedef struct linux_siginfo {
/* SIGCHLD */
struct {
linux_pid_t _pid;
+ linux_uid_t _uid;
int _status;
linux_clock_t _utime;
linux_clock_t _stime;
diff --git a/sys/compat/linux/arch/amd64/linux_siginfo.h b/sys/compat/linux/arch/amd64/linux_siginfo.h
index 72b7927db65..ccd372ee2be 100644
--- a/sys/compat/linux/arch/amd64/linux_siginfo.h
+++ b/sys/compat/linux/arch/amd64/linux_siginfo.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_siginfo.h,v 1.5 2009/05/27 12:20:37 njoly Exp $ */
+/* $NetBSD: linux_siginfo.h,v 1.6 2009/06/08 11:46:07 njoly Exp $ */
/*-
* Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
@@ -34,7 +34,7 @@
#ifndef _AMD64_LINUX_SIGINFO_H
#define _AMD64_LINUX_SIGINFO_H
-#define LINUX___ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
+#define LINUX___ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
#define LINUX_SI_MAX_SIZE 128
#define LINUX_SI_PAD_SIZE \
((LINUX_SI_MAX_SIZE - LINUX___ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
@@ -45,7 +45,7 @@ typedef union linux_sigval {
} linux_sigval_t;
-struct linux_siginfo {
+typedef struct linux_siginfo {
int lsi_signo;
int lsi_errno;
int lsi_code;
diff --git a/sys/compat/linux/arch/arm/linux_siginfo.h b/sys/compat/linux/arch/arm/linux_siginfo.h
index 044578ae949..26678b11472 100644
--- a/sys/compat/linux/arch/arm/linux_siginfo.h
+++ b/sys/compat/linux/arch/arm/linux_siginfo.h
@@ -1 +1,88 @@
-/* $NetBSD: linux_siginfo.h,v 1.1 2002/01/14 23:14:39 bjh21 Exp $ */
+/* $NetBSD: linux_siginfo.h,v 1.2 2009/06/08 11:46:07 njoly Exp $ */
+
+/*-
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Eric Haszlakiewicz.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _ARM_LINUX_SIGINFO_H
+#define _ARM_LINUX_SIGINFO_H
+
+typedef union linux_sigval {
+ int sival_int;
+ void *sival_ptr;
+} linux_sigval_t;
+
+#define SI_MAX_SIZE 128
+#define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 3)
+
+typedef struct linux_siginfo {
+ int lsi_signo;
+ int lsi_errno;
+ int lsi_code;
+ union {
+ int _pad[SI_PAD_SIZE];
+
+ /* kill() */
+ struct {
+ linux_pid_t _pid;
+ linux_uid_t _uid;
+ } _kill;
+
+ /* POSIX.1b signals */
+ struct {
+ linux_pid_t _pid;
+ linux_uid_t _uid;
+ linux_sigval_t _sigval;
+ } _rt;
+
+ /* POSIX.1b timers */
+ struct {
+ unsigned int _timer1;
+ unsigned int _timer2;
+ } _timer;
+
+ /* SIGCHLD */
+ struct {
+ linux_pid_t _pid;
+ linux_uid_t _uid;
+ int _status;
+ linux_clock_t _utime;
+ linux_clock_t _stime;
+ } _sigchld;
+
+ /* SIGPOLL */
+ struct {
+ int _band;
+ int _fd;
+ } _sigpoll;
+
+ /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
+ struct {
+ void *_addr;
+ } _sigfault;
+ } _sidata;
+} linux_siginfo_t;
+
+#endif /* !_ARM_LINUX_SIGINFO_H */