//
// Copyright (C) 2019 The Android Open Source Project
//
// 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
//
//      http://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.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace/power/power_rails.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/power/power_rails.proto.
 */
export const file_protos_perfetto_trace_power_power_rails: GenFile = /*@__PURE__*/
  fileDesc("Ci1wcm90b3MvcGVyZmV0dG8vdHJhY2UvcG93ZXIvcG93ZXJfcmFpbHMucHJvdG8SD3BlcmZldHRvLnByb3RvcyKxAgoKUG93ZXJSYWlscxJDCg9yYWlsX2Rlc2NyaXB0b3IYASADKAsyKi5wZXJmZXR0by5wcm90b3MuUG93ZXJSYWlscy5SYWlsRGVzY3JpcHRvchI7CgtlbmVyZ3lfZGF0YRgCIAMoCzImLnBlcmZldHRvLnByb3Rvcy5Qb3dlclJhaWxzLkVuZXJneURhdGEaXgoOUmFpbERlc2NyaXB0b3ISDQoFaW5kZXgYASABKA0SEQoJcmFpbF9uYW1lGAIgASgJEhMKC3N1YnN5c19uYW1lGAMgASgJEhUKDXNhbXBsaW5nX3JhdGUYBCABKA0aQQoKRW5lcmd5RGF0YRINCgVpbmRleBgBIAEoDRIUCgx0aW1lc3RhbXBfbXMYAiABKAQSDgoGZW5lcmd5GAMgASgE");

/**
 * @generated from message perfetto.protos.PowerRails
 */
export type PowerRails = Message<"perfetto.protos.PowerRails"> & {
  /**
   * This is only emitted at the beginning of the trace.
   *
   * @generated from field: repeated perfetto.protos.PowerRails.RailDescriptor rail_descriptor = 1;
   */
  railDescriptor: PowerRails_RailDescriptor[];

  /**
   * @generated from field: repeated perfetto.protos.PowerRails.EnergyData energy_data = 2;
   */
  energyData: PowerRails_EnergyData[];
};

/**
 * Describes the message perfetto.protos.PowerRails.
 * Use `create(PowerRailsSchema)` to create a new message.
 */
export const PowerRailsSchema: GenMessage<PowerRails> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_power_power_rails, 0);

/**
 * @generated from message perfetto.protos.PowerRails.RailDescriptor
 */
export type PowerRails_RailDescriptor = Message<"perfetto.protos.PowerRails.RailDescriptor"> & {
  /**
   * Index corresponding to the rail
   *
   * @generated from field: optional uint32 index = 1;
   */
  index: number;

  /**
   * Name of the rail
   *
   * @generated from field: optional string rail_name = 2;
   */
  railName: string;

  /**
   * Name of the subsystem to which this rail belongs
   *
   * @generated from field: optional string subsys_name = 3;
   */
  subsysName: string;

  /**
   * Hardware sampling rate (Hz).
   *
   * @generated from field: optional uint32 sampling_rate = 4;
   */
  samplingRate: number;
};

/**
 * Describes the message perfetto.protos.PowerRails.RailDescriptor.
 * Use `create(PowerRails_RailDescriptorSchema)` to create a new message.
 */
export const PowerRails_RailDescriptorSchema: GenMessage<PowerRails_RailDescriptor> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_power_power_rails, 0, 0);

/**
 * @generated from message perfetto.protos.PowerRails.EnergyData
 */
export type PowerRails_EnergyData = Message<"perfetto.protos.PowerRails.EnergyData"> & {
  /**
   * Index corresponding to RailDescriptor.index
   *
   * @generated from field: optional uint32 index = 1;
   */
  index: number;

  /**
   * Time since device boot(CLOCK_BOOTTIME) in milli-seconds.
   *
   * @generated from field: optional uint64 timestamp_ms = 2;
   */
  timestampMs: bigint;

  /**
   * Accumulated energy since device boot in microwatt-seconds (uWs).
   *
   * @generated from field: optional uint64 energy = 3;
   */
  energy: bigint;
};

/**
 * Describes the message perfetto.protos.PowerRails.EnergyData.
 * Use `create(PowerRails_EnergyDataSchema)` to create a new message.
 */
export const PowerRails_EnergyDataSchema: GenMessage<PowerRails_EnergyData> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_power_power_rails, 0, 1);

