Report CPU in output
authorSofian Brabez <sbz@6dev.net>
Sun, 21 Jun 2020 12:37:23 +0000 (13:37 +0100)
committerSofian Brabez <sbz@6dev.net>
Sun, 21 Jun 2020 17:31:13 +0000 (18:31 +0100)
Parse /proc/cpuinfo CPU information and display it in the sysinfo output

Makefile
sysinfo.c

index bc210d93c14a22af2ae1adbfba28b67008f493db..577ed7bb5eb248e5a401405dffca25d4891d5466 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 ARCH := $(shell adb shell getprop ro.product.cpu.abi)
 SDK_VERSION := $(shell adb shell getprop ro.build.version.sdk)
-DESTDIR := /data/local/tmp/
+DESTDIR := /data/local/tmp
 
 all: install
 
index 3e53ae2bce00d354565d50663ed4840bf3f2e10b..0472386f876d6d20a57d95d45ba62906205a0ce6 100644 (file)
--- a/sysinfo.c
+++ b/sysinfo.c
@@ -1,5 +1,11 @@
+#include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
 
+#include <sys/types.h>
+#include <sys/uio.h>
 #include <sys/utsname.h>
 #include <sys/system_properties.h>
 
@@ -23,6 +29,39 @@ static void system_kernel(void)
     }
 }
 
+static void system_cpu(void)
+{
+    int i, fd, bytes;
+    char *p;
+    char buffer[1024];
+    const char *needle = "Processor    :";
+
+    fd = open("/proc/cpuinfo", O_RDONLY);
+    if (fd == -1) {
+        return;
+    }
+
+    bytes = read(fd, buffer, sizeof(buffer) - 1);
+    if (bytes == -1) {
+        return;
+    }
+
+    buffer[bytes] = '\0';
+    p = buffer;
+
+    p = strstr(p, "Processor   :");
+    p += strlen(needle) - 1;
+
+    printf("%-25s: ", "CPU");
+    while ( *p != '\n') {
+        printf("%c", *p++);
+    }
+
+    printf("\n");
+
+    close(fd);
+}
+
 static void system_properties(struct prop *array, int size)
 {
     int i, len;
@@ -37,6 +76,7 @@ static void system_properties(struct prop *array, int size)
         printf("%-25s: %s\n", array[i].key_name, value);
     }
 
+    system_cpu();
 }
 
 int