// Copyright 2023 The Pigweed Authors // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. syntax = "proto3"; package pw.trace.proto; import "pw_chrono_protos/chrono.proto"; // TODO: b/309643763 - This is the prefered service for tracing, and the service // defined in trace_rpc.proto has been deprecated and will be removed once // existings clients migrate to this service. service TraceService { // Start will enable tracing, populating the trace ring buffer. rpc Start(StartRequest) returns (StartResponse) {} // On stop the ring buffer will be written to the configured // stream. No data is written to the stream until Stop is called. rpc Stop(StopRequest) returns (StopResponse) {} // Returns the clock paramaters of the system. rpc GetClockParameters(ClockParametersRequest) returns (ClockParametersResponse) {} } message StartRequest {} message StartResponse {} message StopRequest {} message StopResponse { // as a convenience, the file id is returned on stop which can be // used to start a transfer directly, rather that requiring a user // list the files to obtain the file id. optional uint32 file_id = 1; } message ClockParametersRequest {} message ClockParametersResponse { pw.chrono.ClockParameters clock_parameters = 1; }