blob: b462de1bab7c2c9c0d8e0ecca86ae61231dc842e [file] [log] [blame]
// 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.
#ifndef COMPONENTS_GWP_ASAN_CLIENT_SAMPLING_MALLOC_SHIMS_H_
#define COMPONENTS_GWP_ASAN_CLIENT_SAMPLING_MALLOC_SHIMS_H_
#include <stddef.h> // for size_t
#include "build/build_config.h"
#include "components/gwp_asan/client/export.h"
#include "components/gwp_asan/client/guarded_page_allocator.h"
#include "components/gwp_asan/client/gwp_asan.h"
namespace gwp_asan {
namespace internal {
// Initialize the guarded allocator with the given parameters, and install the
// sampling malloc shims with the provided sampling frequency.
GWP_ASAN_EXPORT void InstallMallocHooks(
const AllocatorSettings& settings,
GuardedPageAllocator::OutOfMemoryCallback callback);
} // namespace internal
// Checks if the |ptr| is a GWP-ASan allocation. (This is exposed for use by
// Zombies on macOS.)
GWP_ASAN_EXPORT bool IsGwpAsanMallocAllocation(const void* ptr);
} // namespace gwp_asan
#endif // COMPONENTS_GWP_ASAN_CLIENT_SAMPLING_MALLOC_SHIMS_H_