summaryrefslogtreecommitdiff
path: root/pico/osdep/signals.h
blob: 2ea33cc4f2d3005bf4b29359fe3abdd257a0d338 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * $Id: signals.h 761 2007-10-23 22:35:18Z hubert@u.washington.edu $
 *
 * ========================================================================
 * Copyright 2006 University of Washington
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * ========================================================================
 */


#ifndef PICO_OSDEP_SIGNALS_INCLUDED
#define PICO_OSDEP_SIGNALS_INCLUDED


/*
 * [Re]Define signal functions as needed...
 */
#ifdef	POSIX_SIGNALS
/*
 * Redefine signal call to our wrapper of POSIX sigaction
 */
#define	signal(SIG,ACT)		posix_signal(SIG,ACT)
#define	our_sigunblock(SIG)	posix_sigunblock(SIG)
#else	/* !POSIX_SIGNALS */
#ifdef	SYSV_SIGNALS
/*
 * Redefine signal calls to SYSV style call.
 */
#define	signal(SIG,ACT)		sigset(SIG,ACT)
#define	our_sigunblock(SIG)	sigrelse(SIG)
#else	/* !SYSV_SIGNALS */
#ifdef	_WINDOWS
#define	our_sigunblock(SIG)
#else	/* !_WINDOWS */
/*
 * Good ol' BSD signals.
 */
#define	our_sigunblock(SIG)
#endif /* !_WINDOWS */
#endif /* !SYSV_SIGNALS */
#endif /* !POSIX_SIGNALS */



/* exported prototypes */
void		picosigs(void);
#if	defined(SIGWINCH) && defined(TIOCGWINSZ)
RETSIGTYPE	winch_handler(int);
#endif

#ifdef POSIX_SIGNALS
void		(*posix_signal(int, RETSIGTYPE (*)()))(int);
int		posix_sigunblock(int);
#endif

#endif /* PICO_OSDEP_SIGNALS_INCLUDED */