//
// Copyright (C) 2018 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/ftrace/generic.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

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

/**
 * Describes the file protos/perfetto/trace/ftrace/generic.proto.
 */
export const file_protos_perfetto_trace_ftrace_generic: GenFile = /*@__PURE__*/
  fileDesc("Cipwcm90b3MvcGVyZmV0dG8vdHJhY2UvZnRyYWNlL2dlbmVyaWMucHJvdG8SD3BlcmZldHRvLnByb3RvcyLCAQoSR2VuZXJpY0Z0cmFjZUV2ZW50EhIKCmV2ZW50X25hbWUYASABKAkSOAoFZmllbGQYAiADKAsyKS5wZXJmZXR0by5wcm90b3MuR2VuZXJpY0Z0cmFjZUV2ZW50LkZpZWxkGl4KBUZpZWxkEgwKBG5hbWUYASABKAkSEwoJc3RyX3ZhbHVlGAMgASgJSAASEwoJaW50X3ZhbHVlGAQgASgDSAASFAoKdWludF92YWx1ZRgFIAEoBEgAQgcKBXZhbHVlIr4BCgtLcHJvYmVFdmVudBIMCgRuYW1lGAEgASgJEjUKBHR5cGUYAiABKA4yJy5wZXJmZXR0by5wcm90b3MuS3Byb2JlRXZlbnQuS3Byb2JlVHlwZSJqCgpLcHJvYmVUeXBlEhcKE0tQUk9CRV9UWVBFX1VOS05PV04QABIVChFLUFJPQkVfVFlQRV9CRUdJThABEhMKD0tQUk9CRV9UWVBFX0VORBACEhcKE0tQUk9CRV9UWVBFX0lOU1RBTlQQAw");

/**
 * This generic proto is used to output events in the trace
 * when a specific proto for that event does not exist.
 *
 * @generated from message perfetto.protos.GenericFtraceEvent
 */
export type GenericFtraceEvent = Message<"perfetto.protos.GenericFtraceEvent"> & {
  /**
   * @generated from field: optional string event_name = 1;
   */
  eventName: string;

  /**
   * @generated from field: repeated perfetto.protos.GenericFtraceEvent.Field field = 2;
   */
  field: GenericFtraceEvent_Field[];
};

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

/**
 * @generated from message perfetto.protos.GenericFtraceEvent.Field
 */
export type GenericFtraceEvent_Field = Message<"perfetto.protos.GenericFtraceEvent.Field"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from oneof perfetto.protos.GenericFtraceEvent.Field.value
   */
  value: {
    /**
     * @generated from field: string str_value = 3;
     */
    value: string;
    case: "strValue";
  } | {
    /**
     * @generated from field: int64 int_value = 4;
     */
    value: bigint;
    case: "intValue";
  } | {
    /**
     * @generated from field: uint64 uint_value = 5;
     */
    value: bigint;
    case: "uintValue";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message perfetto.protos.GenericFtraceEvent.Field.
 * Use `create(GenericFtraceEvent_FieldSchema)` to create a new message.
 */
export const GenericFtraceEvent_FieldSchema: GenMessage<GenericFtraceEvent_Field> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_ftrace_generic, 0, 0);

/**
 * @generated from message perfetto.protos.KprobeEvent
 */
export type KprobeEvent = Message<"perfetto.protos.KprobeEvent"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional perfetto.protos.KprobeEvent.KprobeType type = 2;
   */
  type: KprobeEvent_KprobeType;
};

/**
 * Describes the message perfetto.protos.KprobeEvent.
 * Use `create(KprobeEventSchema)` to create a new message.
 */
export const KprobeEventSchema: GenMessage<KprobeEvent> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_ftrace_generic, 1);

/**
 * @generated from enum perfetto.protos.KprobeEvent.KprobeType
 */
export enum KprobeEvent_KprobeType {
  /**
   * @generated from enum value: KPROBE_TYPE_UNKNOWN = 0;
   */
  UNKNOWN = 0,

  /**
   * @generated from enum value: KPROBE_TYPE_BEGIN = 1;
   */
  BEGIN = 1,

  /**
   * @generated from enum value: KPROBE_TYPE_END = 2;
   */
  END = 2,

  /**
   * @generated from enum value: KPROBE_TYPE_INSTANT = 3;
   */
  INSTANT = 3,
}

/**
 * Describes the enum perfetto.protos.KprobeEvent.KprobeType.
 */
export const KprobeEvent_KprobeTypeSchema: GenEnum<KprobeEvent_KprobeType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_ftrace_generic, 1, 0);

