text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: protos/perfetto/trace/ftrace/vmscan.proto
  
  #ifndef GOOGLE_PROTOBUF_INCLUDED_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto
  #define GOOGLE_PROTOBUF_INCLUDED_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto
  
  #include <limits>
  #include <string>
  
  #include <google/protobuf/port_def.inc>
  #if PROTOBUF_VERSION < 3009000
  #error This file was generated by a newer version of protoc which is
  #error incompatible with your Protocol Buffer headers. Please update
  #error your headers.
  #endif
  #if 3009000 < PROTOBUF_MIN_PROTOC_VERSION
  #error This file was generated by an older version of protoc which is
  #error incompatible with your Protocol Buffer headers. Please
  #error regenerate this file with a newer version of protoc.
  #endif
  
  #include <google/protobuf/port_undef.inc>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/arena.h>
  #include <google/protobuf/arenastring.h>
  #include <google/protobuf/generated_message_table_driven.h>
  #include <google/protobuf/generated_message_util.h>
  #include <google/protobuf/inlined_string_field.h>
  #include <google/protobuf/metadata_lite.h>
  #include <google/protobuf/message_lite.h>
  #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
  #include <google/protobuf/extension_set.h>  // IWYU pragma: export
  // @@protoc_insertion_point(includes)
  #include <google/protobuf/port_def.inc>
  #define PROTOBUF_INTERNAL_EXPORT_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto
  PROTOBUF_NAMESPACE_OPEN
  namespace internal {
  class AnyMetadata;
  }  // namespace internal
  PROTOBUF_NAMESPACE_CLOSE
  
  // Internal implementation detail -- do not use these members.
  struct TableStruct_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto {
    static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[4]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
    static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
    static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
  };
  namespace perfetto {
  namespace protos {
  class MmVmscanDirectReclaimBeginFtraceEvent;
  class MmVmscanDirectReclaimBeginFtraceEventDefaultTypeInternal;
  extern MmVmscanDirectReclaimBeginFtraceEventDefaultTypeInternal _MmVmscanDirectReclaimBeginFtraceEvent_default_instance_;
  class MmVmscanDirectReclaimEndFtraceEvent;
  class MmVmscanDirectReclaimEndFtraceEventDefaultTypeInternal;
  extern MmVmscanDirectReclaimEndFtraceEventDefaultTypeInternal _MmVmscanDirectReclaimEndFtraceEvent_default_instance_;
  class MmVmscanKswapdSleepFtraceEvent;
  class MmVmscanKswapdSleepFtraceEventDefaultTypeInternal;
  extern MmVmscanKswapdSleepFtraceEventDefaultTypeInternal _MmVmscanKswapdSleepFtraceEvent_default_instance_;
  class MmVmscanKswapdWakeFtraceEvent;
  class MmVmscanKswapdWakeFtraceEventDefaultTypeInternal;
  extern MmVmscanKswapdWakeFtraceEventDefaultTypeInternal _MmVmscanKswapdWakeFtraceEvent_default_instance_;
  }  // namespace protos
  }  // namespace perfetto
  PROTOBUF_NAMESPACE_OPEN
  template<> ::perfetto::protos::MmVmscanDirectReclaimBeginFtraceEvent* Arena::CreateMaybeMessage<::perfetto::protos::MmVmscanDirectReclaimBeginFtraceEvent>(Arena*);
  template<> ::perfetto::protos::MmVmscanDirectReclaimEndFtraceEvent* Arena::CreateMaybeMessage<::perfetto::protos::MmVmscanDirectReclaimEndFtraceEvent>(Arena*);
  template<> ::perfetto::protos::MmVmscanKswapdSleepFtraceEvent* Arena::CreateMaybeMessage<::perfetto::protos::MmVmscanKswapdSleepFtraceEvent>(Arena*);
  template<> ::perfetto::protos::MmVmscanKswapdWakeFtraceEvent* Arena::CreateMaybeMessage<::perfetto::protos::MmVmscanKswapdWakeFtraceEvent>(Arena*);
  PROTOBUF_NAMESPACE_CLOSE
  namespace perfetto {
  namespace protos {
  
  // ===================================================================
  
  class MmVmscanDirectReclaimBeginFtraceEvent :
      public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent) */ {
   public:
    MmVmscanDirectReclaimBeginFtraceEvent();
    virtual ~MmVmscanDirectReclaimBeginFtraceEvent();
  
    MmVmscanDirectReclaimBeginFtraceEvent(const MmVmscanDirectReclaimBeginFtraceEvent& from);
    MmVmscanDirectReclaimBeginFtraceEvent(MmVmscanDirectReclaimBeginFtraceEvent&& from) noexcept
      : MmVmscanDirectReclaimBeginFtraceEvent() {
      *this = ::std::move(from);
    }
  
    inline MmVmscanDirectReclaimBeginFtraceEvent& operator=(const MmVmscanDirectReclaimBeginFtraceEvent& from) {
      CopyFrom(from);
      return *this;
    }
    inline MmVmscanDirectReclaimBeginFtraceEvent& operator=(MmVmscanDirectReclaimBeginFtraceEvent&& from) noexcept {
      if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
        if (this != &from) InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    inline const std::string& unknown_fields() const {
      return _internal_metadata_.unknown_fields();
    }
    inline std::string* mutable_unknown_fields() {
      return _internal_metadata_.mutable_unknown_fields();
    }
  
    static const MmVmscanDirectReclaimBeginFtraceEvent& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const MmVmscanDirectReclaimBeginFtraceEvent* internal_default_instance() {
      return reinterpret_cast<const MmVmscanDirectReclaimBeginFtraceEvent*>(
                 &_MmVmscanDirectReclaimBeginFtraceEvent_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      0;
  
    friend void swap(MmVmscanDirectReclaimBeginFtraceEvent& a, MmVmscanDirectReclaimBeginFtraceEvent& b) {
      a.Swap(&b);
    }
    inline void Swap(MmVmscanDirectReclaimBeginFtraceEvent* other) {
      if (other == this) return;
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline MmVmscanDirectReclaimBeginFtraceEvent* New() const final {
      return CreateMaybeMessage<MmVmscanDirectReclaimBeginFtraceEvent>(nullptr);
    }
  
    MmVmscanDirectReclaimBeginFtraceEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<MmVmscanDirectReclaimBeginFtraceEvent>(arena);
    }
    void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
      final;
    void CopyFrom(const MmVmscanDirectReclaimBeginFtraceEvent& from);
    void MergeFrom(const MmVmscanDirectReclaimBeginFtraceEvent& from);
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    #else
    bool MergePartialFromCodedStream(
        ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
    #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    void SerializeWithCachedSizes(
        ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
    void DiscardUnknownFields();
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    inline void SharedCtor();
    inline void SharedDtor();
    void SetCachedSize(int size) const;
    void InternalSwap(MmVmscanDirectReclaimBeginFtraceEvent* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent";
    }
    private:
    inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
      return nullptr;
    }
    inline void* MaybeArenaPtr() const {
      return nullptr;
    }
    public:
  
    std::string GetTypeName() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kOrderFieldNumber = 1,
      kMayWritepageFieldNumber = 2,
      kGfpFlagsFieldNumber = 3,
    };
    // optional int32 order = 1;
    bool has_order() const;
    void clear_order();
    ::PROTOBUF_NAMESPACE_ID::int32 order() const;
    void set_order(::PROTOBUF_NAMESPACE_ID::int32 value);
  
    // optional int32 may_writepage = 2;
    bool has_may_writepage() const;
    void clear_may_writepage();
    ::PROTOBUF_NAMESPACE_ID::int32 may_writepage() const;
    void set_may_writepage(::PROTOBUF_NAMESPACE_ID::int32 value);
  
    // optional uint32 gfp_flags = 3;
    bool has_gfp_flags() const;
    void clear_gfp_flags();
    ::PROTOBUF_NAMESPACE_ID::uint32 gfp_flags() const;
    void set_gfp_flags(::PROTOBUF_NAMESPACE_ID::uint32 value);
  
    // @@protoc_insertion_point(class_scope:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent)
   private:
    class _Internal;
  
    ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::int32 order_;
    ::PROTOBUF_NAMESPACE_ID::int32 may_writepage_;
    ::PROTOBUF_NAMESPACE_ID::uint32 gfp_flags_;
    friend struct ::TableStruct_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto;
  };
  // -------------------------------------------------------------------
  
  class MmVmscanDirectReclaimEndFtraceEvent :
      public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:perfetto.protos.MmVmscanDirectReclaimEndFtraceEvent) */ {
   public:
    MmVmscanDirectReclaimEndFtraceEvent();
    virtual ~MmVmscanDirectReclaimEndFtraceEvent();
  
    MmVmscanDirectReclaimEndFtraceEvent(const MmVmscanDirectReclaimEndFtraceEvent& from);
    MmVmscanDirectReclaimEndFtraceEvent(MmVmscanDirectReclaimEndFtraceEvent&& from) noexcept
      : MmVmscanDirectReclaimEndFtraceEvent() {
      *this = ::std::move(from);
    }
  
    inline MmVmscanDirectReclaimEndFtraceEvent& operator=(const MmVmscanDirectReclaimEndFtraceEvent& from) {
      CopyFrom(from);
      return *this;
    }
    inline MmVmscanDirectReclaimEndFtraceEvent& operator=(MmVmscanDirectReclaimEndFtraceEvent&& from) noexcept {
      if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
        if (this != &from) InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    inline const std::string& unknown_fields() const {
      return _internal_metadata_.unknown_fields();
    }
    inline std::string* mutable_unknown_fields() {
      return _internal_metadata_.mutable_unknown_fields();
    }
  
    static const MmVmscanDirectReclaimEndFtraceEvent& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const MmVmscanDirectReclaimEndFtraceEvent* internal_default_instance() {
      return reinterpret_cast<const MmVmscanDirectReclaimEndFtraceEvent*>(
                 &_MmVmscanDirectReclaimEndFtraceEvent_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      1;
  
    friend void swap(MmVmscanDirectReclaimEndFtraceEvent& a, MmVmscanDirectReclaimEndFtraceEvent& b) {
      a.Swap(&b);
    }
    inline void Swap(MmVmscanDirectReclaimEndFtraceEvent* other) {
      if (other == this) return;
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline MmVmscanDirectReclaimEndFtraceEvent* New() const final {
      return CreateMaybeMessage<MmVmscanDirectReclaimEndFtraceEvent>(nullptr);
    }
  
    MmVmscanDirectReclaimEndFtraceEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<MmVmscanDirectReclaimEndFtraceEvent>(arena);
    }
    void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
      final;
    void CopyFrom(const MmVmscanDirectReclaimEndFtraceEvent& from);
    void MergeFrom(const MmVmscanDirectReclaimEndFtraceEvent& from);
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    #else
    bool MergePartialFromCodedStream(
        ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
    #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    void SerializeWithCachedSizes(
        ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
    void DiscardUnknownFields();
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    inline void SharedCtor();
    inline void SharedDtor();
    void SetCachedSize(int size) const;
    void InternalSwap(MmVmscanDirectReclaimEndFtraceEvent* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "perfetto.protos.MmVmscanDirectReclaimEndFtraceEvent";
    }
    private:
    inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
      return nullptr;
    }
    inline void* MaybeArenaPtr() const {
      return nullptr;
    }
    public:
  
    std::string GetTypeName() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kNrReclaimedFieldNumber = 1,
    };
    // optional uint64 nr_reclaimed = 1;
    bool has_nr_reclaimed() const;
    void clear_nr_reclaimed();
    ::PROTOBUF_NAMESPACE_ID::uint64 nr_reclaimed() const;
    void set_nr_reclaimed(::PROTOBUF_NAMESPACE_ID::uint64 value);
  
    // @@protoc_insertion_point(class_scope:perfetto.protos.MmVmscanDirectReclaimEndFtraceEvent)
   private:
    class _Internal;
  
    ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::uint64 nr_reclaimed_;
    friend struct ::TableStruct_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto;
  };
  // -------------------------------------------------------------------
  
  class MmVmscanKswapdWakeFtraceEvent :
      public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:perfetto.protos.MmVmscanKswapdWakeFtraceEvent) */ {
   public:
    MmVmscanKswapdWakeFtraceEvent();
    virtual ~MmVmscanKswapdWakeFtraceEvent();
  
    MmVmscanKswapdWakeFtraceEvent(const MmVmscanKswapdWakeFtraceEvent& from);
    MmVmscanKswapdWakeFtraceEvent(MmVmscanKswapdWakeFtraceEvent&& from) noexcept
      : MmVmscanKswapdWakeFtraceEvent() {
      *this = ::std::move(from);
    }
  
    inline MmVmscanKswapdWakeFtraceEvent& operator=(const MmVmscanKswapdWakeFtraceEvent& from) {
      CopyFrom(from);
      return *this;
    }
    inline MmVmscanKswapdWakeFtraceEvent& operator=(MmVmscanKswapdWakeFtraceEvent&& from) noexcept {
      if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
        if (this != &from) InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    inline const std::string& unknown_fields() const {
      return _internal_metadata_.unknown_fields();
    }
    inline std::string* mutable_unknown_fields() {
      return _internal_metadata_.mutable_unknown_fields();
    }
  
    static const MmVmscanKswapdWakeFtraceEvent& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const MmVmscanKswapdWakeFtraceEvent* internal_default_instance() {
      return reinterpret_cast<const MmVmscanKswapdWakeFtraceEvent*>(
                 &_MmVmscanKswapdWakeFtraceEvent_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      2;
  
    friend void swap(MmVmscanKswapdWakeFtraceEvent& a, MmVmscanKswapdWakeFtraceEvent& b) {
      a.Swap(&b);
    }
    inline void Swap(MmVmscanKswapdWakeFtraceEvent* other) {
      if (other == this) return;
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline MmVmscanKswapdWakeFtraceEvent* New() const final {
      return CreateMaybeMessage<MmVmscanKswapdWakeFtraceEvent>(nullptr);
    }
  
    MmVmscanKswapdWakeFtraceEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<MmVmscanKswapdWakeFtraceEvent>(arena);
    }
    void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
      final;
    void CopyFrom(const MmVmscanKswapdWakeFtraceEvent& from);
    void MergeFrom(const MmVmscanKswapdWakeFtraceEvent& from);
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    #else
    bool MergePartialFromCodedStream(
        ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
    #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    void SerializeWithCachedSizes(
        ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
    void DiscardUnknownFields();
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    inline void SharedCtor();
    inline void SharedDtor();
    void SetCachedSize(int size) const;
    void InternalSwap(MmVmscanKswapdWakeFtraceEvent* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "perfetto.protos.MmVmscanKswapdWakeFtraceEvent";
    }
    private:
    inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
      return nullptr;
    }
    inline void* MaybeArenaPtr() const {
      return nullptr;
    }
    public:
  
    std::string GetTypeName() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kNidFieldNumber = 1,
      kOrderFieldNumber = 2,
    };
    // optional int32 nid = 1;
    bool has_nid() const;
    void clear_nid();
    ::PROTOBUF_NAMESPACE_ID::int32 nid() const;
    void set_nid(::PROTOBUF_NAMESPACE_ID::int32 value);
  
    // optional int32 order = 2;
    bool has_order() const;
    void clear_order();
    ::PROTOBUF_NAMESPACE_ID::int32 order() const;
    void set_order(::PROTOBUF_NAMESPACE_ID::int32 value);
  
    // @@protoc_insertion_point(class_scope:perfetto.protos.MmVmscanKswapdWakeFtraceEvent)
   private:
    class _Internal;
  
    ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::int32 nid_;
    ::PROTOBUF_NAMESPACE_ID::int32 order_;
    friend struct ::TableStruct_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto;
  };
  // -------------------------------------------------------------------
  
  class MmVmscanKswapdSleepFtraceEvent :
      public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:perfetto.protos.MmVmscanKswapdSleepFtraceEvent) */ {
   public:
    MmVmscanKswapdSleepFtraceEvent();
    virtual ~MmVmscanKswapdSleepFtraceEvent();
  
    MmVmscanKswapdSleepFtraceEvent(const MmVmscanKswapdSleepFtraceEvent& from);
    MmVmscanKswapdSleepFtraceEvent(MmVmscanKswapdSleepFtraceEvent&& from) noexcept
      : MmVmscanKswapdSleepFtraceEvent() {
      *this = ::std::move(from);
    }
  
    inline MmVmscanKswapdSleepFtraceEvent& operator=(const MmVmscanKswapdSleepFtraceEvent& from) {
      CopyFrom(from);
      return *this;
    }
    inline MmVmscanKswapdSleepFtraceEvent& operator=(MmVmscanKswapdSleepFtraceEvent&& from) noexcept {
      if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
        if (this != &from) InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    inline const std::string& unknown_fields() const {
      return _internal_metadata_.unknown_fields();
    }
    inline std::string* mutable_unknown_fields() {
      return _internal_metadata_.mutable_unknown_fields();
    }
  
    static const MmVmscanKswapdSleepFtraceEvent& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const MmVmscanKswapdSleepFtraceEvent* internal_default_instance() {
      return reinterpret_cast<const MmVmscanKswapdSleepFtraceEvent*>(
                 &_MmVmscanKswapdSleepFtraceEvent_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      3;
  
    friend void swap(MmVmscanKswapdSleepFtraceEvent& a, MmVmscanKswapdSleepFtraceEvent& b) {
      a.Swap(&b);
    }
    inline void Swap(MmVmscanKswapdSleepFtraceEvent* other) {
      if (other == this) return;
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline MmVmscanKswapdSleepFtraceEvent* New() const final {
      return CreateMaybeMessage<MmVmscanKswapdSleepFtraceEvent>(nullptr);
    }
  
    MmVmscanKswapdSleepFtraceEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<MmVmscanKswapdSleepFtraceEvent>(arena);
    }
    void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
      final;
    void CopyFrom(const MmVmscanKswapdSleepFtraceEvent& from);
    void MergeFrom(const MmVmscanKswapdSleepFtraceEvent& from);
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    #else
    bool MergePartialFromCodedStream(
        ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
    #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
    void SerializeWithCachedSizes(
        ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
    void DiscardUnknownFields();
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    inline void SharedCtor();
    inline void SharedDtor();
    void SetCachedSize(int size) const;
    void InternalSwap(MmVmscanKswapdSleepFtraceEvent* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "perfetto.protos.MmVmscanKswapdSleepFtraceEvent";
    }
    private:
    inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
      return nullptr;
    }
    inline void* MaybeArenaPtr() const {
      return nullptr;
    }
    public:
  
    std::string GetTypeName() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kNidFieldNumber = 1,
    };
    // optional int32 nid = 1;
    bool has_nid() const;
    void clear_nid();
    ::PROTOBUF_NAMESPACE_ID::int32 nid() const;
    void set_nid(::PROTOBUF_NAMESPACE_ID::int32 value);
  
    // @@protoc_insertion_point(class_scope:perfetto.protos.MmVmscanKswapdSleepFtraceEvent)
   private:
    class _Internal;
  
    ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::int32 nid_;
    friend struct ::TableStruct_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto;
  };
  // ===================================================================
  
  
  // ===================================================================
  
  #ifdef __GNUC__
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wstrict-aliasing"
  #endif  // __GNUC__
  // MmVmscanDirectReclaimBeginFtraceEvent
  
  // optional int32 order = 1;
  inline bool MmVmscanDirectReclaimBeginFtraceEvent::has_order() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::clear_order() {
    order_ = 0;
    _has_bits_[0] &= ~0x00000001u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::int32 MmVmscanDirectReclaimBeginFtraceEvent::order() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.order)
    return order_;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::set_order(::PROTOBUF_NAMESPACE_ID::int32 value) {
    _has_bits_[0] |= 0x00000001u;
    order_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.order)
  }
  
  // optional int32 may_writepage = 2;
  inline bool MmVmscanDirectReclaimBeginFtraceEvent::has_may_writepage() const {
    return (_has_bits_[0] & 0x00000002u) != 0;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::clear_may_writepage() {
    may_writepage_ = 0;
    _has_bits_[0] &= ~0x00000002u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::int32 MmVmscanDirectReclaimBeginFtraceEvent::may_writepage() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.may_writepage)
    return may_writepage_;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::set_may_writepage(::PROTOBUF_NAMESPACE_ID::int32 value) {
    _has_bits_[0] |= 0x00000002u;
    may_writepage_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.may_writepage)
  }
  
  // optional uint32 gfp_flags = 3;
  inline bool MmVmscanDirectReclaimBeginFtraceEvent::has_gfp_flags() const {
    return (_has_bits_[0] & 0x00000004u) != 0;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::clear_gfp_flags() {
    gfp_flags_ = 0u;
    _has_bits_[0] &= ~0x00000004u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 MmVmscanDirectReclaimBeginFtraceEvent::gfp_flags() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.gfp_flags)
    return gfp_flags_;
  }
  inline void MmVmscanDirectReclaimBeginFtraceEvent::set_gfp_flags(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    _has_bits_[0] |= 0x00000004u;
    gfp_flags_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanDirectReclaimBeginFtraceEvent.gfp_flags)
  }
  
  // -------------------------------------------------------------------
  
  // MmVmscanDirectReclaimEndFtraceEvent
  
  // optional uint64 nr_reclaimed = 1;
  inline bool MmVmscanDirectReclaimEndFtraceEvent::has_nr_reclaimed() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void MmVmscanDirectReclaimEndFtraceEvent::clear_nr_reclaimed() {
    nr_reclaimed_ = PROTOBUF_ULONGLONG(0);
    _has_bits_[0] &= ~0x00000001u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint64 MmVmscanDirectReclaimEndFtraceEvent::nr_reclaimed() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanDirectReclaimEndFtraceEvent.nr_reclaimed)
    return nr_reclaimed_;
  }
  inline void MmVmscanDirectReclaimEndFtraceEvent::set_nr_reclaimed(::PROTOBUF_NAMESPACE_ID::uint64 value) {
    _has_bits_[0] |= 0x00000001u;
    nr_reclaimed_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanDirectReclaimEndFtraceEvent.nr_reclaimed)
  }
  
  // -------------------------------------------------------------------
  
  // MmVmscanKswapdWakeFtraceEvent
  
  // optional int32 nid = 1;
  inline bool MmVmscanKswapdWakeFtraceEvent::has_nid() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void MmVmscanKswapdWakeFtraceEvent::clear_nid() {
    nid_ = 0;
    _has_bits_[0] &= ~0x00000001u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::int32 MmVmscanKswapdWakeFtraceEvent::nid() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanKswapdWakeFtraceEvent.nid)
    return nid_;
  }
  inline void MmVmscanKswapdWakeFtraceEvent::set_nid(::PROTOBUF_NAMESPACE_ID::int32 value) {
    _has_bits_[0] |= 0x00000001u;
    nid_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanKswapdWakeFtraceEvent.nid)
  }
  
  // optional int32 order = 2;
  inline bool MmVmscanKswapdWakeFtraceEvent::has_order() const {
    return (_has_bits_[0] & 0x00000002u) != 0;
  }
  inline void MmVmscanKswapdWakeFtraceEvent::clear_order() {
    order_ = 0;
    _has_bits_[0] &= ~0x00000002u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::int32 MmVmscanKswapdWakeFtraceEvent::order() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanKswapdWakeFtraceEvent.order)
    return order_;
  }
  inline void MmVmscanKswapdWakeFtraceEvent::set_order(::PROTOBUF_NAMESPACE_ID::int32 value) {
    _has_bits_[0] |= 0x00000002u;
    order_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanKswapdWakeFtraceEvent.order)
  }
  
  // -------------------------------------------------------------------
  
  // MmVmscanKswapdSleepFtraceEvent
  
  // optional int32 nid = 1;
  inline bool MmVmscanKswapdSleepFtraceEvent::has_nid() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void MmVmscanKswapdSleepFtraceEvent::clear_nid() {
    nid_ = 0;
    _has_bits_[0] &= ~0x00000001u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::int32 MmVmscanKswapdSleepFtraceEvent::nid() const {
    // @@protoc_insertion_point(field_get:perfetto.protos.MmVmscanKswapdSleepFtraceEvent.nid)
    return nid_;
  }
  inline void MmVmscanKswapdSleepFtraceEvent::set_nid(::PROTOBUF_NAMESPACE_ID::int32 value) {
    _has_bits_[0] |= 0x00000001u;
    nid_ = value;
    // @@protoc_insertion_point(field_set:perfetto.protos.MmVmscanKswapdSleepFtraceEvent.nid)
  }
  
  #ifdef __GNUC__
    #pragma GCC diagnostic pop
  #endif  // __GNUC__
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  
  // @@protoc_insertion_point(namespace_scope)
  
  }  // namespace protos
  }  // namespace perfetto
  
  // @@protoc_insertion_point(global_scope)
  
  #include <google/protobuf/port_undef.inc>
  #endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_protos_2fperfetto_2ftrace_2fftrace_2fvmscan_2eproto
  