blob: 207afe49509b5e55d37c96d06a295b0d4eb88655 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The messages in this file comprise the DBus/Protobuf interface for
// Hardware Verifier.
syntax = "proto3";
option optimize_for = SPEED;
package hardware_verifier;
// Name of the folder which contains |runtime_probe.pb.h| is different than
// the one which contains |runtime_probo.proto| so we import the file name
// directly and use |BUILD.gn| to handle the include path properly.
import "runtime_probe.proto";
// List of the possible qualification status of a component.
// TODO(yhong): Using the existing definition from AVL side when the
// integration work starts.
enum QualificationStatus {
UNQUALIFIED = 0;
REJECTED = 1;
QUALIFIED = 2;
// This category has at least one ComponentInfo defined, but we cannot match
// any known components in the probe result.
NO_MATCH = 3;
}
message ComponentInfo {
reserved 1;
// required
runtime_probe.ProbeRequest.SupportCategory component_category = 4;
string component_uuid = 2; // required
QualificationStatus qualification_status = 3; // required
}
message HwVerificationSpec {
// A list of all known components and their qualification status.
repeated ComponentInfo component_infos = 1;
message GenericComponentValueAllowlist {
reserved 1;
// required
runtime_probe.ProbeRequest.SupportCategory component_category = 3;
// A list of field names that are allowed to be included in the report.
repeated string field_names = 2;
}
// Records the allowlist of the generic component values of each category.
repeated GenericComponentValueAllowlist generic_component_value_allowlists =
2;
}
message HwVerificationReport {
bool is_compliant = 1;
// Records the qualification status of the components that is also probed
// by the hardware prober.
repeated ComponentInfo found_component_infos = 2;
message GenericDeviceInfo {
// Records the generic component values of some specific types. Note
// that because |HwVerificationReport| intents to only include the needed
// data, not all categories which |runtime_probe| supports are listed.
repeated runtime_probe.AudioCodec.Fields audio_codec = 1;
repeated runtime_probe.Battery.Fields battery = 2;
repeated runtime_probe.Storage.Fields storage = 3;
// Obsolete in M91.
repeated runtime_probe.Network.Fields network = 4;
repeated runtime_probe.Camera.Fields camera = 5;
repeated runtime_probe.InputDevice.Fields stylus = 6;
repeated runtime_probe.InputDevice.Fields touchpad = 7;
repeated runtime_probe.InputDevice.Fields touchscreen = 8;
repeated runtime_probe.Memory.Fields dram = 9;
repeated runtime_probe.Edid.Fields display_panel = 10;
repeated runtime_probe.Network.Fields cellular = 11;
repeated runtime_probe.Network.Fields ethernet = 12;
repeated runtime_probe.Network.Fields wireless = 13;
}
// Records the overall device matrics.
GenericDeviceInfo generic_device_info = 3;
}