syntax = "proto3";

option java_package = "com.android.server.os";
option java_outer_classname = "TombstoneProtos";

// NOTE TO OEMS:
// If you add custom fields to this proto, do not use numbers in the reserved range.

message Tombstone {
  Architecture arch = 1;
  string build_fingerprint = 2;
  string revision = 3;
  string timestamp = 4;

  uint32 pid = 5;
  uint32 tid = 6;
  uint32 uid = 7;
  string selinux_label = 8;

  repeated string command_line = 9;

  // Process uptime in seconds.
  uint32 process_uptime = 20;

  Signal signal_info = 10;
  string abort_message = 14;
  repeated Cause causes = 15;

  map<uint32, Thread> threads = 16;
  repeated MemoryMapping memory_mappings = 17;
  repeated LogBuffer log_buffers = 18;
  repeated FD open_fds = 19;

  reserved 21 to 999;
}

enum Architecture {
  ARM32 = 0;
  ARM64 = 1;
  X86 = 2;
  X86_64 = 3;

  reserved 4 to 999;
}

message Signal {
  int32 number = 1;
  string name = 2;

  int32 code = 3;
  string code_name = 4;

  bool has_sender = 5;
  int32 sender_uid = 6;
  int32 sender_pid = 7;

  bool has_fault_address = 8;
  uint64 fault_address = 9;
  // Note, may or may not contain the dump of the actual memory contents. Currently, on arm64, we
  // only include metadata, and not the contents.
  MemoryDump fault_adjacent_metadata = 10;

  reserved 11 to 999;
}

message HeapObject {
  uint64 address = 1;
  uint64 size = 2;

  uint64 allocation_tid = 3;
  repeated BacktraceFrame allocation_backtrace = 4;

  uint64 deallocation_tid = 5;
  repeated BacktraceFrame deallocation_backtrace = 6;
}

message MemoryError {
  enum Tool {
    GWP_ASAN = 0;
    SCUDO = 1;

    reserved 2 to 999;
  }
  Tool tool = 1;

  enum Type {
    UNKNOWN = 0;
    USE_AFTER_FREE = 1;
    DOUBLE_FREE = 2;
    INVALID_FREE = 3;
    BUFFER_OVERFLOW = 4;
    BUFFER_UNDERFLOW = 5;

    reserved 6 to 999;
  }
  Type type = 2;

  oneof location {
    HeapObject heap = 3;
  }

  reserved 4 to 999;
}

message Cause {
  string human_readable = 1;
  oneof details {
    MemoryError memory_error = 2;
  }

  reserved 3 to 999;
}

message Register {
  string name = 1;
  uint64 u64 = 2;

  reserved 3 to 999;
}

message Thread {
  int32 id = 1;
  string name = 2;
  repeated Register registers = 3;
  repeated string backtrace_note = 7;
  repeated BacktraceFrame current_backtrace = 4;
  repeated MemoryDump memory_dump = 5;
  int64 tagged_addr_ctrl = 6;

  reserved 8 to 999;
}

message BacktraceFrame {
  uint64 rel_pc = 1;
  uint64 pc = 2;
  uint64 sp = 3;

  string function_name = 4;
  uint64 function_offset = 5;

  string file_name = 6;
  uint64 file_map_offset = 7;
  string build_id = 8;

  reserved 9 to 999;
}

message ArmMTEMetadata {
  // One memory tag per granule (e.g. every 16 bytes) of regular memory.
  bytes memory_tags = 1;
  reserved 2 to 999;
}

message MemoryDump {
  string register_name = 1;
  string mapping_name = 2;
  uint64 begin_address = 3;
  bytes memory = 4;
  oneof metadata {
    ArmMTEMetadata arm_mte_metadata = 6;
  }

  reserved 5, 7 to 999;
}

message MemoryMapping {
  uint64 begin_address = 1;
  uint64 end_address = 2;
  uint64 offset = 3;

  bool read = 4;
  bool write = 5;
  bool execute = 6;

  string mapping_name = 7;
  string build_id = 8;
  uint64 load_bias = 9;

  reserved 10 to 999;
}

message FD {
  int32 fd = 1;
  string path = 2;
  string owner = 3;
  uint64 tag = 4;

  reserved 5 to 999;
}

message LogBuffer {
  string name = 1;
  repeated LogMessage logs = 2;

  reserved 3 to 999;
}

message LogMessage {
  string timestamp = 1;
  uint32 pid = 2;
  uint32 tid = 3;
  uint32 priority = 4;
  string tag = 5;
  string message = 6;

  reserved 7 to 999;
}
