| Index: base/process/memory.h
|
| diff --git a/base/process/memory.h b/base/process/memory.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d115a81eae224df3b0d339d757593a7227700478
|
| --- /dev/null
|
| +++ b/base/process/memory.h
|
| @@ -0,0 +1,71 @@
|
| +// Copyright (c) 2013 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_PROCESS_MEMORY_H_
|
| +#define BASE_PROCESS_MEMORY_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/base_export.h"
|
| +#include "base/process.h"
|
| +#include "build/build_config.h"
|
| +
|
| +#if defined(OS_WIN)
|
| +#include <windows.h>
|
| +#endif
|
| +
|
| +namespace base {
|
| +
|
| +// Enables low fragmentation heap (LFH) for every heaps of this process. This
|
| +// won't have any effect on heaps created after this function call. It will not
|
| +// modify data allocated in the heaps before calling this function. So it is
|
| +// better to call this function early in initialization and again before
|
| +// entering the main loop.
|
| +// Note: Returns true on Windows 2000 without doing anything.
|
| +BASE_EXPORT bool EnableLowFragmentationHeap();
|
| +
|
| +// Enables 'terminate on heap corruption' flag. Helps protect against heap
|
| +// overflow. Has no effect if the OS doesn't provide the necessary facility.
|
| +BASE_EXPORT void EnableTerminationOnHeapCorruption();
|
| +
|
| +// Turns on process termination if memory runs out.
|
| +BASE_EXPORT void EnableTerminationOnOutOfMemory();
|
| +
|
| +#if defined(USE_LINUX_BREAKPAD)
|
| +BASE_EXPORT extern size_t g_oom_size;
|
| +#endif
|
| +
|
| +#if defined(OS_WIN)
|
| +// Returns the module handle to which an address belongs. The reference count
|
| +// of the module is not incremented.
|
| +BASE_EXPORT HMODULE GetModuleFromAddress(void* address);
|
| +#endif
|
| +
|
| +#if defined(OS_LINUX) || defined(OS_ANDROID)
|
| +// The maximum allowed value for the OOM score.
|
| +const int kMaxOomScore = 1000;
|
| +
|
| +// This adjusts /proc/<pid>/oom_score_adj so the Linux OOM killer will
|
| +// prefer to kill certain process types over others. The range for the
|
| +// adjustment is [-1000, 1000], with [0, 1000] being user accessible.
|
| +// If the Linux system doesn't support the newer oom_score_adj range
|
| +// of [0, 1000], then we revert to using the older oom_adj, and
|
| +// translate the given value into [0, 15]. Some aliasing of values
|
| +// may occur in that case, of course.
|
| +BASE_EXPORT bool AdjustOOMScore(ProcessId process, int score);
|
| +#endif
|
| +
|
| +#if defined(OS_MACOSX)
|
| +// Very large images or svg canvases can cause huge mallocs. Skia
|
| +// does tricks on tcmalloc-based systems to allow malloc to fail with
|
| +// a NULL rather than hit the oom crasher. This replicates that for
|
| +// OSX.
|
| +//
|
| +// IF YOU USE THIS WITHOUT CONSULTING YOUR FRIENDLY OSX DEVELOPER,
|
| +// YOUR CODE IS LIKELY TO BE REVERTED. THANK YOU.
|
| +BASE_EXPORT void* UncheckedMalloc(size_t size);
|
| +#endif // defined(OS_MACOSX)
|
| +
|
| +} // namespace base
|
| +
|
| +#endif // BASE_PROCESS_MEMORY_H_
|
|
|