Module Name: src Committed By: njoly Date: Mon Jun 8 11:46:07 UTC 2009
Modified Files: src/sys/compat/linux/arch/alpha: linux_siginfo.h src/sys/compat/linux/arch/amd64: linux_siginfo.h src/sys/compat/linux/arch/arm: linux_siginfo.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/compat/linux/arch/alpha/linux_siginfo.h cvs rdiff -u -r1.5 -r1.6 src/sys/compat/linux/arch/amd64/linux_siginfo.h cvs rdiff -u -r1.1 -r1.2 src/sys/compat/linux/arch/arm/linux_siginfo.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/linux/arch/alpha/linux_siginfo.h diff -u src/sys/compat/linux/arch/alpha/linux_siginfo.h:1.5 src/sys/compat/linux/arch/alpha/linux_siginfo.h:1.6 --- src/sys/compat/linux/arch/alpha/linux_siginfo.h:1.5 Sun Nov 23 23:48:48 2008 +++ src/sys/compat/linux/arch/alpha/linux_siginfo.h Mon Jun 8 11:46:06 2009 @@ -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 @@ /* SIGCHLD */ struct { linux_pid_t _pid; + linux_uid_t _uid; int _status; linux_clock_t _utime; linux_clock_t _stime; Index: src/sys/compat/linux/arch/amd64/linux_siginfo.h diff -u src/sys/compat/linux/arch/amd64/linux_siginfo.h:1.5 src/sys/compat/linux/arch/amd64/linux_siginfo.h:1.6 --- src/sys/compat/linux/arch/amd64/linux_siginfo.h:1.5 Wed May 27 12:20:37 2009 +++ src/sys/compat/linux/arch/amd64/linux_siginfo.h Mon Jun 8 11:46:07 2009 @@ -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 @@ } linux_sigval_t; -struct linux_siginfo { +typedef struct linux_siginfo { int lsi_signo; int lsi_errno; int lsi_code; Index: src/sys/compat/linux/arch/arm/linux_siginfo.h diff -u src/sys/compat/linux/arch/arm/linux_siginfo.h:1.1 src/sys/compat/linux/arch/arm/linux_siginfo.h:1.2 --- src/sys/compat/linux/arch/arm/linux_siginfo.h:1.1 Mon Jan 14 23:14:39 2002 +++ src/sys/compat/linux/arch/arm/linux_siginfo.h Mon Jun 8 11:46:07 2009 @@ -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 */