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