作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我可以在 AIX 上用类似的东西检查 power7+:
inline bool ossPower7orLater( )
{
#if defined _AIX
if ( !__power_set( POWER_6 | POWER_5 | POWER_4 ) )
{
return true ;
}
else
#endif
return false ;
}
使用 systemcfg.h 中的宏。这里使用 __power_set()
宏而不是 __power_7()
来避免编写 power7 检查代码,当 power8 出现时会中断。
这将如何扩展以包括对 LinuxPPC 的支持?我可以想象可能有一些可以使用的指令,所以指出如果没有更好的指令是可以接受的(即:如果我知道要使用什么,我可以编写一个 asm block )。
最佳答案
mfpvr
asm 指令可用于获取处理器版本。当然,除非 IBM 遵循其处理器版本控制的既定模式,否则这可能会在以后的处理器上中断,但这是一个简单的解决方案。
注意:mfpvr 仅供主管使用,但 LinuxPPC 会模拟它。
另一个解决方案是检查 /proc/cpuinfo
(虽然非常乏味)。这将为您提供 CPU 和 PVR 的字符串表示。
网上找的一个例子:
processor : 0
cpu : POWER7 (architected), altivec supported
clock : 3550.000000MHz
revision : 2.0 (pvr 003f 0200)
希望对你有帮助
关于linux - 如何在 LinuxPPC 上对 power7 或更高版本进行运行时检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250464/
我可以在 AIX 上用类似的东西检查 power7+: inline bool ossPower7orLater( ) { #if defined _AIX if ( !__powe
我是一名优秀的程序员,十分优秀!