// -*- C++ -*-
//===--------------------------- csignal ----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCUDACXX_CSIGNAL
#define _LIBCUDACXX_CSIGNAL

/*
    csignal synopsis

Macros:

    SIG_DFL
    SIG_ERR
    SIG_IGN
    SIGABRT
    SIGFPE
    SIGILL
    SIGINT
    SIGSEGV
    SIGTERM

namespace std
{

Types:

    sig_atomic_t

void (*signal(int sig, void (*func)(int)))(int);
int raise(int sig);

}  // std

*/

#include <__config>
#include <signal.h>

#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
#  pragma GCC system_header
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
#  pragma clang system_header
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
#  pragma system_header
#endif // no system header

_LIBCUDACXX_BEGIN_NAMESPACE_STD

using ::sig_atomic_t;
using ::signal;
using ::raise;

_LIBCUDACXX_END_NAMESPACE_STD

#endif  // _LIBCUDACXX_CSIGNAL
