// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_CORE_EMBEDDER_CONFIGURATION_H_ #define MOJO_CORE_EMBEDDER_CONFIGURATION_H_ #include <stddef.h> #include <stdint.h> namespace mojo { namespace core { // A set of configuration parameters that the Mojo system uses internally. The // configuration used can be overridden from the default by passing a // Configuration into |mojo::core::Init()|. See embedder.h. // // NOTE: Please ensure that this type remains a simple aggregate of POD fields. struct Configuration { // Indicates whether this process should act as the sole broker process within // its graph of interconnected Mojo-embedder processes. This setting is only // relevant in multiprocess environments. bool is_broker_process = false; // If |true|, this process will always attempt to allocate shared memory // directly rather than synchronously delegating to a broker process where // applicable. // // This is useful to set in processes which are not acting as the broker but // which are otherwise sufficiently privileged to allocate named shared memory // objects. bool force_direct_shared_memory_allocation = false; // Maximum number of active memory mappings. size_t max_mapping_table_size = 1000000; // Maximum data size of messages sent over message pipes, in bytes. size_t max_message_num_bytes = 256 * 1024 * 1024; // Maximum size of a single shared memory segment, in bytes. size_t max_shared_memory_num_bytes = 1024 * 1024 * 1024; }; } // namespace core } // namespace mojo #endif // MOJO_CORE_EMBEDDER_CONFIGURATION_H_