1283474Sdchagin/*- 2283474Sdchagin * Copyright (c) 2015 Dmitry Chagin 3283474Sdchagin * All rights reserved. 4283474Sdchagin * 5283474Sdchagin * Redistribution and use in source and binary forms, with or without 6283474Sdchagin * modification, are permitted provided that the following conditions 7283474Sdchagin * are met: 8283474Sdchagin * 1. Redistributions of source code must retain the above copyright 9283474Sdchagin * notice, this list of conditions and the following disclaimer. 10283474Sdchagin * 2. Redistributions in binary form must reproduce the above copyright 11283474Sdchagin * notice, this list of conditions and the following disclaimer in the 12283474Sdchagin * documentation and/or other materials provided with the distribution. 13283474Sdchagin * 14283474Sdchagin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15283474Sdchagin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16283474Sdchagin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17283474Sdchagin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18283474Sdchagin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19283474Sdchagin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20283474Sdchagin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21283474Sdchagin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22283474Sdchagin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23283474Sdchagin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24283474Sdchagin * SUCH DAMAGE. 25283474Sdchagin * 26283474Sdchagin * $FreeBSD$ 27283474Sdchagin */ 28283474Sdchagin 29283474Sdchagin#ifndef _LINUX_MI_H_ 30283474Sdchagin#define _LINUX_MI_H_ 31283474Sdchagin 32283474Sdchagin/* sigaltstack */ 33283474Sdchagin#define LINUX_SS_ONSTACK 1 34283474Sdchagin#define LINUX_SS_DISABLE 2 35283474Sdchagin 36283474Sdchaginint linux_to_bsd_sigaltstack(int lsa); 37283474Sdchaginint bsd_to_linux_sigaltstack(int bsa); 38283474Sdchagin 39283474Sdchagin/* sigset */ 40283474Sdchagintypedef struct { 41283474Sdchagin uint64_t __mask; 42283474Sdchagin} l_sigset_t; 43283474Sdchagin 44283474Sdchagin/* primitives to manipulate sigset_t */ 45283474Sdchagin#define LINUX_SIGEMPTYSET(set) (set).__mask = 0 46283474Sdchagin#define LINUX_SIGISMEMBER(set, sig) (1UL & ((set).__mask >> _SIG_IDX(sig))) 47283474Sdchagin#define LINUX_SIGADDSET(set, sig) (set).__mask |= 1UL << _SIG_IDX(sig) 48283474Sdchagin 49283474Sdchaginvoid linux_to_bsd_sigset(l_sigset_t *, sigset_t *); 50283474Sdchaginvoid bsd_to_linux_sigset(sigset_t *, l_sigset_t *); 51283474Sdchagin 52283474Sdchagin/* signaling */ 53283474Sdchagin#define LINUX_SIGHUP 1 54283474Sdchagin#define LINUX_SIGINT 2 55283474Sdchagin#define LINUX_SIGQUIT 3 56283474Sdchagin#define LINUX_SIGILL 4 57283474Sdchagin#define LINUX_SIGTRAP 5 58283474Sdchagin#define LINUX_SIGABRT 6 59283474Sdchagin#define LINUX_SIGIOT LINUX_SIGABRT 60283474Sdchagin#define LINUX_SIGBUS 7 61283474Sdchagin#define LINUX_SIGFPE 8 62283474Sdchagin#define LINUX_SIGKILL 9 63283474Sdchagin#define LINUX_SIGUSR1 10 64283474Sdchagin#define LINUX_SIGSEGV 11 65283474Sdchagin#define LINUX_SIGUSR2 12 66283474Sdchagin#define LINUX_SIGPIPE 13 67283474Sdchagin#define LINUX_SIGALRM 14 68283474Sdchagin#define LINUX_SIGTERM 15 69283474Sdchagin#define LINUX_SIGSTKFLT 16 70283474Sdchagin#define LINUX_SIGCHLD 17 71283474Sdchagin#define LINUX_SIGCONT 18 72283474Sdchagin#define LINUX_SIGSTOP 19 73283474Sdchagin#define LINUX_SIGTSTP 20 74283474Sdchagin#define LINUX_SIGTTIN 21 75283474Sdchagin#define LINUX_SIGTTOU 22 76283474Sdchagin#define LINUX_SIGURG 23 77283474Sdchagin#define LINUX_SIGXCPU 24 78283474Sdchagin#define LINUX_SIGXFSZ 25 79283474Sdchagin#define LINUX_SIGVTALRM 26 80283474Sdchagin#define LINUX_SIGPROF 27 81283474Sdchagin#define LINUX_SIGWINCH 28 82283474Sdchagin#define LINUX_SIGIO 29 83283474Sdchagin#define LINUX_SIGPOLL LINUX_SIGIO 84283474Sdchagin#define LINUX_SIGPWR 30 85283474Sdchagin#define LINUX_SIGSYS 31 86283474Sdchagin#define LINUX_SIGTBLSZ 31 87283474Sdchagin#define LINUX_SIGRTMIN 32 88283474Sdchagin#define LINUX_SIGRTMAX 64 89283474Sdchagin 90283474Sdchagin#define LINUX_SIG_VALID(sig) ((sig) <= LINUX_SIGRTMAX && (sig) > 0) 91283474Sdchagin 92283474Sdchaginint linux_to_bsd_signal(int sig); 93283474Sdchaginint bsd_to_linux_signal(int sig); 94283474Sdchagin 95283474Sdchagin#endif /* _LINUX_MI_H_ */ 96