Hello,

A patch for procfs /proc/cpuinfo

Alain ...
diff --git a/Makefile b/Makefile
index a397522..d79b523 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
 TARGET = procfs
-OBJS = procfs.o netfs.o procfs_dir.o \
+OBJS = procfs.o netfs.o procfs_dir.o cpuinfo.o\
        process.o proclist.o rootdir.o dircat.o main.o
-LIBS = -lnetfs -lps
+LIBS = -lnetfs -lps -lfshelp
 
 CC = gcc
-CFLAGS = -Wall -g
+CFLAGS = -Wall -g `pkg-config --cflags glib-2.0`
 CPPFLAGS =
 LDFLAGS =
 
diff --git a/rootdir.c b/rootdir.c
index 1fa71b0..ecb3aed 100644
--- a/rootdir.c
+++ b/rootdir.c
@@ -32,6 +32,7 @@
 #include "procfs.h"
 #include "procfs_dir.h"
 #include "main.h"
+#include "cpuinfo.h"
 
 /* This implements a directory node with the static files in /proc.
    NB: the libps functions for host information return static storage;
@@ -397,6 +398,14 @@ rootdir_gc_fakeself (void *hook, char **contents, ssize_t 
*contents_len)
   return 0;
 }
 
+static error_t
+rootdir_gc_cpuinfo (void *hook, char **contents, ssize_t *contents_len)
+{
+  CpuInfo cpuinfo;
+  init_cpuinfo(&cpuinfo);
+  cpuinfo_string(contents,contents_len,cpuinfo);
+  return 0;
+}
 
 /* Glue logic and entries table */
 
@@ -480,6 +489,13 @@ static const struct procfs_dir_entry rootdir_entries[] = {
       .cleanup_contents = procfs_cleanup_contents_with_free,
     },
   },
+  {
+    .name = "cpuinfo",
+    .hook = & (struct procfs_node_ops) {
+      .get_contents = rootdir_gc_cpuinfo,
+      .cleanup_contents = procfs_cleanup_contents_with_free,
+    },
+  },
 #ifdef PROFILE
   /* In order to get a usable gmon.out file, we must apparently use exit(). */
   {

Reply via email to