/* * Copyright 2018 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * */ #ifndef _DISCOVERY_H_ #define _DISCOVERY_H_ #define PSP_HEADER_SIZE … #define BINARY_SIGNATURE … #define DISCOVERY_TABLE_SIGNATURE … #define GC_TABLE_ID … #define HARVEST_TABLE_SIGNATURE … #define VCN_INFO_TABLE_ID … #define MALL_INFO_TABLE_ID … #define NPS_INFO_TABLE_ID … table; #pragma pack(1) table_info; binary_header; die_info; ip_discovery_header; ip; ip_v3; ip_v4; die_header; ip_structure; struct gpu_info_header { … }; struct gc_info_v1_0 { … }; struct gc_info_v1_1 { … }; struct gc_info_v1_2 { … }; struct gc_info_v2_0 { … }; struct gc_info_v2_1 { … }; harvest_info_header; harvest_info; harvest_table; struct mall_info_header { … }; struct mall_info_v1_0 { … }; struct mall_info_v2_0 { … }; #define VCN_INFO_TABLE_MAX_NUM_INSTANCES … struct vcn_info_header { … }; struct vcn_instance_info_v1_0 { … }; struct vcn_info_v1_0 { … }; #define NPS_INFO_TABLE_MAX_NUM_INSTANCES … struct nps_info_header { … }; struct nps_instance_info_v1_0 { … }; struct nps_info_v1_0 { … }; #pragma pack() #endif