| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #include "base/files/scoped_file.h" |
| // Copied from <android/fdsan.h>. |
| // This can go away once this header is included in our copy of the NDK. |
| void android_fdsan_exchange_owner_tag(int fd, |
| __attribute__((__weak__)); |
| static uint64_t ScopedFDToTag(const ScopedFD& owner) { |
| return reinterpret_cast<uint64_t>(&owner); |
| void ScopedFDCloseTraits::Acquire(const ScopedFD& owner, int fd) { |
| if (android_fdsan_exchange_owner_tag) { |
| android_fdsan_exchange_owner_tag(fd, 0, ScopedFDToTag(owner)); |
| void ScopedFDCloseTraits::Release(const ScopedFD& owner, int fd) { |
| if (android_fdsan_exchange_owner_tag) { |
| android_fdsan_exchange_owner_tag(fd, ScopedFDToTag(owner), 0); |