Annotation of sys/compat/linux/linux_signal.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: linux_signal.h,v 1.8 2002/03/14 01:26:50 millert Exp $ */
! 2: /* $NetBSD: linux_signal.h,v 1.4 1995/08/27 20:51:51 fvdl Exp $ */
! 3:
! 4: /*
! 5: * Copyright (c) 1995 Frank van der Linden
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: * 3. All advertising materials mentioning features or use of this software
! 17: * must display the following acknowledgement:
! 18: * This product includes software developed for the NetBSD Project
! 19: * by Frank van der Linden
! 20: * 4. The name of the author may not be used to endorse or promote products
! 21: * derived from this software without specific prior written permission
! 22: *
! 23: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 24: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! 25: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 26: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
! 27: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
! 28: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
! 29: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! 30: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
! 31: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
! 32: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
! 33: */
! 34:
! 35: #ifndef _LINUX_SIGNAL_H
! 36: #define _LINUX_SIGNAL_H
! 37:
! 38: #define LINUX_SIGHUP 1
! 39: #define LINUX_SIGINT 2
! 40: #define LINUX_SIGQUIT 3
! 41: #define LINUX_SIGILL 4
! 42: #define LINUX_SIGTRAP 5
! 43: #define LINUX_SIGABRT 6
! 44: #define LINUX_SIGIOT 6
! 45: #define LINUX_SIGBUS 7
! 46: #define LINUX_SIGFPE 8
! 47: #define LINUX_SIGKILL 9
! 48: #define LINUX_SIGUSR1 10
! 49: #define LINUX_SIGSEGV 11
! 50: #define LINUX_SIGUSR2 12
! 51: #define LINUX_SIGPIPE 13
! 52: #define LINUX_SIGALRM 14
! 53: #define LINUX_SIGTERM 15
! 54: #define LINUX_SIGSTKFLT 16
! 55: #define LINUX_SIGCHLD 17
! 56: #define LINUX_SIGCONT 18
! 57: #define LINUX_SIGSTOP 19
! 58: #define LINUX_SIGTSTP 20
! 59: #define LINUX_SIGTTIN 21
! 60: #define LINUX_SIGTTOU 22
! 61: #define LINUX_SIGURG 23
! 62: #define LINUX_SIGXCPU 24
! 63: #define LINUX_SIGXFSZ 25
! 64: #define LINUX_SIGVTALRM 26
! 65: #define LINUX_SIGPROF 27
! 66: #define LINUX_SIGWINCH 28
! 67: #define LINUX_SIGIO 29
! 68: #define LINUX_SIGPWR 30
! 69: #define LINUX_SIGUNUSED 31
! 70: #define LINUX_NSIG 32
! 71:
! 72: #define LINUX__NSIG 64
! 73: #define LINUX__NSIG_BPW 32
! 74: #define LINUX__NSIG_WORDS (LINUX__NSIG / LINUX__NSIG_BPW)
! 75:
! 76: #define LINUX_SIG_BLOCK 0
! 77: #define LINUX_SIG_UNBLOCK 1
! 78: #define LINUX_SIG_SETMASK 2
! 79:
! 80: typedef u_long linux_old_sigset_t;
! 81: typedef struct {
! 82: u_long sig[LINUX__NSIG_WORDS];
! 83: } linux_sigset_t;
! 84:
! 85: typedef void (*linux_handler_t)(int);
! 86:
! 87: struct linux_old_sigaction {
! 88: linux_handler_t sa__handler;
! 89: linux_old_sigset_t sa_mask;
! 90: u_long sa_flags;
! 91: void (*sa_restorer)(void);
! 92: };
! 93:
! 94: struct linux_sigaction {
! 95: linux_handler_t sa__handler;
! 96: u_long sa_flags;
! 97: void (*sa_restorer)(void);
! 98: linux_sigset_t sa_mask;
! 99: };
! 100:
! 101: /* sa_flags */
! 102: #define LINUX_SA_NOCLDSTOP 0x00000001
! 103: #define LINUX_SA_SIGINFO 0x00000004
! 104: #define LINUX_SA_ONSTACK 0x08000000
! 105: #define LINUX_SA_RESTART 0x10000000
! 106: #define LINUX_SA_INTERRUPT 0x20000000
! 107: #define LINUX_SA_NOMASK 0x40000000
! 108: #define LINUX_SA_ONESHOT 0x80000000
! 109: #define LINUX_SA_ALLBITS 0xf8000001
! 110:
! 111: struct linux_sigaltstack {
! 112: void *ss_sp;
! 113: int ss_flags;
! 114: size_t ss_size;
! 115: };
! 116:
! 117: /* ss_flags */
! 118: #define LINUX_SS_ONSTACK 0x00000001
! 119: #define LINUX_SS_DISABLE 0x00000002
! 120:
! 121: extern int bsd_to_linux_sig[];
! 122: extern int linux_to_bsd_sig[];
! 123:
! 124: void linux_old_to_bsd_sigset(const linux_old_sigset_t *, sigset_t *);
! 125: void bsd_to_linux_old_sigset(const sigset_t *, linux_old_sigset_t *);
! 126:
! 127: void linux_old_extra_to_bsd_sigset(const linux_old_sigset_t *,
! 128: const unsigned long *, sigset_t *);
! 129: void bsd_to_linux_old_extra_sigset(const sigset_t *,
! 130: linux_old_sigset_t *, unsigned long *);
! 131:
! 132: void linux_to_bsd_sigset(const linux_sigset_t *, sigset_t *);
! 133: void bsd_to_linux_sigset(const sigset_t *, linux_sigset_t *);
! 134:
! 135: void linux_old_to_bsd_sigaction(struct linux_old_sigaction *,
! 136: struct sigaction *);
! 137: void bsd_to_linux_old_sigaction(struct sigaction *,
! 138: struct linux_old_sigaction *);
! 139:
! 140: void linux_to_bsd_sigaction(struct linux_sigaction *,
! 141: struct sigaction *);
! 142: void bsd_to_linux_sigaction(struct sigaction *,
! 143: struct linux_sigaction *);
! 144:
! 145: int linux_to_bsd_signal (int, int *);
! 146: int bsd_to_linux_signal (int, int *);
! 147:
! 148: #endif /* !_LINUX_SIGNAL_H */
CVSweb