github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/include/apr_signal.h (about)

     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 */