研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

CPUID : CPU 名

2010-07-26 19:55:03 | Weblog
プロセッサ名取得を行う。
#include <stdio.h> 

void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx){
  __asm__ __volatile__ ("cpuid"
: "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
 : "a" (op) : "cc"); } char *get_cpu_name(void) { int eax, ebx, ecx, edx; static int name[12] = {0};
cpuid(0x80000000, &eax, &ebx, &ecx, &edx); if ( (eax & 0xffff) >= 4 ) { cpuid(0x80000002, &name[0], &name[1], &name[ 2], &name[ 3]); cpuid(0x80000003, &name[4], &name[5], &name[ 6], &name[ 7]); cpuid(0x80000004, &name[8], &name[9], &name[10], &name[11]); } return (char *)name; } int main(void) { printf("CPU name\t: %s\n", get_cpu_name()); return 0; }