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