blob: 8f8ddf2f4480bf67c3a604b59cb6e03e9a78b164 [file] [log] [blame]
Chris Palmer17b419492018-07-10 00:38:481// Copyright 2018 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SANDBOX_CONSTANTS_H_
6#define SANDBOX_CONSTANTS_H_
7
8#include <limits>
9
10#include "build/build_config.h"
11
12namespace sandbox {
13
14// kDataSizeLimit is used for RLIMIT_DATA on POSIX and for
15// JOBOBJECT_EXTENDED_LIMIT_INFORMATION.JobMemoryLimit on Windows.
16//
17#if defined(ARCH_CPU_64_BITS)
Eric Lawrence [MSFT]0b7f48c2021-03-31 22:00:5218// Note: On Linux and Windows, the sandbox may set a higher limit for
19// renderer and GPU processes if the system has enough physical memory.
20constexpr size_t kDataSizeLimit = size_t{1} << 32; // 4 GB
Chris Palmer17b419492018-07-10 00:38:4821#else
22// Limit the data memory to a size that prevents allocations that can't be
23// indexed by an int.
Clemens Hammacher7a9a00582019-09-09 09:34:0924constexpr size_t kDataSizeLimit =
Chris Palmer17b419492018-07-10 00:38:4825 static_cast<size_t>(std::numeric_limits<int>::max());
26#endif
27
28} // namespace sandbox
29
30#endif // SANDBOX_CONSTANTS_H_