Justus Winter, le Mon 22 Sep 2014 11:38:40 +0200, a écrit : > * procfs/process.c (process_gc_mounts): New function. > (process_symlink_make_node): Likewise. > (entries): Use the new functions to provide a symlink to ../mounts.
Mmm, I wouldn't lie like this: don't we have per-process views of what / is? (notably through remaps) Which application needs /proc/$$/mounts? > --- > procfs/process.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/procfs/process.c b/procfs/process.c > index a9b1a59..f5da0d2 100644 > --- a/procfs/process.c > +++ b/procfs/process.c > @@ -202,6 +202,16 @@ process_file_gc_maps (struct proc_stat *ps, char > **contents) > return contents_len; > } > > +static error_t > +process_gc_mounts (void *hook, char **contents, ssize_t *contents_len) > +{ > +#define MOUNTSLINK "../mounts" > + *contents = MOUNTSLINK; > + *contents_len = sizeof MOUNTSLINK - 1; > +#undef MOUNTSLINK > + return 0; > +} > + > static ssize_t > process_file_gc_stat (struct proc_stat *ps, char **contents) > { > @@ -420,6 +430,14 @@ process_stat_make_node (void *dir_hook, const void > *entry_hook) > return np; > } > > +static struct node * > +process_symlink_make_node (void *dir_hook, const void *entry_hook) > +{ > + struct node *np = procfs_make_node (entry_hook, dir_hook); > + if (np) > + procfs_node_chtype (np, S_IFLNK); > + return np; > +} > > /* Implementation of the process directory per se. */ > > @@ -450,6 +468,15 @@ static struct procfs_dir_entry entries[] = { > }, > }, > { > + .name = "mounts", > + .hook = & (struct procfs_node_ops) { > + .get_contents = process_gc_mounts, > + }, > + .ops = { > + .make_node = process_symlink_make_node, > + }, > + }, > + { > .name = "stat", > .hook = & (struct process_file_desc) { > .get_contents = process_file_gc_stat, > -- > 2.1.0 > -- Samuel <c> tiens, je suis déçu <c> quand on clique sur le bouton random de http://xkcd.com/221/ on ne tombe pas (toujours) sur http://xkcd.com/4/ <c> bon, j'envoie un bug-report à l'auteur