2004-10-10 05:29:22

by Matthew Hindle

[permalink] [raw]
Subject: /proc/[number] special entries

I was wondering if anybody could help me with a hint or two...

I'm trying to add a sub-directory to each /proc/[number] directory
(where [number] is a process id). I think that I need to get a
proc_dir_entry* so that I can call:

proc_mkdir("mysubdir", (struct proc_dir_entry *) parent);

However, I can't work out how to get a reference to the proc_dir_entry*
I need. I can find the other entries in the proc directory (such as bus,
cpuinfo. misc, net...) by doing something like this:

struct proc_dir_entry * dp;
dp = &proc_root;
dp = dp->subdir;
while (dp != NULL) {
printk("er... found: %s\n",dp->name);
dp = dp->next;
}

However, the only entries that don't show up are the [number] entries.
Assistance please!

Please CC: any replies to <[email protected]>.

Kind regards,
Matt Hindle.



2004-10-10 15:35:45

by Buddy Lucas

[permalink] [raw]
Subject: Re: /proc/[number] special entries

Hi Matt,

On Sun, 10 Oct 2004 15:31:24 +1000, Matthew Hindle
<[email protected]> wrote:
> I was wondering if anybody could help me with a hint or two...
>
> I'm trying to add a sub-directory to each /proc/[number] directory
> (where [number] is a process id). I think that I need to get a
> proc_dir_entry* so that I can call:
>
> proc_mkdir("mysubdir", (struct proc_dir_entry *) parent);
>
> However, I can't work out how to get a reference to the proc_dir_entry*
> I need. I can find the other entries in the proc directory (such as bus,
> cpuinfo. misc, net...) by doing something like this:
>
> struct proc_dir_entry * dp;
> dp = &proc_root;
> dp = dp->subdir;
> while (dp != NULL) {
> printk("er... found: %s\n",dp->name);
> dp = dp->next;
> }
>
> However, the only entries that don't show up are the [number] entries.
> Assistance please!

The PID entries in /proc are special cases: see proc_root_readdir().
I'm guessing though that you'll want to take a look at the struct
pid_entry stuff in fs/proc/base.c, it's all there.


Cheers,
Buddy

> Please CC: any replies to <[email protected]>.
>
> Kind regards,
> Matt Hindle.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>