// -*- C++ -*-
//===-------------------------- cerrno ------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP_CERRNO
#define _LIBCPP_CERRNO

/*
    cerrno synopsis

Macros:

    EDOM
    EILSEQ  // C99
    ERANGE
    errno

*/

#include <__config>
#include <errno.h>

#pragma GCC system_header

#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)

const int __elast1 = ELAST+1;
const int __elast2 = ELAST+2;
#undef ELAST

#ifdef ENOTRECOVERABLE

#define EOWNERDEAD __elast1
#define ELAST EOWNERDEAD

#elif defined(EOWNERDEAD)

#define ENOTRECOVERABLE __elast1
#define ELAST ENOTRECOVERABLE

#else  // defined(EOWNERDEAD)

#define EOWNERDEAD __elast1
#define ENOTRECOVERABLE __elast2
#define ELAST ENOTRECOVERABLE

#endif  // defined(EOWNERDEAD)

#endif  // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)

#endif  // _LIBCPP_CERRNO
