| // Copyright 2022 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef LIBEC_PD_CHIP_INFO_COMMAND_H_ |
| #define LIBEC_PD_CHIP_INFO_COMMAND_H_ |
| |
| #include <brillo/brillo_export.h> |
| #include "libec/ec_command.h" |
| |
| namespace ec { |
| |
| class BRILLO_EXPORT PdChipInfoCommandV0 |
| : public EcCommand<struct ec_params_pd_chip_info, |
| struct ec_response_pd_chip_info> { |
| public: |
| explicit PdChipInfoCommandV0(uint8_t port, uint8_t live) |
| : EcCommand(EC_CMD_PD_CHIP_INFO, 0, {.port = port, .live = live}) {} |
| ~PdChipInfoCommandV0() override = default; |
| |
| uint16_t VendorId() const { return Resp()->vendor_id; } |
| uint16_t ProductId() const { return Resp()->product_id; } |
| uint16_t DeviceId() const { return Resp()->device_id; } |
| }; |
| |
| static_assert(!std::is_copy_constructible<PdChipInfoCommandV0>::value, |
| "EcCommands are not copyable by default"); |
| static_assert(!std::is_copy_assignable<PdChipInfoCommandV0>::value, |
| "EcCommands are not copy-assignable by default"); |
| |
| } // namespace ec |
| |
| #endif // LIBEC_PD_CHIP_INFO_COMMAND_H_ |