linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

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