blob: e69c53bd192948bc08df64c75b636aa6add49987 [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 SRC_PERFORMANCE_TRACE_OPTIONS_H_
#define SRC_PERFORMANCE_TRACE_OPTIONS_H_
#include <cstddef>
#include <cstdint>
#include <string>
namespace tracing {
constexpr uint32_t kMinBufferSizeMegabytes = 1;
constexpr uint32_t kMaxBufferSizeMegabytes = 64;
// Individual providers can be tuned with these parameters.
struct ProviderSpec {
std::string name;
size_t buffer_size_in_mb;
};
enum class BufferingMode {
// Tracing stops when the buffer is full.
kOneshot,
// A circular buffer.
kCircular,
// Double buffering.
kStreaming,
};
struct BufferingModeSpec {
const char* name;
BufferingMode mode;
};
enum class Action {
// Stop the session and write results.
kStop,
};
const BufferingModeSpec* LookupBufferingMode(const std::string& name);
} // namespace tracing
#endif // SRC_PERFORMANCE_TRACE_OPTIONS_H_