diff options
| author | njoly <njoly@NetBSD.org> | 2009-06-08 11:46:06 +0000 |
|---|---|---|
| committer | njoly <njoly@NetBSD.org> | 2009-06-08 11:46:06 +0000 |
| commit | 55d5cc9d0d0d3202f2dfe5ceb654ac526bb0475c (patch) | |
| tree | 60e6bd3168f5bcc68b485fe9f1604cf0c6664c40 /sys/compat/linux | |
| parent | b63f2e1e6a9e7623909afda17e6844b55b24dd98 (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.h | 3 | ||||
| -rw-r--r-- | sys/compat/linux/arch/amd64/linux_siginfo.h | 6 | ||||
| -rw-r--r-- | sys/compat/linux/arch/arm/linux_siginfo.h | 89 |
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 */ |
