xref: /freebsd/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_errno.cpp (revision 5b27928474e6a4103d65b347544705c40c9618fd)
1*68d75effSDimitry Andric //===-- sanitizer_errno.cpp -------------------------------------*- C++ -*-===//
2*68d75effSDimitry Andric //
3*68d75effSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*68d75effSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*68d75effSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*68d75effSDimitry Andric //
7*68d75effSDimitry Andric //===----------------------------------------------------------------------===//
8*68d75effSDimitry Andric //
9*68d75effSDimitry Andric // This file is shared between sanitizers run-time libraries.
10*68d75effSDimitry Andric //
11*68d75effSDimitry Andric // Defines errno to avoid including errno.h and its dependencies into other
12*68d75effSDimitry Andric // files (e.g. interceptors are not supposed to include any system headers).
13*68d75effSDimitry Andric //
14*68d75effSDimitry Andric //===----------------------------------------------------------------------===//
15*68d75effSDimitry Andric 
16*68d75effSDimitry Andric #include "sanitizer_errno_codes.h"
17*68d75effSDimitry Andric #include "sanitizer_internal_defs.h"
18*68d75effSDimitry Andric 
19*68d75effSDimitry Andric #include <errno.h>
20*68d75effSDimitry Andric 
21*68d75effSDimitry Andric namespace __sanitizer {
22*68d75effSDimitry Andric 
23*68d75effSDimitry Andric COMPILER_CHECK(errno_ENOMEM == ENOMEM);
24*68d75effSDimitry Andric COMPILER_CHECK(errno_EBUSY == EBUSY);
25*68d75effSDimitry Andric COMPILER_CHECK(errno_EINVAL == EINVAL);
26*68d75effSDimitry Andric 
27*68d75effSDimitry Andric // EOWNERDEAD is not present in some older platforms.
28*68d75effSDimitry Andric #if defined(EOWNERDEAD)
29*68d75effSDimitry Andric extern const int errno_EOWNERDEAD = EOWNERDEAD;
30*68d75effSDimitry Andric #else
31*68d75effSDimitry Andric extern const int errno_EOWNERDEAD = -1;
32*68d75effSDimitry Andric #endif
33*68d75effSDimitry Andric 
34*68d75effSDimitry Andric }  // namespace __sanitizer
35