From: trajber@gmail.com (Mauro Romano Trajber)
To: kernelnewbies@lists.kernelnewbies.org
Subject: New proc entry under /proc/[pid]
Date: Tue, 11 Jan 2011 17:20:10 -0200 [thread overview]
Message-ID: <AANLkTikdZrSEczfGPMDg78OePH1uT6rSf-jiBO-Em+X=@mail.gmail.com> (raw)
In-Reply-To: <AANLkTi=pQY273DSxkZgYM9UL09vPt7o3VeLRtt0CESc+@mail.gmail.com>
Following your recommendations parent->pde always returns NULL. You know why
?
// code...
err = kern_path("/proc/1/", LOOKUP_FOLLOW, &path);
if (err) {
return err;
}
struct proc_inode *parent = PROC_I(path.dentry->d_inode);
struct proc_dir_entry *parent_dir = parent->pde;
if (parent_dir == NULL) {
printk("parent_dir is NULL\n");
} else {
create_proc_entry("SOMEFile", 0644, parent_dir);
}
Mauro!
On Tue, Jan 11, 2011 at 4:39 AM, Rajat Sharma <fs.rajat@gmail.com> wrote:
> Try this:
> 1. do a path_lookup for parent proc dir e.g. /proc/1234 and get its inode.
> 2. get proc_inode structure for parent from vfs inode like this:
> sruct proc_inode *parent = PROC_I(inode).
> PROC_I is defined in proc_fs.h
> 3. get parent proc_dir_entry object:
> struct proc_dir_entry *parent_dir = parent->pde;
> 4. now you can call:
> create_proc_entry("SOME file", 0644, parent_dir);
> 5. or you can create a directory if you want:
> proc_mkdir("your dir", parent_dir);
>
> hope this helps.
>
> Rajat
>
> On Tue, Jan 11, 2011 at 12:19 AM, Mauro Romano Trajber
> <trajber@gmail.com> wrote:
> > I think I found:
> > static const struct pid_entry tgid_base_stuff[] at fs/proc/base.c has all
> > /proc/[pid] entries.
> > But unfortunately it does not use create_proc_entry function, and I'm
> trying
> > to create a new syscall that creates a new proc_entry for the caller
> > process.
> > Adding a new element in tgid_base_stuff[] makes the things more
> complicated
> > than simply call a create_proc_entry function.
> > Is there another way to do it ?
> > Mauro Romano Trajber
> >
> > On Mon, Jan 10, 2011 at 3:18 PM, Mauro Romano Trajber <trajber@gmail.com
> >
> > wrote:
> >>
> >> How can I create a new proc entry under /proc/[pid] ?
> >> I using create_proc_entry("SOME_FILE", 0644, NULL /* here goes the pid
> >> proc entry */);
> >> Is there any way to get PID directory as a parent proc entry ? How ?
> >> Thanks,
> >> Mauro
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110111/e63bbed7/attachment.html
next prev parent reply other threads:[~2011-01-11 19:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-10 17:18 New proc entry under /proc/[pid] Mauro Romano Trajber
2011-01-10 18:49 ` Mauro Romano Trajber
2011-01-11 6:39 ` Rajat Sharma
2011-01-11 19:20 ` Mauro Romano Trajber [this message]
2011-01-12 9:41 ` Rajat Sharma
2011-01-12 18:58 ` Mauro Romano Trajber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='AANLkTikdZrSEczfGPMDg78OePH1uT6rSf-jiBO-Em+X=@mail.gmail.com' \
--to=trajber@gmail.com \
--cc=kernelnewbies@lists.kernelnewbies.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).