constants.h revision effb81e5f8246d0db0270817048dc992db66e9fb
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 10namespace mojo { 11namespace 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. 16const size_t kMaxHandleTableSize = 1000000; 17 18const size_t kMaxWaitManyNumHandles = kMaxHandleTableSize; 19 20const size_t kMaxMessageNumBytes = 4 * 1024 * 1024; 21 22const 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). 29const size_t kMaxDataPipeCapacityBytes = 256 * 1024 * 1024; // 256 MB. 30 31const 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.) 35const size_t kDataPipeBufferAlignmentBytes = 16; 36 37// TODO(vtl): Set this hard limit appropriately (e.g., higher on 64-bit). (This 38// will also entail some auditing to make sure I'm not messing up my checks 39// anywhere.) 40const size_t kMaxSharedMemoryNumBytes = 1024 * 1024 * 1024; // 1 GB. 41 42} // namespace system 43} // namespace mojo 44 45#endif // MOJO_SYSTEM_CONSTANTS_H_ 46