70 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_CSIGNAL11#define _LIBCPP_CSIGNAL12 13/*14 csignal synopsis15 16Macros:17 18 SIG_DFL19 SIG_ERR20 SIG_IGN21 SIGABRT22 SIGFPE23 SIGILL24 SIGINT25 SIGSEGV26 SIGTERM27 28namespace std29{30 31Types:32 33 sig_atomic_t34 35void (*signal(int sig, void (*func)(int)))(int);36int raise(int sig);37 38} // std39 40*/41 42#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)43# include <__cxx03/csignal>44#else45# include <__config>46 47// <signal.h> is not provided by libc++48# if __has_include(<signal.h>)49# include <signal.h>50# ifdef _LIBCPP_SIGNAL_H51# error "If libc++ starts defining <signal.h>, the __has_include check should move to libc++'s <signal.h>"52# endif53# endif54 55# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)56# pragma GCC system_header57# endif58 59_LIBCPP_BEGIN_NAMESPACE_STD60 61using ::sig_atomic_t _LIBCPP_USING_IF_EXISTS;62using ::signal _LIBCPP_USING_IF_EXISTS;63using ::raise _LIBCPP_USING_IF_EXISTS;64 65_LIBCPP_END_NAMESPACE_STD66 67#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)68 69#endif // _LIBCPP_CSIGNAL70