// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_FILES_FILE_POSIX_HOOKS_INTERNAL_H_ #define BASE_FILES_FILE_POSIX_HOOKS_INTERNAL_H_ #include "base/base_export.h" namespace base { // Define empty hooks for blacklisting file descriptors used in base::File. // These functions should be declared 'weak', i.e. the functions declared in // a default way would have precedence over the weak ones at link time. This // works for both static and dynamic linking. // TODO(pasko): Remove these hooks when crbug.com/424562 is fixed. // // With compilers other than GCC/Clang define strong no-op symbols for // simplicity. #if defined(COMPILER_GCC) #define ATTRIBUTE_WEAK __attribute__ ((weak)) #else #define ATTRIBUTE_WEAK #endif BASE_EXPORT void ProtectFileDescriptor(int fd) ATTRIBUTE_WEAK; BASE_EXPORT void UnprotectFileDescriptor(int fd) ATTRIBUTE_WEAK; #undef ATTRIBUTE_WEAK } // namespace base #endif // BASE_FILES_FILE_POSIX_HOOKS_INTERNAL_H_