Home | History | Annotate | Download | only in system
      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 number 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 // Maximum number of active memory mappings.
     19 const size_t kMaxMappingTableSize = 1000000;
     20 
     21 const size_t kMaxWaitManyNumHandles = kMaxHandleTableSize;
     22 
     23 const size_t kMaxMessageNumBytes = 4 * 1024 * 1024;
     24 
     25 const size_t kMaxMessageNumHandles = 10000;
     26 
     27 // Maximum capacity of a data pipe, in bytes. This value must fit into a
     28 // |uint32_t|.
     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
     31 // probably okay).
     32 const size_t kMaxDataPipeCapacityBytes = 256 * 1024 * 1024;  // 256 MB.
     33 
     34 const size_t kDefaultDataPipeCapacityBytes = 1024 * 1024;  // 1 MB.
     35 
     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;
     39 
     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
     42 // anywhere.)
     43 const size_t kMaxSharedMemoryNumBytes = 1024 * 1024 * 1024;  // 1 GB.
     44 
     45 }  // namespace system
     46 }  // namespace mojo
     47 
     48 #endif  // MOJO_SYSTEM_CONSTANTS_H_
     49