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 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).