xref: /openbsd-src/gnu/llvm/libcxx/include/csignal (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
146035553Spatrick// -*- C++ -*-
2*4bdff4beSrobert//===----------------------------------------------------------------------===//
346035553Spatrick//
446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
546035553Spatrick// See https://llvm.org/LICENSE.txt for license information.
646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
746035553Spatrick//
846035553Spatrick//===----------------------------------------------------------------------===//
946035553Spatrick
1046035553Spatrick#ifndef _LIBCPP_CSIGNAL
1146035553Spatrick#define _LIBCPP_CSIGNAL
1246035553Spatrick
1346035553Spatrick/*
1446035553Spatrick    csignal synopsis
1546035553Spatrick
1646035553SpatrickMacros:
1746035553Spatrick
1846035553Spatrick    SIG_DFL
1946035553Spatrick    SIG_ERR
2046035553Spatrick    SIG_IGN
2146035553Spatrick    SIGABRT
2246035553Spatrick    SIGFPE
2346035553Spatrick    SIGILL
2446035553Spatrick    SIGINT
2546035553Spatrick    SIGSEGV
2646035553Spatrick    SIGTERM
2746035553Spatrick
2846035553Spatricknamespace std
2946035553Spatrick{
3046035553Spatrick
3146035553SpatrickTypes:
3246035553Spatrick
3346035553Spatrick    sig_atomic_t
3446035553Spatrick
3546035553Spatrickvoid (*signal(int sig, void (*func)(int)))(int);
3646035553Spatrickint raise(int sig);
3746035553Spatrick
3846035553Spatrick}  // std
3946035553Spatrick
4046035553Spatrick*/
4146035553Spatrick
42*4bdff4beSrobert#include <__assert> // all public C++ headers provide the assertion handler
4346035553Spatrick#include <__config>
44*4bdff4beSrobert
45*4bdff4beSrobert// <signal.h> is not provided by libc++
46*4bdff4beSrobert#if __has_include(<signal.h>)
4746035553Spatrick#  include <signal.h>
48*4bdff4beSrobert#  ifdef _LIBCPP_SIGNAL_H
49*4bdff4beSrobert#    error "If libc++ starts defining <signal.h>, the __has_include check should move to libc++'s <signal.h>"
50*4bdff4beSrobert#  endif
51*4bdff4beSrobert#endif
5246035553Spatrick
5346035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
5446035553Spatrick#  pragma GCC system_header
5546035553Spatrick#endif
5646035553Spatrick
5746035553Spatrick_LIBCPP_BEGIN_NAMESPACE_STD
5846035553Spatrick
5976d0caaeSpatrickusing ::sig_atomic_t _LIBCPP_USING_IF_EXISTS;
6076d0caaeSpatrickusing ::signal _LIBCPP_USING_IF_EXISTS;
6176d0caaeSpatrickusing ::raise _LIBCPP_USING_IF_EXISTS;
6246035553Spatrick
6346035553Spatrick_LIBCPP_END_NAMESPACE_STD
6446035553Spatrick
6546035553Spatrick#endif // _LIBCPP_CSIGNAL
66