1bae44755Sopenharmony_ci/* 2bae44755Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3bae44755Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4bae44755Sopenharmony_ci * you may not use this file except in compliance with the License. 5bae44755Sopenharmony_ci * You may obtain a copy of the License at 6bae44755Sopenharmony_ci * 7bae44755Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8bae44755Sopenharmony_ci * 9bae44755Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10bae44755Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11bae44755Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12bae44755Sopenharmony_ci * See the License for the specific language governing permissions and 13bae44755Sopenharmony_ci * limitations under the License. 14bae44755Sopenharmony_ci */ 15bae44755Sopenharmony_ci 16bae44755Sopenharmony_ci#ifndef CREATE_PCID_H 17bae44755Sopenharmony_ci#define CREATE_PCID_H 18bae44755Sopenharmony_ci 19bae44755Sopenharmony_ci#include <stdint.h> 20bae44755Sopenharmony_ci 21bae44755Sopenharmony_ci#define OS_SYSCAP_BYTES 120 22bae44755Sopenharmony_ci 23bae44755Sopenharmony_citypedef struct ProductCompatibilityID { 24bae44755Sopenharmony_ci uint16_t apiVersion : 15; 25bae44755Sopenharmony_ci uint16_t apiVersionType : 1; 26bae44755Sopenharmony_ci uint16_t systemType : 3; 27bae44755Sopenharmony_ci uint16_t reserved : 13; 28bae44755Sopenharmony_ci uint32_t manufacturerID; 29bae44755Sopenharmony_ci uint8_t osSyscap[OS_SYSCAP_BYTES]; 30bae44755Sopenharmony_ci} PCIDMain; 31bae44755Sopenharmony_ci 32bae44755Sopenharmony_citypedef struct PcidHeader { 33bae44755Sopenharmony_ci uint16_t apiVersion : 15; 34bae44755Sopenharmony_ci uint16_t apiVersionType : 1; 35bae44755Sopenharmony_ci uint16_t systemType : 3; 36bae44755Sopenharmony_ci uint16_t reserved : 13; 37bae44755Sopenharmony_ci uint32_t manufacturerID; 38bae44755Sopenharmony_ci} PCIDHeader; 39bae44755Sopenharmony_ci 40bae44755Sopenharmony_ciint32_t CreatePCID(char *inputFile, char *outDirPath); 41bae44755Sopenharmony_ciint32_t DecodePCID(char *inputFile, char *outDirPath); 42bae44755Sopenharmony_ciint32_t DecodeStringPCIDToJson(char *input, char *outDirPath); 43bae44755Sopenharmony_ciint32_t EncodePcidscToString(char *inputFile, char *outDirPath); 44bae44755Sopenharmony_ci#endif