From: "Randy.Dunlap" <rddunlap@osdl.org>
To: selvakumar nagendran <kernelselva@yahoo.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Module : Pipefs : doubts
Date: Mon, 10 Jan 2005 06:48:10 -0800 [thread overview]
Message-ID: <41E295AA.8050204@osdl.org> (raw)
In-Reply-To: <20050110063825.83428.qmail@web60601.mail.yahoo.com>
selvakumar nagendran wrote:
> Hello Randy,
> Thanks for ur help. See I do know that pipe.o is
> compiled into the main kernel image. But the following
> code block in pipe.c, made me to think as if pipefs
> has been implemented as a module in the kernel. Bcoz
> it used module_init and module_exit macros. That's why
> I got confused. Can u explain the reason for this?
Here's what I suggest. Look at the kernel header files,
in particular: include/linux/init.h .
Find /module_init/ in that header file.
It has different #defines depending on whether the
including file (e.g., pipe.c) is being
built as a module or not (#ifdef MODULE).
Once you have found that module_init() means __initcall(),
then you can find that __initcall() means device_initcall(),
which in turns means define_initcall("6",fn);
which is a (normal, common) method of setting up a
"module" (functional module, not only for separate
loadable modules) initialization entry point.
There, darn, I've said too much and my rubout key
doesn't work.
> ------------------
> static DECLARE_FSTYPE(pipe_fs_type, "pipefs",
> pipefs_read_super, FS_NOMOUNT);
>
> static int __init init_pipe_fs(void)
> {
> int err = register_filesystem(&pipe_fs_type);
> if (!err) {
> pipe_mnt = kern_mount(&pipe_fs_type);
> err = PTR_ERR(pipe_mnt);
> if (IS_ERR(pipe_mnt))
> unregister_filesystem(&pipe_fs_type);
> else
> err = 0;
> }
> return err;
> }
>
> static void __exit exit_pipe_fs(void)
> {
> unregister_filesystem(&pipe_fs_type);
> mntput(pipe_mnt);
> }
>
> module_init(init_pipe_fs)
> module_exit(exit_pipe_fs)
>
>
> --- "Randy.Dunlap" <rddunlap@osdl.org> wrote:
>
>>selvakumar nagendran wrote:
>>
>>>Hello linux-experts,
>>> I went through the kernel source code file
>>>/fs/pipe.c and I found that the pipe file system
>>>configured as a module. But in lsmod I am unable
>>
>>to
>>
>>>see it. This is my first doubt.
>
>
> Where do you see that?
> fs/pipe.o is always built into the kernel image.
--
~Randy
prev parent reply other threads:[~2005-01-10 15:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-10 5:04 Pipefs : doubts selvakumar nagendran
2005-01-10 5:57 ` Randy.Dunlap
2005-01-10 6:38 ` Module : " selvakumar nagendran
2005-01-10 14:48 ` Randy.Dunlap [this message]
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=41E295AA.8050204@osdl.org \
--to=rddunlap@osdl.org \
--cc=kernelselva@yahoo.com \
--cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.