Apache Portable Runtime
Toggle main menu visibility
Loading...
Searching...
No Matches
apr_signal.h
Go to the documentation of this file.
1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef APR_SIGNAL_H
18
#define APR_SIGNAL_H
19
20
/**
21
* @file apr_signal.h
22
* @brief APR Signal Handling
23
*/
24
25
#include "
apr.h
"
26
#include "
apr_pools.h
"
27
28
#if APR_HAVE_SIGNAL_H
29
#include <signal.h>
30
#endif
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
/* __cplusplus */
35
36
/**
37
* @defgroup apr_signal Signal Handling
38
* @ingroup APR
39
* @{
40
*/
41
42
#if APR_HAVE_SIGACTION || defined(DOXYGEN)
43
44
#if defined(DARWIN) && !defined(__cplusplus) && !defined(_ANSI_SOURCE)
45
/* work around Darwin header file bugs
46
* http://www.opensource.apple.com/bugs/X/BSD%20Kernel/2657228.html
47
*/
48
#undef SIG_DFL
49
#undef SIG_IGN
50
#undef SIG_ERR
51
#define SIG_DFL (void (*)(int))0
52
#define SIG_IGN (void (*)(int))1
53
#define SIG_ERR (void (*)(int))-1
54
#endif
55
56
/** Function prototype for signal handlers */
57
typedef
void
apr_sigfunc_t
(
int
);
58
59
/**
60
* Set the signal handler function for a given signal
61
* @param signo The signal (eg... SIGWINCH)
62
* @param func the function to get called
63
*/
64
APR_DECLARE
(
apr_sigfunc_t
*)
apr_signal
(
int
signo,
apr_sigfunc_t
* func);
65
66
#if defined(SIG_IGN) && !defined(SIG_ERR)
67
#define SIG_ERR ((apr_sigfunc_t *) -1)
68
#endif
69
70
#else
/* !APR_HAVE_SIGACTION */
71
#define apr_signal(a, b) signal(a, b)
72
#endif
73
74
75
/**
76
* Get the description for a specific signal number
77
* @param signum The signal number
78
* @return The description of the signal
79
*/
80
APR_DECLARE
(
const
char
*)
apr_signal_description_get
(
int
signum);
81
82
/**
83
* APR-private function for initializing the signal package
84
* @internal
85
* @param pglobal The internal, global pool
86
*/
87
void
apr_signal_init
(
apr_pool_t
*pglobal);
88
89
/**
90
* Block the delivery of a particular signal
91
* @param signum The signal number
92
* @return status
93
*/
94
APR_DECLARE
(
apr_status_t
)
apr_signal_block
(
int
signum);
95
96
/**
97
* Enable the delivery of a particular signal
98
* @param signum The signal number
99
* @return status
100
*/
101
APR_DECLARE
(
apr_status_t
)
apr_signal_unblock
(
int
signum);
102
103
/** @} */
104
105
#ifdef __cplusplus
106
}
107
#endif
/* __cplusplus */
108
109
#endif
/* APR_SIGNAL_H */
apr.h
APR Platform Definitions.
apr_pools.h
APR memory allocation.
apr_status_t
int apr_status_t
Definition
apr_errno.h:44
APR_DECLARE
#define APR_DECLARE(type)
Definition
apr.h:507
apr_pool_t
struct apr_pool_t apr_pool_t
Definition
apr_pools.h:60
apr_signal
apr_sigfunc_t * apr_signal(int signo, apr_sigfunc_t *func)
apr_signal_block
apr_status_t apr_signal_block(int signum)
apr_sigfunc_t
void apr_sigfunc_t(int)
Definition
apr_signal.h:57
apr_signal_init
void apr_signal_init(apr_pool_t *pglobal)
apr_signal_unblock
apr_status_t apr_signal_unblock(int signum)
apr_signal_description_get
const char * apr_signal_description_get(int signum)
include
apr_signal.h
Generated by
1.17.0