xref: /llvm-project/libcxx/include/__cxx03/csignal (revision ce7771902dc50d900de639d499a60486b83f70e0)
1e78f53d1SNikolas Klauser// -*- C++ -*-
2e78f53d1SNikolas Klauser//===----------------------------------------------------------------------===//
3e78f53d1SNikolas Klauser//
4e78f53d1SNikolas Klauser// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5e78f53d1SNikolas Klauser// See https://llvm.org/LICENSE.txt for license information.
6e78f53d1SNikolas Klauser// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7e78f53d1SNikolas Klauser//
8e78f53d1SNikolas Klauser//===----------------------------------------------------------------------===//
9e78f53d1SNikolas Klauser
10*ce777190SNikolas Klauser#ifndef _LIBCPP___CXX03_CSIGNAL
11*ce777190SNikolas Klauser#define _LIBCPP___CXX03_CSIGNAL
12e78f53d1SNikolas Klauser
13e78f53d1SNikolas Klauser/*
14e78f53d1SNikolas Klauser    csignal synopsis
15e78f53d1SNikolas Klauser
16e78f53d1SNikolas KlauserMacros:
17e78f53d1SNikolas Klauser
18e78f53d1SNikolas Klauser    SIG_DFL
19e78f53d1SNikolas Klauser    SIG_ERR
20e78f53d1SNikolas Klauser    SIG_IGN
21e78f53d1SNikolas Klauser    SIGABRT
22e78f53d1SNikolas Klauser    SIGFPE
23e78f53d1SNikolas Klauser    SIGILL
24e78f53d1SNikolas Klauser    SIGINT
25e78f53d1SNikolas Klauser    SIGSEGV
26e78f53d1SNikolas Klauser    SIGTERM
27e78f53d1SNikolas Klauser
28e78f53d1SNikolas Klausernamespace std
29e78f53d1SNikolas Klauser{
30e78f53d1SNikolas Klauser
31e78f53d1SNikolas KlauserTypes:
32e78f53d1SNikolas Klauser
33e78f53d1SNikolas Klauser    sig_atomic_t
34e78f53d1SNikolas Klauser
35e78f53d1SNikolas Klauservoid (*signal(int sig, void (*func)(int)))(int);
36e78f53d1SNikolas Klauserint raise(int sig);
37e78f53d1SNikolas Klauser
38e78f53d1SNikolas Klauser}  // std
39e78f53d1SNikolas Klauser
40e78f53d1SNikolas Klauser*/
41e78f53d1SNikolas Klauser
4273fbae83SNikolas Klauser#include <__cxx03/__config>
43e78f53d1SNikolas Klauser
44e78f53d1SNikolas Klauser// <signal.h> is not provided by libc++
45e78f53d1SNikolas Klauser#if __has_include(<signal.h>)
46e78f53d1SNikolas Klauser#  include <signal.h>
47*ce777190SNikolas Klauser#  ifdef _LIBCPP___CXX03_SIGNAL_H
48e78f53d1SNikolas Klauser#    error "If libc++ starts defining <signal.h>, the __has_include check should move to libc++'s <signal.h>"
49e78f53d1SNikolas Klauser#  endif
50e78f53d1SNikolas Klauser#endif
51e78f53d1SNikolas Klauser
52e78f53d1SNikolas Klauser#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
53e78f53d1SNikolas Klauser#  pragma GCC system_header
54e78f53d1SNikolas Klauser#endif
55e78f53d1SNikolas Klauser
56e78f53d1SNikolas Klauser_LIBCPP_BEGIN_NAMESPACE_STD
57e78f53d1SNikolas Klauser
58e78f53d1SNikolas Klauserusing ::sig_atomic_t _LIBCPP_USING_IF_EXISTS;
59e78f53d1SNikolas Klauserusing ::signal _LIBCPP_USING_IF_EXISTS;
60e78f53d1SNikolas Klauserusing ::raise _LIBCPP_USING_IF_EXISTS;
61e78f53d1SNikolas Klauser
62e78f53d1SNikolas Klauser_LIBCPP_END_NAMESPACE_STD
63e78f53d1SNikolas Klauser
64*ce777190SNikolas Klauser#endif // _LIBCPP___CXX03_CSIGNAL
65