added to the SOC GPU parse
This commit is contained in:
parent
7b525ba970
commit
9f169ced23
@ -29,7 +29,7 @@ namespace hgl
|
|||||||
ENUM_CLASS_RANGE(Unknow,JLQ)
|
ENUM_CLASS_RANGE(Unknow,JLQ)
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr const char *SOCVendorName[16]=
|
constexpr const char *SOCVendorName[]=
|
||||||
{
|
{
|
||||||
"Unknow",
|
"Unknow",
|
||||||
"Qualcomm",
|
"Qualcomm",
|
||||||
@ -41,6 +41,8 @@ namespace hgl
|
|||||||
"JLQ",
|
"JLQ",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const SOCVendor ParseSOCVendor(const char *str);
|
||||||
|
|
||||||
enum class CpuArch
|
enum class CpuArch
|
||||||
{
|
{
|
||||||
Unknow=0,
|
Unknow=0,
|
||||||
@ -142,11 +144,61 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
bool ParseSOCInfo(SOCInfo &,const char *);
|
bool ParseSOCInfo(SOCInfo &,const char *);
|
||||||
|
|
||||||
struct SOCCpuInfo
|
enum class SOCGPUVendor
|
||||||
{
|
{
|
||||||
SOCInfo soc_info;
|
Unknow=0,
|
||||||
|
|
||||||
uint cluster_count; ///<CPU簇数量
|
PowerVR,
|
||||||
ARMCpuClusterInfo cluster[4]; ///<CPU簇信息
|
Mali,
|
||||||
};//struct SOCCpuInfo
|
Adreno,
|
||||||
|
Vivante,
|
||||||
|
Intel,
|
||||||
|
Radeon,
|
||||||
|
Tegra,
|
||||||
|
ENUM_CLASS_RANGE(Unknow,Tegra)
|
||||||
|
};
|
||||||
|
|
||||||
|
constexpr const char *SOCGPUVendorName[]=
|
||||||
|
{
|
||||||
|
"Unknow",
|
||||||
|
|
||||||
|
"PowerVR",
|
||||||
|
"Mali",
|
||||||
|
"Adreno",
|
||||||
|
"Vivante",
|
||||||
|
"Intel",
|
||||||
|
"Radeon",
|
||||||
|
"Tegra",
|
||||||
|
};
|
||||||
|
|
||||||
|
const SOCGPUVendor ParseSOCGPUVendor(const char *str);
|
||||||
|
|
||||||
|
struct SOCGPUInfo
|
||||||
|
{
|
||||||
|
SOCGPUVendor vendor;
|
||||||
|
char model[32];
|
||||||
|
|
||||||
|
uint core_count;
|
||||||
|
uint freq;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SOC 产品信息
|
||||||
|
*/
|
||||||
|
struct SOCProductInfo
|
||||||
|
{
|
||||||
|
char product_name[64]; ///<产品名称
|
||||||
|
|
||||||
|
SOCInfo soc_info; ///<SOC基本信息
|
||||||
|
|
||||||
|
SOCGPUInfo gpu_info; ///<GPU信息
|
||||||
|
|
||||||
|
uint cpu_cluster_count; ///<CPU簇数量
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
char core[32]; ///<CPU核心名称
|
||||||
|
uint count; ///<核心数量
|
||||||
|
float freq; ///<频率
|
||||||
|
}cpu_cluster[4]; ///<CPU簇信息
|
||||||
|
};//struct SOCProductInfo
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -55,9 +55,7 @@ namespace
|
|||||||
|
|
||||||
soc.vendor=SOCVendor::MediaTek;
|
soc.vendor=SOCVendor::MediaTek;
|
||||||
|
|
||||||
p+=2;
|
hgl::strcpy(soc.model,sizeof(soc.model),p);
|
||||||
|
|
||||||
hgl::strcpy(soc.model,sizeof(soc.model),p,4);
|
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
@ -92,7 +90,7 @@ namespace
|
|||||||
|
|
||||||
soc.vendor=SOCVendor::Hisilicon;
|
soc.vendor=SOCVendor::Hisilicon;
|
||||||
|
|
||||||
hgl::strcpy(soc.model,sizeof(soc.model),p+5);
|
hgl::strcpy(soc.model,sizeof(soc.model),p);
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
@ -152,6 +150,30 @@ namespace
|
|||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
|
const SOCVendor ParseSOCVendor(const char *str)
|
||||||
|
{
|
||||||
|
if(!str||!*str)return(SOCVendor::Unknow);
|
||||||
|
|
||||||
|
int index=hgl::find_str_in_array<char>(int(SOCVendor::RANGE_SIZE),(const char **)SOCVendorName,str);
|
||||||
|
|
||||||
|
if(index<0||index>=int(SOCVendor::RANGE_SIZE))
|
||||||
|
return(SOCVendor::Unknow);
|
||||||
|
|
||||||
|
return SOCVendor(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
const SOCGPUVendor ParseSOCGPUVendor(const char *str)
|
||||||
|
{
|
||||||
|
if(!str||!*str)return(SOCGPUVendor::Unknow);
|
||||||
|
|
||||||
|
int index=hgl::find_str_in_array<char>(int(SOCGPUVendor::RANGE_SIZE),(const char **)SOCGPUVendorName,str);
|
||||||
|
|
||||||
|
if(index<0||index>=int(SOCGPUVendor::RANGE_SIZE))
|
||||||
|
return(SOCGPUVendor::Unknow);
|
||||||
|
|
||||||
|
return SOCGPUVendor(index);
|
||||||
|
}
|
||||||
|
|
||||||
bool ParseSOCInfo(SOCInfo &soc,const char *soc_name)
|
bool ParseSOCInfo(SOCInfo &soc,const char *soc_name)
|
||||||
{
|
{
|
||||||
hgl_zero(soc);
|
hgl_zero(soc);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user