16d6dc7adSKuiying Wang /* 26d6dc7adSKuiying Wang // Copyright (c) 2020 Intel Corporation 36d6dc7adSKuiying Wang // 46d6dc7adSKuiying Wang // Licensed under the Apache License, Version 2.0 (the "License"); 56d6dc7adSKuiying Wang // you may not use this file except in compliance with the License. 66d6dc7adSKuiying Wang // You may obtain a copy of the License at 76d6dc7adSKuiying Wang // 86d6dc7adSKuiying Wang // http://www.apache.org/licenses/LICENSE-2.0 96d6dc7adSKuiying Wang // 106d6dc7adSKuiying Wang // Unless required by applicable law or agreed to in writing, software 116d6dc7adSKuiying Wang // distributed under the License is distributed on an "AS IS" BASIS, 126d6dc7adSKuiying Wang // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136d6dc7adSKuiying Wang // See the License for the specific language governing permissions and 146d6dc7adSKuiying Wang // limitations under the License. 156d6dc7adSKuiying Wang */ 166d6dc7adSKuiying Wang 176d6dc7adSKuiying Wang #pragma once 186d6dc7adSKuiying Wang 196d6dc7adSKuiying Wang #include <array> 206d6dc7adSKuiying Wang #include <fstream> 216d6dc7adSKuiying Wang #include <iostream> 226d6dc7adSKuiying Wang #include <string> 236d6dc7adSKuiying Wang #include <variant> 246d6dc7adSKuiying Wang #include <vector> 256d6dc7adSKuiying Wang 266d6dc7adSKuiying Wang constexpr uint8_t maxPayloadSupported = 0x6; 276d6dc7adSKuiying Wang constexpr uint8_t maxHashSize = 64; 28*32381877SAyushi Smriti constexpr uint8_t maxSeedSize = 32; 296d6dc7adSKuiying Wang constexpr uint8_t maxPasswordSize = 64; 306d6dc7adSKuiying Wang 316d6dc7adSKuiying Wang #pragma pack(push, 1) 326d6dc7adSKuiying Wang struct PayloadStartTransfer 336d6dc7adSKuiying Wang { 346d6dc7adSKuiying Wang uint16_t payloadVersion; 356d6dc7adSKuiying Wang uint32_t payloadTotalSize; 366d6dc7adSKuiying Wang uint32_t payloadTotalChecksum; 376d6dc7adSKuiying Wang uint8_t payloadFlag; 386d6dc7adSKuiying Wang }; 396d6dc7adSKuiying Wang #pragma pack(pop) 406d6dc7adSKuiying Wang 416d6dc7adSKuiying Wang struct PayloadInProgress 426d6dc7adSKuiying Wang { 436d6dc7adSKuiying Wang uint32_t payloadReservationID; 446d6dc7adSKuiying Wang uint32_t payloadOffset; 456d6dc7adSKuiying Wang uint32_t payloadCurrentSize; 466d6dc7adSKuiying Wang uint32_t payloadCurrentChecksum; 476d6dc7adSKuiying Wang }; 486d6dc7adSKuiying Wang 496d6dc7adSKuiying Wang struct PayloadEndTransfer 506d6dc7adSKuiying Wang { 516d6dc7adSKuiying Wang uint32_t payloadReservationID; 526d6dc7adSKuiying Wang }; 536d6dc7adSKuiying Wang 546d6dc7adSKuiying Wang struct SetPayloadRetValue 556d6dc7adSKuiying Wang { 566d6dc7adSKuiying Wang uint32_t reservationToken; 576d6dc7adSKuiying Wang uint32_t actualPayloadWritten; 586d6dc7adSKuiying Wang uint32_t actualTotalPayloadWritten; 596d6dc7adSKuiying Wang }; 606d6dc7adSKuiying Wang 616d6dc7adSKuiying Wang struct setBIOSCapabilitiesReq 626d6dc7adSKuiying Wang { 636d6dc7adSKuiying Wang uint8_t OOBCapability; 646d6dc7adSKuiying Wang uint8_t reserved1; 656d6dc7adSKuiying Wang uint8_t reserved2; 666d6dc7adSKuiying Wang uint8_t reserved3; 676d6dc7adSKuiying Wang }; 686d6dc7adSKuiying Wang 696d6dc7adSKuiying Wang struct PayloadInfo 706d6dc7adSKuiying Wang { 716d6dc7adSKuiying Wang uint32_t payloadReservationID; 726d6dc7adSKuiying Wang uint8_t payloadType; 736d6dc7adSKuiying Wang uint16_t payloadVersion; 746d6dc7adSKuiying Wang uint32_t payloadTotalSize; 756d6dc7adSKuiying Wang uint32_t payloadTotalChecksum; 766d6dc7adSKuiying Wang uint8_t payloadStatus; 776d6dc7adSKuiying Wang uint8_t payloadflag; 786d6dc7adSKuiying Wang uint32_t payloadTimeStamp; 796d6dc7adSKuiying Wang uint32_t payloadCurrentSize; 806d6dc7adSKuiying Wang uint32_t payloadCurrentChecksum; 816d6dc7adSKuiying Wang uint32_t actualTotalPayloadWritten; 826d6dc7adSKuiying Wang }; 836d6dc7adSKuiying Wang 846d6dc7adSKuiying Wang struct NVOOBdata 856d6dc7adSKuiying Wang { 866d6dc7adSKuiying Wang setBIOSCapabilitiesReq mBIOSCapabilities; 876d6dc7adSKuiying Wang uint8_t mIsBIOSCapInitDone; 886d6dc7adSKuiying Wang PayloadInfo payloadInfo[maxPayloadSupported]; 896d6dc7adSKuiying Wang }; 90