blob: 1137b487e58f04ef548937b07c48c148dc117617 [file] [log] [blame]
// 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_