| // Copyright 2022 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.power.manager.debug; |
| |
| /// Error variants that may be returned by the `Message` method. |
| type MessageError = flexible enum { |
| GENERIC = 0; |
| INVALID_NODE_NAME = 1; |
| UNSUPPORTED_COMMAND = 2; |
| INVALID_COMMAND_ARGS = 3; |
| }; |
| |
| /// Exposes a debug control interface to the Power Manager. |
| @discoverable |
| closed protocol Debug { |
| /// Sends a debug message to the specified Power Manager node. |
| /// |
| /// + `node_name` is the name of the Power Manager node to message. A list |
| /// of node names for a given device can be found in the device-specific |
| /// node config file [here](/src/power/power-manager/node_config/). |
| /// + `command` is the node-specific command to be sent to the specified |
| /// node. The supported commands for a given node can be found by |
| /// inspecting that node's source. |
| /// + `args` is a vector of arguments to be sent that may be required by the |
| /// node to execute the command. |
| /// |
| /// For example, to override the SOC temperature to 40C on Astro (according |
| /// to the current [node |
| /// configuration](https://cs.opensource.google/fuchsia/fuchsia/+/main:src/power/power-manager/node_config/astro_node_config.json;l=58;drc=2cd2c555e5d2f0371e36bdca70ed4ba92635cb86) |
| /// and `TemperatureHandler` [implementation](https://cs.opensource.google/fuchsia/fuchsia/+/main:src/power/power-manager/src/temperature_handler.rs;drc=f6e405ca555f5e5ab575d421e84b721684ba41fa): |
| /// |
| /// ``` |
| /// Message( |
| /// "temperature_soc_pll", |
| /// "set_temperature", |
| /// [ "40" ] |
| /// ) |
| /// ``` |
| /// |
| strict Message(struct { |
| node_name string:MAX; |
| command string:MAX; |
| args vector<string:MAX>:MAX; |
| }) -> () error MessageError; |
| }; |