• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef MOJO_SYSTEM_CONSTANTS_H_
6 #define MOJO_SYSTEM_CONSTANTS_H_
7 
8 #include <stddef.h>
9 
10 namespace mojo {
11 namespace system {
12 
13 // Maximum of open (Mojo) handles.
14 // TODO(vtl): This doesn't count "live" handles, some of which may live in
15 // messages.
16 const size_t kMaxHandleTableSize = 1000000;
17 
18 const size_t kMaxWaitManyNumHandles = kMaxHandleTableSize;
19 
20 const size_t kMaxMessageNumBytes = 4 * 1024 * 1024;
21 
22 const size_t kMaxMessageNumHandles = 10000;
23 
24 // Maximum capacity of a data pipe, in bytes. This value must fit into a
25 // |uint32_t|.
26 // WARNING: If you bump it closer to 2^32, you must audit all the code to check
27 // that we don't overflow (2^31 would definitely be risky; up to 2^30 is
28 // probably okay).
29 const size_t kMaxDataPipeCapacityBytes = 256 * 1024 * 1024;  // 256 MB.
30 
31 const size_t kDefaultDataPipeCapacityBytes = 1024 * 1024;  // 1 MB.
32 
33 // Alignment for the "start" of the data buffer used by data pipes. (The
34 // alignment of elements will depend on this and the element size.)
35 const size_t kDataPipeBufferAlignmentBytes = 16;
36 
37 }  // namespace system
38 }  // namespace mojo
39 
40 #endif  // MOJO_SYSTEM_CONSTANTS_H_
41