Annotation of win32/apache22/srclib/apr/include/apr_signal.h, revision 1.1
1.1 ! moko 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 */
E-mail: