| // Copyright 2023 Google LLC |
| // |
| // 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 = "proto2"; |
| |
| package mpact.sim.proto; |
| |
| option java_multiple_files = true; |
| |
| // This proto is intended to be used to import configuration data into the |
| // configuration entries in a simulator, as well as exporting the |
| // values of both the configuration entries and any statistics counters. The |
| // proto assumes there may be a hierarchy of components, with each component |
| // having a set of configuration entries and/or statistics entries. |
| |
| enum SIPrefix { |
| PREFIX_NONE = 0; |
| PREFIX_PICO = -12; |
| PREFIX_NANO = -9; |
| PREFIX_MICRO = -6; |
| PREFIX_MILLI = -3; |
| PREFIX_KILO = 3; |
| PREFIX_MEGA = 6; |
| PREFIX_GIGA = 9; |
| PREFIX_TERA = 12; |
| } |
| |
| enum SIUnit { |
| UNIT_NONE = 0; |
| UNIT_SECOND = 1; |
| UNIT_HERTZ = 2; |
| UNIT_VOLT = 3; |
| UNIT_AMPERE = 4; |
| UNIT_WATT = 5; |
| } |
| |
| message PhysicalValue { |
| optional double value = 1; |
| optional SIPrefix si_prefix = 2; |
| optional SIUnit si_unit = 3; |
| } |
| |
| message ComponentValueEntry { |
| optional string name = 1; |
| optional string about = 2; |
| // The current set of allowed values are limited to signed/unsigned 64 bit |
| // int as well as double, and string. The string is only currently |
| // supported by configuration entries. |
| oneof value { |
| bool bool_value = 3; |
| sint64 sint64_value = 4; |
| uint64 uint64_value = 5; |
| double double_value = 6; |
| string string_value = 7; |
| PhysicalValue physical_value = 8; |
| } |
| } |
| |
| message ComponentData { |
| optional string name = 1; |
| repeated ComponentValueEntry configuration = 2; |
| repeated ComponentValueEntry statistics = 3; |
| repeated ComponentData component_data = 4; |
| } |