mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-20 13:51:05 +00:00
179aa8eab0
Initial commit for the pw_snapshot module that introduces the proto format for device snapshots, and documentation that introduces the pw_snapshot module and how to use it. Change-Id: I63e12d245073e82de03be995a001a0ee0cc1f443 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/38103 Commit-Queue: Armando Montanez <amontanez@google.com> Reviewed-by: Ewout van Bekkum <ewout@google.com> Reviewed-by: Keir Mierle <keir@google.com> Reviewed-by: David Rogers <davidrogers@google.com>
85 lines
2.7 KiB
Protocol Buffer
85 lines
2.7 KiB
Protocol Buffer
// Copyright 2021 The Pigweed Authors
|
|
//
|
|
// 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
|
|
//
|
|
// https://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.
|
|
syntax = "proto3";
|
|
|
|
package pw.snapshot;
|
|
|
|
option java_package = "pw.snapshot.proto";
|
|
option java_outer_classname = "Snapshot";
|
|
|
|
message CpuArchitecture {
|
|
enum Enum {
|
|
UNKNOWN = 0;
|
|
ARMV6M = 1;
|
|
ARMV7M = 2;
|
|
ARMV8M = 3;
|
|
}
|
|
}
|
|
|
|
message Metadata {
|
|
// A relatively unique descriptive reason for what triggered the snapshot
|
|
// capture. This should either be human readable text, or tokenized data
|
|
// (e.g. base-64 encoded or binary data).
|
|
//
|
|
// Examples:
|
|
// Null-pointer dereference
|
|
// [main.cc:22] True is not false!
|
|
// STACK_OVERFLOW
|
|
bytes reason = 1;
|
|
|
|
// Whether or not the snapshot was captured due to a crash of some kind.
|
|
bool fatal = 2;
|
|
|
|
// Project name to assist in identifying where to redirect this snapshot. A
|
|
// single project might have multiple devices that can produce snapshots.
|
|
bytes project_name = 3;
|
|
|
|
// Version characters must be alphanumeric, punctuation, and space. This
|
|
// string is case-sensitive. This should either be human readable text, or
|
|
// tokenized data.
|
|
//
|
|
// Examples:
|
|
// "codename-local-[build_id]"
|
|
// "codename-release-193"
|
|
bytes software_version = 4;
|
|
|
|
// UUID associated with the build for the software version.
|
|
bytes software_build_uuid = 5;
|
|
|
|
// String containing the specific device name. This should be as specific as
|
|
// possible, detailing hardware revision, and distinguishing different cores
|
|
// in a multi-core device. Snapshots aggregated as related_snapshots should
|
|
// include information that distinguishes the source of the snapshot. This
|
|
// should either be human readable text, or tokenized data.
|
|
//
|
|
// Examples:
|
|
// "propellerhat-evk"
|
|
// "gshoe-sensor-core-pvt"
|
|
// "alarm-clock-dsp-p1"
|
|
bytes device_name = 6;
|
|
|
|
// 128-bit UUID for this snapshot, used to help with de-duplication.
|
|
bytes snapshot_uuid = 7;
|
|
|
|
// The architecture of the CPU that generated this report.
|
|
CpuArchitecture.Enum cpu_arch = 8;
|
|
}
|
|
|
|
// This message overlays the pw.snapshot.Snapshot proto. It's valid to encode
|
|
// this message to the same sink that a Snapshot proto is being written to.
|
|
message SnapshotBasicInfo {
|
|
Metadata metadata = 16;
|
|
map<string, string> tags = 17;
|
|
}
|