mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
127 lines
2.7 KiB
C
127 lines
2.7 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "printer.h"
|
|
#include "01h.h"
|
|
#include "udev.h"
|
|
#include "extended.h"
|
|
|
|
/***
|
|
SAMPLE OUTPUT
|
|
|
|
Name: Intel Core i7-4790K
|
|
Arch: 64 Bits
|
|
Frequency: 4.0 GHz
|
|
NºCores: 4 cores(8 threads)
|
|
AXV: AVX,AVX2
|
|
SSE: SSE,SSE2,SSE4.1,SSE4.2
|
|
FMA: FMA3
|
|
AES: Yes
|
|
SHA: No
|
|
L1 Size: 32KB(Data)32KB(Instructions)
|
|
L2 Size: 512KB
|
|
L3 Size: 8MB
|
|
Peak FLOPS: 512 GFLOP/s(in simple precision)
|
|
|
|
***/
|
|
|
|
int main() {
|
|
struct cpuInfo* cpu = getCPUInfo(cpu);
|
|
if(cpu == NULL)
|
|
return EXIT_FAILURE;
|
|
|
|
struct cache* cach = new_cache(cach);
|
|
struct frequency* freq = new_frequency(freq);
|
|
struct ascii* ascii = set_ascii(getCPUVendorInternal(cpu));
|
|
|
|
char* cpuName = getString_CPUName();
|
|
char* maxFrequency = getString_MaxFrequency(freq);
|
|
char* nCores = getString_NumberCores(cpu);
|
|
char* avx = getString_AVX(cpu);
|
|
char* sse = getString_SSE(cpu);
|
|
char* fma = getString_FMA(cpu);
|
|
char* aes = getString_AES(cpu);
|
|
char* sha = getString_SHA(cpu);
|
|
char* l1 = getString_L1(cach);
|
|
char* l2 = getString_L2(cach);
|
|
char* l3 = getString_L3(cach);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_NAME,cpuName);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_ARCH,"x86_64");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_FREQUENCY,maxFrequency);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_NCORES,nCores);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_AVX,avx);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_SSE,sse);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_FMA,fma);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_AES,aes);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_SHA,sha);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_L1,l1);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_L2,l2);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_L3,l3);
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
print_text(ascii,TITLE_PEAK,getPeakPerformance(cpu,getFrequency(freq)));
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
print_ascii(ascii,__COUNTER__);
|
|
printf("\n");
|
|
|
|
free(cpuName);
|
|
free(maxFrequency);
|
|
free(nCores);
|
|
free(avx);
|
|
free(sse);
|
|
free(fma);
|
|
free(aes);
|
|
free(sha);
|
|
free(l1);
|
|
free(l2);
|
|
free(l3);
|
|
|
|
free(cpu);
|
|
free(ascii);
|
|
freeCache(cach);
|
|
freeFrequency(freq);
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|