diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | procfs_nonpid_files.c | 18 | ||||
-rw-r--r-- | procfs_pid_files.c | 7 |
3 files changed, 32 insertions, 1 deletions
@@ -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 104ae8b3..ab1341ff 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 55cc52c1..3ad77340 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; } |