| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.hwinfo; |
| using fuchsia.intl; |
| |
| const uint8 MAX_VALUE_SIZE = 255; |
| |
| /// Collection of properties that is unique per device. |
| table DeviceInfo { |
| 1: string:MAX_VALUE_SIZE serial_number; |
| 2: bool is_retail_demo; |
| 3: string:MAX_VALUE_SIZE retail_sku; |
| }; |
| |
| /// Collection of properties that is shared with other devices within the same |
| /// product line. |
| table ProductInfo { |
| 1: string sku; |
| 2: string language; |
| 3: fuchsia.intl.RegulatoryDomain regulatory_domain; |
| 4: vector<fuchsia.intl.LocaleId> locale_list; |
| 5: string name; |
| 6: string model; |
| 7: string manufacturer; |
| 8: string build_date; |
| 9: string:MAX_VALUE_SIZE build_name; |
| 10: string:MAX_VALUE_SIZE colorway; |
| 11: string:MAX_VALUE_SIZE display; |
| 12: string:MAX_VALUE_SIZE memory; |
| 13: string:MAX_VALUE_SIZE nand_storage; |
| 14: string:MAX_VALUE_SIZE emmc_storage; |
| 15: string:MAX_VALUE_SIZE microphone; |
| 16: string:MAX_VALUE_SIZE audio_amplifier; |
| }; |
| |
| /// Collection of properties that are common among a set of devices based on |
| /// hardware type |
| table BoardInfo { |
| 1: string name; |
| 2: string revision; |
| }; |
| |
| /// Device provides an interface to retrieve device-specific properties. |
| [Discoverable] |
| protocol Device { |
| GetInfo() -> (DeviceInfo info); |
| }; |
| |
| /// Product provides an interface to retrieve product-specific properties. |
| [Discoverable] |
| protocol Product { |
| GetInfo() -> (ProductInfo info); |
| }; |
| |
| /// Board provides an interface to retrieve hardware-specific information. |
| [Discoverable] |
| protocol Board { |
| GetInfo() -> (BoardInfo info); |
| }; |