Skip to content

Commit 6874627

Browse files
committed
CPU (Linux): detect Virtualized Apple Silicon
1 parent 491cfb9 commit 6874627

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

src/detection/cpu/cpu_linux.c

+26-21
Original file line numberDiff line numberDiff line change
@@ -170,28 +170,33 @@ static void detectArmName(FFstrbuf* cpuinfo, FFCPUResult* cpu, uint32_t implId)
170170
if (!ffStrStartsWith(line, "CPU part\t: ")) continue;
171171
uint32_t partId = (uint32_t) strtoul(line + strlen("CPU part\t: "), NULL, 16);
172172
const char* name = NULL;
173-
if (partId > 0) // Linux reports 0 for unknown CPUs
173+
switch (implId)
174174
{
175-
switch (implId)
176-
{
177-
case 0x41: name = armPartId2name(partId); break;
178-
case 0x42: name = brcmPartId2name(partId); break;
179-
case 0x43: name = caviumPartId2name(partId); break;
180-
case 0x44: name = decPartId2name(partId); break;
181-
case 0x46: name = fujitsuPartId2name(partId); break;
182-
case 0x48: name = hisiPartId2name(partId); break;
183-
case 0x4e: name = nvidiaPartId2name(partId); break;
184-
case 0x50: name = apmPartId2name(partId); break;
185-
case 0x51: name = qcomPartId2name(partId); break;
186-
case 0x53: name = samsungPartId2name(partId); break;
187-
case 0x56: name = marvellPartId2name(partId); break;
188-
case 0x61: name = applePartId2name(partId); break;
189-
case 0x66: name = faradayPartId2name(partId); break;
190-
case 0x69: name = intelPartId2name(partId); break;
191-
case 0x6d: name = msPartId2name(partId); break;
192-
case 0x70: name = ftPartId2name(partId); break;
193-
case 0xc0: name = amperePartId2name(partId); break;
194-
}
175+
case 0x41: name = armPartId2name(partId); break;
176+
case 0x42: name = brcmPartId2name(partId); break;
177+
case 0x43: name = caviumPartId2name(partId); break;
178+
case 0x44: name = decPartId2name(partId); break;
179+
case 0x46: name = fujitsuPartId2name(partId); break;
180+
case 0x48: name = hisiPartId2name(partId); break;
181+
case 0x4e: name = nvidiaPartId2name(partId); break;
182+
case 0x50: name = apmPartId2name(partId); break;
183+
case 0x51: name = qcomPartId2name(partId); break;
184+
case 0x53: name = samsungPartId2name(partId); break;
185+
case 0x56: name = marvellPartId2name(partId); break;
186+
case 0x61:
187+
if (partId == 0)
188+
{
189+
// https://github.com/Dr-Noob/cpufetch/issues/213#issuecomment-1927782105
190+
ffStrbufSetStatic(&cpu->name, "Virtualized Apple Silicon");
191+
return;
192+
}
193+
name = applePartId2name(partId);
194+
break;
195+
case 0x66: name = faradayPartId2name(partId); break;
196+
case 0x69: name = intelPartId2name(partId); break;
197+
case 0x6d: name = msPartId2name(partId); break;
198+
case 0x70: name = ftPartId2name(partId); break;
199+
case 0xc0: name = amperePartId2name(partId); break;
195200
}
196201
if (lastPartId != partId)
197202
{

0 commit comments

Comments
 (0)