[lkml]   [2005]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: /proc parent &proc_root == NULL?
    Hash: SHA1

    Randy.Dunlap wrote:
    > John Richard Moser wrote:
    >> Hash: SHA1
    >> proc_misc_init() has both these lines in it:
    >> entry = create_proc_entry("kmsg", S_IRUSR, &proc_root);
    >> proc_root_kcore = create_proc_entry("kcore", S_IRUSR, NULL);
    >> Both entries show up in /proc, as /proc/kmsg and /proc/kcore. So I ask,
    >> as I can't see after several minutes of examination, what's the
    >> difference? Why is NULL used for some and &proc_root used for others?
    >> I'm looking at 2.6.10
    > create_proc_entry() passes &parent to proc_create().
    > See proc_create():
    > ...
    > This is an error path:
    > if (!(*parent) && xlate_proc_name(name, parent, &fn) != 0)
    > goto out;
    > but xlate_proc_name() searches for a /proc/.... and returns the
    > all-but-final-part-of-name *parent (hope that makes some sense,
    > see the comments above the function), so it returns &proc_root.
    > HTH. If not, fire back.

    create_proc_entry("kmsg", S_IRUSR, &proc_root);

    So this is asking for proc_root to be filled?

    create_proc_entry("kcore", S_IRUSR, NULL);

    And this is just saying to shove it in proc's root?

    I'm trying to locate a specific proc entry, using this lovely piece of
    code I ripped off:

    * Find a proc entry
    * Duplicated from remove_proc_entry()
    struct proc_dir_entry **get_proc_entry(const char *name, struct
    proc_dir_entry *parent) {
    struct proc_dir_entry **p;
    const char *fn = name;
    int len;
    if (!parent && xlate_proc_name(name, &parent, &fn) != 0)
    goto out;
    len = strlen(fn);
    for (p = &parent->subdir; *p; p=&(*p)->next ) {
    if (!proc_match(len, fn, *p))
    return p;
    return NULL;

    And I'm trying to figure out if, say, /proc/devices would be found by...

    - -OR-

    Oh well. I'll figure it out eventually. :) I've already caused my
    kernel to not boot :) figured it out too, it was that very function
    above; I replaced a chunk of remove_proc_entry() with a modified version
    of that and I'd busted it horribly so it didn't work. Just more things
    to remind me that I know not what it is I do.

    - --
    All content of all messages exchanged herein are left in the
    Public Domain, unless otherwise explicitly stated.

    Version: GnuPG v1.4.0 (GNU/Linux)
    Comment: Using GnuPG with Thunderbird -

    -----END PGP SIGNATURE-----
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:09    [W:0.023 / U:0.724 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site