// Autogenerated by:
// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
// Do not edit.

syntax = "proto2";
package perfetto.protos;

message AndroidFsDatareadEndFtraceEvent {
  optional int32 bytes = 1;
  optional uint64 ino = 2;
  optional int64 offset = 3;
}
message AndroidFsDatareadStartFtraceEvent {
  optional int32 bytes = 1;
  optional string cmdline = 2;
  optional int64 i_size = 3;
  optional uint64 ino = 4;
  optional int64 offset = 5;
  optional string pathbuf = 6;
  optional int32 pid = 7;
}
message AndroidFsDatawriteEndFtraceEvent {
  optional int32 bytes = 1;
  optional uint64 ino = 2;
  optional int64 offset = 3;
}
message AndroidFsDatawriteStartFtraceEvent {
  optional int32 bytes = 1;
  optional string cmdline = 2;
  optional int64 i_size = 3;
  optional uint64 ino = 4;
  optional int64 offset = 5;
  optional string pathbuf = 6;
  optional int32 pid = 7;
}
message AndroidFsFsyncEndFtraceEvent {
  optional int32 bytes = 1;
  optional uint64 ino = 2;
  optional int64 offset = 3;
}
message AndroidFsFsyncStartFtraceEvent {
  optional string cmdline = 1;
  optional int64 i_size = 2;
  optional uint64 ino = 3;
  optional string pathbuf = 4;
  optional int32 pid = 5;
}
