summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremie Koenig <jk@jk.fr.eu.org>2010-08-23 11:24:29 +0000
committerJeremie Koenig <jk@jk.fr.eu.org>2010-08-30 14:31:21 +0200
commit0f2bdacd6ad3dbcc905925dee12cb30918c33a11 (patch)
treefbcadf8294b3314bb0a924339c00bc7bb89d6d79
parenta269783a41ae8b18e5b24d934c96ce9e90de3067 (diff)
Make contents a char* to avoid typecasts all over the place
* procfs.h (procfs_cleanup_contents_with_free, procfs_cleanup_contents_with_vm_deallocate, procfs_get_contents, struct procfs_ops): Change CONTENTS from a void pointer to a char one. * dircat.c, netfs.c, process.c, procfs.c, procfs_dir.c, proclist.c, rootdir.c: Update.
-rw-r--r--dircat.c4
-rw-r--r--netfs.c10
-rw-r--r--process.c2
-rw-r--r--procfs.c10
-rw-r--r--procfs.h10
-rw-r--r--procfs_dir.c2
-rw-r--r--proclist.c2
-rw-r--r--rootdir.c32
8 files changed, 36 insertions, 36 deletions
diff --git a/dircat.c b/dircat.c
index 857ba72..93bb2fe 100644
--- a/dircat.c
+++ b/dircat.c
@@ -8,7 +8,7 @@ struct dircat_node
};
static error_t
-dircat_get_contents (void *hook, void **contents, size_t *contents_len)
+dircat_get_contents (void *hook, char **contents, size_t *contents_len)
{
struct dircat_node *dcn = hook;
int i, sz, pos;
@@ -19,7 +19,7 @@ dircat_get_contents (void *hook, void **contents, size_t *contents_len)
for (i=0; dcn->dirs[i]; i++)
{
- void *subcon;
+ char *subcon;
size_t sublen;
err = procfs_get_contents (dcn->dirs[i], &subcon, &sublen);
diff --git a/netfs.c b/netfs.c
index a47861e..6fd82a0 100644
--- a/netfs.c
+++ b/netfs.c
@@ -29,7 +29,7 @@ int netfs_maxsymlinks = PROCFS_MAXSYMLINKS;
responsible for the operation. NP is locked. */
error_t netfs_validate_stat (struct node *np, struct iouser *cred)
{
- void *contents;
+ char *contents;
size_t contents_len;
error_t err;
@@ -57,7 +57,7 @@ error_t netfs_attempt_read (struct iouser *cred, struct node *np,
size_t contents_len;
error_t err;
- err = procfs_get_contents (np, (void **) &contents, &contents_len);
+ err = procfs_get_contents (np, &contents, &contents_len);
if (err)
return err;
@@ -82,7 +82,7 @@ error_t netfs_attempt_readlink (struct iouser *user, struct node *np,
size_t contents_len;
error_t err;
- err = procfs_get_contents (np, (void **) &contents, &contents_len);
+ err = procfs_get_contents (np, &contents, &contents_len);
if (err)
return err;
@@ -140,7 +140,7 @@ error_t netfs_get_dirents (struct iouser *cred, struct node *dir,
size_t contents_len;
error_t err;
- err = procfs_get_contents (dir, (void **) &contents, &contents_len);
+ err = procfs_get_contents (dir, &contents, &contents_len);
if (err)
return err;
@@ -159,7 +159,7 @@ error_t netfs_get_dirents (struct iouser *cred, struct node *dir,
putentries (contents, contents_len, nentries, NULL, datacnt);
if (bufsize < *datacnt)
{
- void *n = mmap (0, *datacnt, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, 0, 0);
+ char *n = mmap (0, *datacnt, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, 0, 0);
if (n == MAP_FAILED)
return ENOMEM;
diff --git a/process.c b/process.c
index 7f5646a..fa79552 100644
--- a/process.c
+++ b/process.c
@@ -204,7 +204,7 @@ struct process_file_node
};
static error_t
-process_file_get_contents (void *hook, void **contents, size_t *contents_len)
+process_file_get_contents (void *hook, char **contents, size_t *contents_len)
{
struct process_file_node *file = hook;
error_t err;
diff --git a/procfs.c b/procfs.c
index 5396ecf..a5f52b5 100644
--- a/procfs.c
+++ b/procfs.c
@@ -12,7 +12,7 @@ struct netnode
void *hook;
/* (cached) contents of the node */
- void *contents;
+ char *contents;
size_t contents_len;
/* parent directory, if applicable */
@@ -20,13 +20,13 @@ struct netnode
};
void
-procfs_cleanup_contents_with_free (void *hook, void *cont, size_t len)
+procfs_cleanup_contents_with_free (void *hook, char *cont, size_t len)
{
free (cont);
}
void
-procfs_cleanup_contents_with_vm_deallocate (void *hook, void *cont, size_t len)
+procfs_cleanup_contents_with_vm_deallocate (void *hook, char *cont, size_t len)
{
vm_deallocate (mach_task_self (), (vm_address_t) cont, (vm_size_t) len);
}
@@ -109,7 +109,7 @@ procfs_make_ino (struct node *np, const char *filename)
return (unsigned long) jrand48 (x);
}
-error_t procfs_get_contents (struct node *np, void **data, size_t *data_len)
+error_t procfs_get_contents (struct node *np, char **data, size_t *data_len)
{
if (np->nn->ops->enable_refresh_hack_and_break_readdir && np->nn->contents)
{
@@ -121,7 +121,7 @@ error_t procfs_get_contents (struct node *np, void **data, size_t *data_len)
if (! np->nn->contents && np->nn->ops->get_contents)
{
- void *contents;
+ char *contents;
size_t contents_len;
error_t err;
diff --git a/procfs.h b/procfs.h
index 4ab3b56..8336ee8 100644
--- a/procfs.h
+++ b/procfs.h
@@ -17,8 +17,8 @@ struct procfs_node_ops
netnode->nn_stat. For regular files and symlinks, they are what
you would expect; for directories, they are an argz vector of the
names of the entries. */
- error_t (*get_contents) (void *hook, void **contents, size_t *contents_len);
- void (*cleanup_contents) (void *hook, void *contents, size_t contents_len);
+ error_t (*get_contents) (void *hook, char **contents, size_t *contents_len);
+ void (*cleanup_contents) (void *hook, char *contents, size_t contents_len);
/* Lookup NAME in this directory, and store the result in *np. The
returned node should be created by lookup() using procfs_make_node()
@@ -41,8 +41,8 @@ struct procfs_node_ops
};
/* These helper functions can be used as procfs_node_ops.cleanup_contents. */
-void procfs_cleanup_contents_with_free (void *, void *, size_t);
-void procfs_cleanup_contents_with_vm_deallocate (void *, void *, size_t);
+void procfs_cleanup_contents_with_free (void *, char *, size_t);
+void procfs_cleanup_contents_with_vm_deallocate (void *, char *, size_t);
/* Create a new node and return it. Returns NULL if it fails to allocate
enough memory. In this case, ops->cleanup will be invoked. */
@@ -69,7 +69,7 @@ void procfs_node_chtype (struct node *np, mode_t type);
corresponding child nodes. */
ino64_t procfs_make_ino (struct node *np, const char *filename);
-error_t procfs_get_contents (struct node *np, void **data, size_t *data_len);
+error_t procfs_get_contents (struct node *np, char **data, size_t *data_len);
error_t procfs_lookup (struct node *np, const char *name, struct node **npp);
void procfs_cleanup (struct node *np);
diff --git a/procfs_dir.c b/procfs_dir.c
index 431fea3..4df4669 100644
--- a/procfs_dir.c
+++ b/procfs_dir.c
@@ -11,7 +11,7 @@ struct procfs_dir_node
};
static error_t
-procfs_dir_get_contents (void *hook, void **contents, size_t *contents_len)
+procfs_dir_get_contents (void *hook, char **contents, size_t *contents_len)
{
static const char dot_dotdot[] = ".\0..";
struct procfs_dir_node *dn = hook;
diff --git a/proclist.c b/proclist.c
index 35422a8..b5acb26 100644
--- a/proclist.c
+++ b/proclist.c
@@ -10,7 +10,7 @@
#define PID_STR_SIZE (3 * sizeof (pid_t) + 1)
static error_t
-proclist_get_contents (void *hook, void **contents, size_t *contents_len)
+proclist_get_contents (void *hook, char **contents, size_t *contents_len)
{
struct ps_context *pc = hook;
pidarray_t pids;
diff --git a/rootdir.c b/rootdir.c
index 8062f0d..cd8949b 100644
--- a/rootdir.c
+++ b/rootdir.c
@@ -44,7 +44,7 @@ get_boottime (struct ps_context *pc, struct timeval *tv)
}
static error_t
-rootdir_gc_version (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_version (void *hook, char **contents, size_t *contents_len)
{
struct utsname uts;
int r;
@@ -53,7 +53,7 @@ rootdir_gc_version (void *hook, void **contents, size_t *contents_len)
if (r < 0)
return errno;
- *contents_len = asprintf ((char **) contents,
+ *contents_len = asprintf (contents,
"Linux version 2.6.1 (%s %s %s %s)\n",
uts.sysname, uts.release, uts.version, uts.machine);
@@ -63,7 +63,7 @@ rootdir_gc_version (void *hook, void **contents, size_t *contents_len)
/* Uptime -- we use the start time of init to deduce it. This is probably a bit
fragile, as any clock update will make the result inaccurate. */
static error_t
-rootdir_gc_uptime (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_uptime (void *hook, char **contents, size_t *contents_len)
{
struct timeval time, boottime;
double up_secs;
@@ -85,13 +85,13 @@ rootdir_gc_uptime (void *hook, void **contents, size_t *contents_len)
proc(5) specifies that it should be equal to USER_HZ times the idle value
in ticks from /proc/stat. So we assume a completely idle system both here
and there to make that work. */
- *contents_len = asprintf ((char **) contents, "%.2lf %.2lf\n", up_secs, up_secs);
+ *contents_len = asprintf (contents, "%.2lf %.2lf\n", up_secs, up_secs);
return *contents_len >= 0 ? 0 : ENOMEM;
}
static error_t
-rootdir_gc_stat (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_stat (void *hook, char **contents, size_t *contents_len)
{
struct timeval boottime, time;
struct vm_statistics vmstats;
@@ -113,7 +113,7 @@ rootdir_gc_stat (void *hook, void **contents, size_t *contents_len)
timersub (&time, &boottime, &time);
up_ticks = opt_clk_tck * (time.tv_sec + time.tv_usec / 1000000.);
- *contents_len = asprintf ((char **) contents,
+ *contents_len = asprintf (contents,
/* Does Mach keeps track of any of this? */
"cpu 0 0 0 %lu 0 0 0 0 0\n"
"cpu0 0 0 0 %lu 0 0 0 0 0\n"
@@ -130,7 +130,7 @@ rootdir_gc_stat (void *hook, void **contents, size_t *contents_len)
}
static error_t
-rootdir_gc_loadavg (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_loadavg (void *hook, char **contents, size_t *contents_len)
{
host_load_info_data_t hli;
mach_msg_type_number_t cnt;
@@ -142,7 +142,7 @@ rootdir_gc_loadavg (void *hook, void **contents, size_t *contents_len)
return err;
assert (cnt == HOST_LOAD_INFO_COUNT);
- *contents_len = asprintf ((char **) contents,
+ *contents_len = asprintf (contents,
"%.2f %.2f %.2f 1/0 0\n",
hli.avenrun[0] / (double) LOAD_SCALE,
hli.avenrun[1] / (double) LOAD_SCALE,
@@ -152,7 +152,7 @@ rootdir_gc_loadavg (void *hook, void **contents, size_t *contents_len)
}
static error_t
-rootdir_gc_meminfo (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_meminfo (void *hook, char **contents, size_t *contents_len)
{
host_basic_info_data_t hbi;
mach_msg_type_number_t cnt;
@@ -169,7 +169,7 @@ rootdir_gc_meminfo (void *hook, void **contents, size_t *contents_len)
return err;
assert (cnt == HOST_BASIC_INFO_COUNT);
- *contents_len = asprintf ((char **) contents,
+ *contents_len = asprintf (contents,
"MemTotal: %14lu kB\n"
"MemFree: %14lu kB\n"
"Active: %14lu kB\n"
@@ -187,7 +187,7 @@ rootdir_gc_meminfo (void *hook, void **contents, size_t *contents_len)
}
static error_t
-rootdir_gc_vmstat (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_vmstat (void *hook, char **contents, size_t *contents_len)
{
host_basic_info_data_t hbi;
mach_msg_type_number_t cnt;
@@ -204,7 +204,7 @@ rootdir_gc_vmstat (void *hook, void **contents, size_t *contents_len)
return err;
assert (cnt == HOST_BASIC_INFO_COUNT);
- *contents_len = asprintf ((char **) contents,
+ *contents_len = asprintf (contents,
"nr_free_pages %lu\n"
"nr_inactive_anon %lu\n"
"nr_active_anon %lu\n"
@@ -232,7 +232,7 @@ rootdir_gc_vmstat (void *hook, void **contents, size_t *contents_len)
}
static error_t
-rootdir_gc_cmdline (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_cmdline (void *hook, char **contents, size_t *contents_len)
{
struct ps_context *pc = hook;
struct proc_stat *ps;
@@ -259,7 +259,7 @@ rootdir_gc_cmdline (void *hook, void **contents, size_t *contents_len)
memcpy (*contents, proc_stat_args (ps), *contents_len);
argz_stringify (*contents, *contents_len, ' ');
- ((char *) *contents)[*contents_len - 1] = '\n';
+ (*contents)[*contents_len - 1] = '\n';
out:
_proc_stat_free (ps);
@@ -267,9 +267,9 @@ out:
}
static error_t
-rootdir_gc_fakeself (void *hook, void **contents, size_t *contents_len)
+rootdir_gc_fakeself (void *hook, char **contents, size_t *contents_len)
{
- *contents_len = asprintf ((char **) contents, "%d", opt_fake_self);
+ *contents_len = asprintf (contents, "%d", opt_fake_self);
return *contents_len >= 0 ? 0 : ENOMEM;
}