123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef BASE_ANDROID_REACHED_ADDRESSES_BITSET_H_
- #define BASE_ANDROID_REACHED_ADDRESSES_BITSET_H_
- #include <atomic>
- #include <vector>
- #include "base/base_export.h"
- namespace base {
- template <typename T>
- class NoDestructor;
- namespace android {
- class BASE_EXPORT ReachedAddressesBitset {
- public:
-
-
-
-
-
-
- static ReachedAddressesBitset* GetTextBitset();
-
-
- void RecordAddress(uintptr_t address);
-
-
- std::vector<uint32_t> GetReachedOffsets() const;
- private:
- friend class ReachedAddressesBitsetTest;
- friend class NoDestructor<ReachedAddressesBitset>;
-
-
- static constexpr size_t kBytesGranularity = 4;
-
-
-
-
-
- ReachedAddressesBitset(uintptr_t start_address,
- uintptr_t end_address,
- std::atomic<uint32_t>* storage_ptr,
- size_t storage_size);
- size_t NumberOfReachableElements() const;
- uintptr_t start_address_;
- uintptr_t end_address_;
- std::atomic<uint32_t>* reached_;
- };
- }
- }
- #endif
|