blob: eacd2d85351eeb36e0bd156df7ab270144cc0d0e [file] [log] [blame]
// Copyright 2019 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.
library fuchsia.tracing.kernel;
using zx;
// TODO( Allow providing a vmo of the buffer to use.
protocol Controller {
/// Start tracing.
Start(uint32 group_mask) -> (zx.status status);
/// Stop tracing.
Stop() -> (zx.status status);
/// Rewind the trace buffer.
Rewind() -> (zx.status status);
const uint32 MAX_BUF = 8192;
protocol Reader {
/// Get the number of bytes written to the trace buffer.
/// `size` is valid if, and only if, `status` is `ZX_OK`.
GetBytesWritten() -> (zx.status status, uint64 size);
/// Read `count` bytes from ktrace buffer at `offset`
/// and return `data` read upon success
ReadAt(uint64 count, uint64 offset) -> (zx.status status, vector<uint8>:MAX_BUF data);