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