//
// 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/metrics/android/cpu_metric.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 { AndroidProcessMetadata } from "./process_metadata_pb";
import { file_protos_perfetto_metrics_android_process_metadata } from "./process_metadata_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/metrics/android/cpu_metric.proto.
 */
export const file_protos_perfetto_metrics_android_cpu_metric: GenFile = /*@__PURE__*/
  fileDesc("CjBwcm90b3MvcGVyZmV0dG8vbWV0cmljcy9hbmRyb2lkL2NwdV9tZXRyaWMucHJvdG8SD3BlcmZldHRvLnByb3RvcyKfBwoQQW5kcm9pZENwdU1ldHJpYxI/Cgxwcm9jZXNzX2luZm8YASADKAsyKS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZENwdU1ldHJpYy5Qcm9jZXNzGnAKB01ldHJpY3MSDwoHbWN5Y2xlcxgBIAEoAxISCgpydW50aW1lX25zGAIgASgDEhQKDG1pbl9mcmVxX2toehgDIAEoAxIUCgxtYXhfZnJlcV9raHoYBCABKAMSFAoMYXZnX2ZyZXFfa2h6GAUgASgDGlgKCENvcmVEYXRhEgoKAmlkGAEgASgNEjoKB21ldHJpY3MYBiABKAsyKS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZENwdU1ldHJpYy5NZXRyaWNzSgQIAhAGGlgKDENvcmVUeXBlRGF0YRIMCgR0eXBlGAEgASgJEjoKB21ldHJpY3MYAiABKAsyKS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZENwdU1ldHJpYy5NZXRyaWNzGtUBCgZUaHJlYWQSDAoEbmFtZRgBIAEoCRI6CgdtZXRyaWNzGAQgASgLMikucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRDcHVNZXRyaWMuTWV0cmljcxI4CgRjb3JlGAIgAygLMioucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRDcHVNZXRyaWMuQ29yZURhdGESQQoJY29yZV90eXBlGAUgAygLMi4ucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRDcHVNZXRyaWMuQ29yZVR5cGVEYXRhSgQIAxAEGssCCgdQcm9jZXNzEgwKBG5hbWUYASABKAkSOAoHcHJvY2VzcxgIIAEoCzInLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkUHJvY2Vzc01ldGFkYXRhEjoKB21ldHJpY3MYBCABKAsyKS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZENwdU1ldHJpYy5NZXRyaWNzEjkKB3RocmVhZHMYBiADKAsyKC5wZXJmZXR0by5wcm90b3MuQW5kcm9pZENwdU1ldHJpYy5UaHJlYWQSOAoEY29yZRgHIAMoCzIqLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkQ3B1TWV0cmljLkNvcmVEYXRhEkEKCWNvcmVfdHlwZRgFIAMoCzIuLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkQ3B1TWV0cmljLkNvcmVUeXBlRGF0YUoECAMQBA", [file_protos_perfetto_metrics_android_process_metadata]);

/**
 * @generated from message perfetto.protos.AndroidCpuMetric
 */
export type AndroidCpuMetric = Message<"perfetto.protos.AndroidCpuMetric"> & {
  /**
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.Process process_info = 1;
   */
  processInfo: AndroidCpuMetric_Process[];
};

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

/**
 * Next id: 6
 *
 * @generated from message perfetto.protos.AndroidCpuMetric.Metrics
 */
export type AndroidCpuMetric_Metrics = Message<"perfetto.protos.AndroidCpuMetric.Metrics"> & {
  /**
   * CPU megacycles (i.e. cycles divided by 1e6).
   *
   * @generated from field: optional int64 mcycles = 1;
   */
  mcycles: bigint;

  /**
   * Total time the thread was running for this breakdown in
   * nanoseconds.
   *
   * @generated from field: optional int64 runtime_ns = 2;
   */
  runtimeNs: bigint;

  /**
   * Min/max/average CPU frequency weighted by the time the CPU was
   * running at each frequency in this breakdown.
   *
   * @generated from field: optional int64 min_freq_khz = 3;
   */
  minFreqKhz: bigint;

  /**
   * @generated from field: optional int64 max_freq_khz = 4;
   */
  maxFreqKhz: bigint;

  /**
   * @generated from field: optional int64 avg_freq_khz = 5;
   */
  avgFreqKhz: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidCpuMetric.Metrics.
 * Use `create(AndroidCpuMetric_MetricsSchema)` to create a new message.
 */
export const AndroidCpuMetric_MetricsSchema: GenMessage<AndroidCpuMetric_Metrics> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_cpu_metric, 0, 0);

/**
 * Next id: 7
 *
 * @generated from message perfetto.protos.AndroidCpuMetric.CoreData
 */
export type AndroidCpuMetric_CoreData = Message<"perfetto.protos.AndroidCpuMetric.CoreData"> & {
  /**
   * @generated from field: optional uint32 id = 1;
   */
  id: number;

  /**
   * @generated from field: optional perfetto.protos.AndroidCpuMetric.Metrics metrics = 6;
   */
  metrics?: AndroidCpuMetric_Metrics;
};

/**
 * Describes the message perfetto.protos.AndroidCpuMetric.CoreData.
 * Use `create(AndroidCpuMetric_CoreDataSchema)` to create a new message.
 */
export const AndroidCpuMetric_CoreDataSchema: GenMessage<AndroidCpuMetric_CoreData> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_cpu_metric, 0, 1);

/**
 * Next id: 3
 *
 * @generated from message perfetto.protos.AndroidCpuMetric.CoreTypeData
 */
export type AndroidCpuMetric_CoreTypeData = Message<"perfetto.protos.AndroidCpuMetric.CoreTypeData"> & {
  /**
   * @generated from field: optional string type = 1;
   */
  type: string;

  /**
   * @generated from field: optional perfetto.protos.AndroidCpuMetric.Metrics metrics = 2;
   */
  metrics?: AndroidCpuMetric_Metrics;
};

/**
 * Describes the message perfetto.protos.AndroidCpuMetric.CoreTypeData.
 * Use `create(AndroidCpuMetric_CoreTypeDataSchema)` to create a new message.
 */
export const AndroidCpuMetric_CoreTypeDataSchema: GenMessage<AndroidCpuMetric_CoreTypeData> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_cpu_metric, 0, 2);

/**
 * Next id: 7
 *
 * @generated from message perfetto.protos.AndroidCpuMetric.Thread
 */
export type AndroidCpuMetric_Thread = Message<"perfetto.protos.AndroidCpuMetric.Thread"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional perfetto.protos.AndroidCpuMetric.Metrics metrics = 4;
   */
  metrics?: AndroidCpuMetric_Metrics;

  /**
   * Breakdowns of above metrics.
   *
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.CoreData core = 2;
   */
  core: AndroidCpuMetric_CoreData[];

  /**
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.CoreTypeData core_type = 5;
   */
  coreType: AndroidCpuMetric_CoreTypeData[];
};

/**
 * Describes the message perfetto.protos.AndroidCpuMetric.Thread.
 * Use `create(AndroidCpuMetric_ThreadSchema)` to create a new message.
 */
export const AndroidCpuMetric_ThreadSchema: GenMessage<AndroidCpuMetric_Thread> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_cpu_metric, 0, 3);

/**
 * Next id: 8
 *
 * @generated from message perfetto.protos.AndroidCpuMetric.Process
 */
export type AndroidCpuMetric_Process = Message<"perfetto.protos.AndroidCpuMetric.Process"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional perfetto.protos.AndroidProcessMetadata process = 8;
   */
  process?: AndroidProcessMetadata;

  /**
   * @generated from field: optional perfetto.protos.AndroidCpuMetric.Metrics metrics = 4;
   */
  metrics?: AndroidCpuMetric_Metrics;

  /**
   * Breakdowns of above metrics.
   *
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.Thread threads = 6;
   */
  threads: AndroidCpuMetric_Thread[];

  /**
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.CoreData core = 7;
   */
  core: AndroidCpuMetric_CoreData[];

  /**
   * @generated from field: repeated perfetto.protos.AndroidCpuMetric.CoreTypeData core_type = 5;
   */
  coreType: AndroidCpuMetric_CoreTypeData[];
};

/**
 * Describes the message perfetto.protos.AndroidCpuMetric.Process.
 * Use `create(AndroidCpuMetric_ProcessSchema)` to create a new message.
 */
export const AndroidCpuMetric_ProcessSchema: GenMessage<AndroidCpuMetric_Process> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_cpu_metric, 0, 4);

