| // 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_ |