blob: f4cd0d6fc2b6d0131609761803fab5527f12041f [file] [log] [blame]
Chen Yugang7a04f3a2019-10-08 11:12:35 +08001/*
2// Copyright (c) 2019 Intel Corporation
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15*/
16
17#pragma once
18#include <ipmid/api.hpp>
19namespace ipmi
20{
21
22#pragma pack(push, 1)
23typedef struct
24{
25 std::string platform;
26 uint8_t major;
27 uint8_t minor;
28 uint32_t buildNo;
29 std::string openbmcHash;
30 std::string metaHash;
31} MetaRevision;
32#pragma pack(pop)
33
James Feistfcd2d3a2020-05-28 10:38:15 -070034static constexpr const char* versionPurposeBMC =
AppaRao Pulie99e7ed2020-01-17 12:27:10 +053035 "xyz.openbmc_project.Software.Version.VersionPurpose.BMC";
James Feistfcd2d3a2020-05-28 10:38:15 -070036static constexpr const char* versionPurposeME =
AppaRao Puli32825a22020-01-17 15:52:41 +053037 "xyz.openbmc_project.Software.Version.VersionPurpose.ME";
AppaRao Pulie99e7ed2020-01-17 12:27:10 +053038
39extern int getActiveSoftwareVersionInfo(ipmi::Context::ptr ctx,
James Feistfcd2d3a2020-05-28 10:38:15 -070040 const std::string& reqVersionPurpose,
41 std::string& version);
42extern std::optional<MetaRevision> convertIntelVersion(std::string& s);
AppaRao Pulie99e7ed2020-01-17 12:27:10 +053043} // namespace ipmi