// 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.kernel;

using zx;

/// Maximum number of bytes in a command string
const uint32 DEBUG_COMMAND_MAX = 1024;

/// Acts on behalf of the caller to interact with privileged debug system calls.
[Discoverable, ForDeprecatedCBindings]
protocol DebugBroker {
    /// Pass debug command through to the kernel shell.
    /// Look at zx_debug_send_command syscall handling to find valid values.
    SendDebugCommand(string:DEBUG_COMMAND_MAX command) -> (zx.status status);

    /// Sets whether kernel tracing (ktrace) is enabled or disabled.
    SetTracingEnabled(bool enabled) -> (zx.status status);
};
