<!--
Copyright 2023 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.

DO NOT EDIT. Generated from FIDL library zx by zither, a Fuchsia platform tool.

See //docs/reference/syscalls/README.md#documentation-generation for
regeneration instructions.
-->

# zx_debug_send_command

## Summary

TODO(https://fxbug.dev/42108078)

## Declaration

```c
#include <zircon/syscalls.h>

zx_status_t zx_debug_send_command(zx_handle_t resource,
                                  const char* buffer,
                                  size_t buffer_size);
```

## Description

To use the `zx_debug_send_command()` function, you must specify
`kernel.enable-debugging-syscalls=true` on the kernel command line. Otherwise,
the function returns `ZX_ERR_NOT_SUPPORTED`.

TODO(https://fxbug.dev/42108078)

## Rights

*resource* must have resource kind `ZX_RSRC_KIND_SYSTEM` with base
`ZX_RSRC_SYSTEM_DEBUG_BASE`.

## Return value

TODO(https://fxbug.dev/42108078)

## Errors

TODO(https://fxbug.dev/42108078)

## See also

TODO(https://fxbug.dev/42108078)
