system_api: add information field in probe results

Add information message in probe results for Runtime Probe or Hardware
Verifier to handle miscellaneous probe issues. For example, comp_group
is used to group multiple probe statements to one identifier in order to
handle different probe values of the same component in different
firmware versions.

BUG=b:155030911
TEST=manual test

Change-Id: I6d27397599ec12e9b5f23d1f8df903b3812b1a35
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2212063
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Clark Chung <ckclark@chromium.org>
Commit-Queue: Clark Chung <ckclark@chromium.org>
(cherry picked from commit 54638904dae4c6eff8acd82c99967778d3b3d8ea)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2249555
Reviewed-by: Clark Chung <ckclark@chromium.org>
diff --git a/system_api/dbus/runtime_probe/runtime_probe.proto b/system_api/dbus/runtime_probe/runtime_probe.proto
index 3e6ec38..71a3b40 100644
--- a/system_api/dbus/runtime_probe/runtime_probe.proto
+++ b/system_api/dbus/runtime_probe/runtime_probe.proto
@@ -45,14 +45,24 @@
   bool probe_default_category = 3;
 }
 
+// Extra information for each probe result.
+message Information {
+  // comp_group, used for grouping different probed components.
+  string comp_group = 1;
+}
+
 // Things about audio_codec
 message AudioCodec {
   message Fields {
     // The name of the codec presents in sysfs.
     string name = 1;
   }
-  string name = 1;    // Component alias
-  Fields values = 2;  // Component's details
+  // Component alias.
+  string name = 1;
+  // Component's details.
+  Fields values = 2;
+  // Component probe info.
+  Information information = 3;
 }
 
 // Things about battery
@@ -100,8 +110,12 @@
     // https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-power.
     string technology = 15;
   }
-  string name = 1;    // Component alias
-  Fields values = 2;  // Component's details
+  // Component alias.
+  string name = 1;
+  // Component's details.
+  Fields values = 2;
+  // Component probe info.
+  Information information = 3;
 }
 
 // Things about storage
@@ -155,8 +169,12 @@
     // Model name, 16 bytes
     string ata_model = 14;
   }
-  string name = 1;    // Component alias
-  Fields values = 2;  // Component's details
+  // Component alias.
+  string name = 1;
+  // Component's details.
+  Fields values = 2;
+  // Component probe info.
+  Information information = 3;
 }
 
 // Things about VPD (Vital Product Data) , cached version.
@@ -170,8 +188,12 @@
     // SKU number of the unit
     string vpd_sku_number = 1;
   }
-  string name = 1;    // Component alias
-  Fields values = 2;  // Component's details
+  // Component alias.
+  string name = 1;
+  // Component's details.
+  Fields values = 2;
+  // Component probe info.
+  Information information = 3;
 }
 
 // Things about network
@@ -215,8 +237,12 @@
     // Product ID, 16 bits
     uint32 sdio_device_id = 11;
   }
-  string name = 1;    // Component alias
-  Fields values = 2;  // Component's details
+  // Component alias.
+  string name = 1;
+  // Component's details.
+  Fields values = 2;
+  // Component probe info.
+  Information information = 3;
 }
 
 // A ProbeResult contains all potential probe results. For category not