summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMadhusudan.C.S <madhusudancs@gmail.com>2008-08-18 17:27:00 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2010-08-01 01:29:57 +0200
commita027dcc41d381a3c76a5b20d4d55ad9821af2308 (patch)
tree6dab26eecebccd016623a8bac1bd5784fc5af729
parent0419c2813a91d0746cc70f4ecab33efca4b9440c (diff)
2008-08-18 Madhusudan.C.S <madhusudancs@gmail.com>
* procfs_nonpid_files.c: (procfs_write_nonpid_version): New function. * procfs_pid_files.c: (procfs_write_files_contents): Add a check to find if the read is requested for the version file and corresponding a call to it.
-rw-r--r--ChangeLog8
-rw-r--r--procfs_nonpid_files.c18
-rw-r--r--procfs_pid_files.c7
3 files changed, 32 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7cf1661..6079292 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-08-18 Madhusudan.C.S <madhusudancs@gmail.com>
+ * procfs_nonpid_files.c:
+ (procfs_write_nonpid_version): New function.
+ * procfs_pid_files.c:
+ (procfs_write_files_contents): Add a check
+ to find if the read is requested for the
+ version file and corresponding a call to it.
+
2008-08-14 Madhusudan.C.S <madhusudancs@gmail.com>
* procfs.h: (jiffy_t): New typedef.
* procfs_pid.h: "procfs.h" is included.
diff --git a/procfs_nonpid_files.c b/procfs_nonpid_files.c
index 104ae8b..ab1341f 100644
--- a/procfs_nonpid_files.c
+++ b/procfs_nonpid_files.c
@@ -269,7 +269,7 @@ error_t procfs_write_nonpid_stat (struct dir_entry *dir_entry,
idle_time_secs = uptime_secs -
total_system_time_secs;
- /* If the values are multiplied by 100, it iss done so to adjust
+ /* If the values are multiplied by 100, it is done so to adjust
values in seconds to jiffies. */
if (asprintf (&stat_data, "cpu %ld %ld %ld %ld %ld %ld %d %d %d\n"
"cpu0 %ld %ld %ld %ld %ld %ld %d %d %d\n"
@@ -460,3 +460,19 @@ error_t procfs_write_nonpid_uptime (struct dir_entry *dir_entry,
free (uptime_data);
return err;
}
+
+error_t procfs_write_nonpid_version (struct dir_entry *dir_entry,
+ off_t offset, size_t *len, void *data)
+{
+ char *version_data;
+ error_t err = 0;
+
+ if (asprintf (&version_data, "Linux version 2.6.18\n", NULL) == -1)
+ return errno;
+
+ memcpy (data, version_data, strlen(version_data));
+ *len = strlen (data);
+
+ free (version_data);
+ return err;
+}
diff --git a/procfs_pid_files.c b/procfs_pid_files.c
index 55cc52c..3ad7734 100644
--- a/procfs_pid_files.c
+++ b/procfs_pid_files.c
@@ -565,5 +565,12 @@ procfs_write_files_contents (struct node *node,
else
err = ENOENT;
+ if (! strcmp (node->nn->dir_entry->name, "version"))
+ if (! strcmp (node->nn->dir_entry->dir->fs_path, ""))
+ err = procfs_write_nonpid_version (node->nn->dir_entry,
+ offset, len, data);
+ else
+ err = ENOENT;
+
return err;
}