1 // Copyright 2013 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.
5 #ifndef MOJO_SYSTEM_CONSTANTS_H_
6 #define MOJO_SYSTEM_CONSTANTS_H_
13 // Maximum number of open (Mojo) handles.
14 // TODO(vtl): This doesn't count "live" handles, some of which may live in
16 const size_t kMaxHandleTableSize
= 1000000;
18 // Maximum number of active memory mappings.
19 const size_t kMaxMappingTableSize
= 1000000;
21 const size_t kMaxWaitManyNumHandles
= kMaxHandleTableSize
;
23 const size_t kMaxMessageNumBytes
= 4 * 1024 * 1024;
25 const size_t kMaxMessageNumHandles
= 10000;
27 // Maximum capacity of a data pipe, in bytes. This value must fit into a
29 // WARNING: If you bump it closer to 2^32, you must audit all the code to check
30 // that we don't overflow (2^31 would definitely be risky; up to 2^30 is
32 const size_t kMaxDataPipeCapacityBytes
= 256 * 1024 * 1024; // 256 MB.
34 const size_t kDefaultDataPipeCapacityBytes
= 1024 * 1024; // 1 MB.
36 // Alignment for the "start" of the data buffer used by data pipes. (The
37 // alignment of elements will depend on this and the element size.)
38 const size_t kDataPipeBufferAlignmentBytes
= 16;
40 // TODO(vtl): Set this hard limit appropriately (e.g., higher on 64-bit). (This
41 // will also entail some auditing to make sure I'm not messing up my checks
43 const size_t kMaxSharedMemoryNumBytes
= 1024 * 1024 * 1024; // 1 GB.
48 #endif // MOJO_SYSTEM_CONSTANTS_H_