14ab7403bSDmitry Chagin /*- 24ab7403bSDmitry Chagin * Copyright (c) 2015 Dmitry Chagin 34ab7403bSDmitry Chagin * All rights reserved. 44ab7403bSDmitry Chagin * 54ab7403bSDmitry Chagin * Redistribution and use in source and binary forms, with or without 64ab7403bSDmitry Chagin * modification, are permitted provided that the following conditions 74ab7403bSDmitry Chagin * are met: 84ab7403bSDmitry Chagin * 1. Redistributions of source code must retain the above copyright 94ab7403bSDmitry Chagin * notice, this list of conditions and the following disclaimer. 104ab7403bSDmitry Chagin * 2. Redistributions in binary form must reproduce the above copyright 114ab7403bSDmitry Chagin * notice, this list of conditions and the following disclaimer in the 124ab7403bSDmitry Chagin * documentation and/or other materials provided with the distribution. 134ab7403bSDmitry Chagin * 144ab7403bSDmitry Chagin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 154ab7403bSDmitry Chagin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 164ab7403bSDmitry Chagin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 174ab7403bSDmitry Chagin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 184ab7403bSDmitry Chagin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 194ab7403bSDmitry Chagin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 204ab7403bSDmitry Chagin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 214ab7403bSDmitry Chagin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 224ab7403bSDmitry Chagin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 234ab7403bSDmitry Chagin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 244ab7403bSDmitry Chagin * SUCH DAMAGE. 254ab7403bSDmitry Chagin * 264ab7403bSDmitry Chagin * $FreeBSD$ 274ab7403bSDmitry Chagin */ 284ab7403bSDmitry Chagin 294ab7403bSDmitry Chagin #ifndef _LINUX_MI_H_ 304ab7403bSDmitry Chagin #define _LINUX_MI_H_ 314ab7403bSDmitry Chagin 32d151344dSDmitry Chagin #define LINUX_IFHWADDRLEN 6 33d151344dSDmitry Chagin #define LINUX_IFNAMSIZ 16 34d151344dSDmitry Chagin 35d151344dSDmitry Chagin /* 36d151344dSDmitry Chagin * Criteria for interface name translation 37d151344dSDmitry Chagin */ 38d151344dSDmitry Chagin #define IFP_IS_ETH(ifp) (ifp->if_type == IFT_ETHER) 39d151344dSDmitry Chagin #define IFP_IS_LOOP(ifp) (ifp->if_type == IFT_LOOP) 40d151344dSDmitry Chagin 41d151344dSDmitry Chagin struct l_sockaddr { 42d151344dSDmitry Chagin unsigned short sa_family; 43d151344dSDmitry Chagin char sa_data[14]; 44d151344dSDmitry Chagin }; 45d151344dSDmitry Chagin 46d151344dSDmitry Chagin #define LINUX_ARPHRD_ETHER 1 47d151344dSDmitry Chagin #define LINUX_ARPHRD_LOOPBACK 772 48d151344dSDmitry Chagin 494ab7403bSDmitry Chagin /* sigaltstack */ 504ab7403bSDmitry Chagin #define LINUX_SS_ONSTACK 1 514ab7403bSDmitry Chagin #define LINUX_SS_DISABLE 2 524ab7403bSDmitry Chagin 534ab7403bSDmitry Chagin int linux_to_bsd_sigaltstack(int lsa); 544ab7403bSDmitry Chagin int bsd_to_linux_sigaltstack(int bsa); 554ab7403bSDmitry Chagin 564ab7403bSDmitry Chagin /* sigset */ 574ab7403bSDmitry Chagin typedef struct { 584ab7403bSDmitry Chagin uint64_t __mask; 594ab7403bSDmitry Chagin } l_sigset_t; 604ab7403bSDmitry Chagin 614ab7403bSDmitry Chagin /* primitives to manipulate sigset_t */ 624ab7403bSDmitry Chagin #define LINUX_SIGEMPTYSET(set) (set).__mask = 0 634ab7403bSDmitry Chagin #define LINUX_SIGISMEMBER(set, sig) (1UL & ((set).__mask >> _SIG_IDX(sig))) 644ab7403bSDmitry Chagin #define LINUX_SIGADDSET(set, sig) (set).__mask |= 1UL << _SIG_IDX(sig) 654ab7403bSDmitry Chagin 664ab7403bSDmitry Chagin void linux_to_bsd_sigset(l_sigset_t *, sigset_t *); 674ab7403bSDmitry Chagin void bsd_to_linux_sigset(sigset_t *, l_sigset_t *); 684ab7403bSDmitry Chagin 694ab7403bSDmitry Chagin /* signaling */ 704ab7403bSDmitry Chagin #define LINUX_SIGHUP 1 714ab7403bSDmitry Chagin #define LINUX_SIGINT 2 724ab7403bSDmitry Chagin #define LINUX_SIGQUIT 3 734ab7403bSDmitry Chagin #define LINUX_SIGILL 4 744ab7403bSDmitry Chagin #define LINUX_SIGTRAP 5 754ab7403bSDmitry Chagin #define LINUX_SIGABRT 6 764ab7403bSDmitry Chagin #define LINUX_SIGIOT LINUX_SIGABRT 774ab7403bSDmitry Chagin #define LINUX_SIGBUS 7 784ab7403bSDmitry Chagin #define LINUX_SIGFPE 8 794ab7403bSDmitry Chagin #define LINUX_SIGKILL 9 804ab7403bSDmitry Chagin #define LINUX_SIGUSR1 10 814ab7403bSDmitry Chagin #define LINUX_SIGSEGV 11 824ab7403bSDmitry Chagin #define LINUX_SIGUSR2 12 834ab7403bSDmitry Chagin #define LINUX_SIGPIPE 13 844ab7403bSDmitry Chagin #define LINUX_SIGALRM 14 854ab7403bSDmitry Chagin #define LINUX_SIGTERM 15 864ab7403bSDmitry Chagin #define LINUX_SIGSTKFLT 16 874ab7403bSDmitry Chagin #define LINUX_SIGCHLD 17 884ab7403bSDmitry Chagin #define LINUX_SIGCONT 18 894ab7403bSDmitry Chagin #define LINUX_SIGSTOP 19 904ab7403bSDmitry Chagin #define LINUX_SIGTSTP 20 914ab7403bSDmitry Chagin #define LINUX_SIGTTIN 21 924ab7403bSDmitry Chagin #define LINUX_SIGTTOU 22 934ab7403bSDmitry Chagin #define LINUX_SIGURG 23 944ab7403bSDmitry Chagin #define LINUX_SIGXCPU 24 954ab7403bSDmitry Chagin #define LINUX_SIGXFSZ 25 964ab7403bSDmitry Chagin #define LINUX_SIGVTALRM 26 974ab7403bSDmitry Chagin #define LINUX_SIGPROF 27 984ab7403bSDmitry Chagin #define LINUX_SIGWINCH 28 994ab7403bSDmitry Chagin #define LINUX_SIGIO 29 1004ab7403bSDmitry Chagin #define LINUX_SIGPOLL LINUX_SIGIO 1014ab7403bSDmitry Chagin #define LINUX_SIGPWR 30 1024ab7403bSDmitry Chagin #define LINUX_SIGSYS 31 1034ab7403bSDmitry Chagin #define LINUX_SIGTBLSZ 31 1044ab7403bSDmitry Chagin #define LINUX_SIGRTMIN 32 1054ab7403bSDmitry Chagin #define LINUX_SIGRTMAX 64 1064ab7403bSDmitry Chagin 1074ab7403bSDmitry Chagin #define LINUX_SIG_VALID(sig) ((sig) <= LINUX_SIGRTMAX && (sig) > 0) 1084ab7403bSDmitry Chagin 1094ab7403bSDmitry Chagin int linux_to_bsd_signal(int sig); 1104ab7403bSDmitry Chagin int bsd_to_linux_signal(int sig); 1114ab7403bSDmitry Chagin 1124ab7403bSDmitry Chagin #endif /* _LINUX_MI_H_ */ 113