hi:) In kernel code ,what is the use of EXPORT_SYMBOL()? Does it export a function to user application , so this function can be used in user application ? thanks!
On Tue, Jan 29, 2013 at 3:13 AM, horseriver <horserivers@gmail.com> wrote:
hi:)
In kernel code ,what is the use of EXPORT_SYMBOL()? Does it export a function to user application , so this function can be used in user application ?
So it can be used by kernel modules. Think of it like "public" keyword in C++. -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
On Tue, Jan 29, 2013 at 9:52 AM, Mulyadi Santosa <mulyadi.santosa@gmail.com>wrote:
On Tue, Jan 29, 2013 at 3:13 AM, horseriver <horserivers@gmail.com> wrote:
hi:)
In kernel code ,what is the use of EXPORT_SYMBOL()? Does it export a function to user application , so this function can be used in user application ?
So it can be used by kernel modules.
Think of it like "public" keyword in C++.
-- regards,
Mulyadi Santosa Freelance Linux trainer and consultant
blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
And you're allowed to use it in Kernel modules too? I mean I can expose a function in a kernel module that I am building by using EXPORT_SYMBOL?
On Tue, Jan 29, 2013 at 2:58 PM, Adel Qodmani <mpcadel@gmail.com> wrote:
And you're allowed to use it in Kernel modules too? I mean I can expose a function in a kernel module that I am building by using EXPORT_SYMBOL?
technically, yes, you're allowed to export symbol(s) in your kernel module. Of course, during compiling, module that uses that exported symbol will be said as using unknown symbol (but since likely you will use "extern", it will still go on). During module linking in kernel space, that "unknown symbol name" will be resolved. Just like what we see when a program link to function(s) or variable(s) in dynamic libraries. -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
On Tue, Jan 29, 2013 at 8:31 AM, Mulyadi Santosa <mulyadi.santosa@gmail.com>wrote:
On Tue, Jan 29, 2013 at 2:58 PM, Adel Qodmani <mpcadel@gmail.com> wrote:
And you're allowed to use it in Kernel modules too? I mean I can expose a function in a kernel module that I am building by using EXPORT_SYMBOL?
technically, yes, you're allowed to export symbol(s) in your kernel module. Of course, during compiling, module that uses that exported symbol will be said as using unknown symbol (but since likely you will use "extern", it will still go on).
During module linking in kernel space, that "unknown symbol name" will be resolved. Just like what we see when a program link to function(s) or variable(s) in dynamic libraries.
I think this is explained very well in LDD chapter 1 or 2) and LKD. Kernel modules are in kernel space, so if you export a symbol it is available to the kernel.
-- regards,
Mulyadi Santosa Freelance Linux trainer and consultant
blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Thank you Warm Regards Anuz
You can use method signed by EXPORT_SYMBOL(xxx) on other modules (something like public method on module that other module can import and use it) -----Original Message----- From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies-bounces@kernelnewbies.org] On Behalf Of horseriver Sent: Monday, January 28, 2013 11:43 PM To: kernelnewbies@kernelnewbies.org Subject: use of EXPORT_SYMBOL() hi:) In kernel code ,what is the use of EXPORT_SYMBOL()? Does it export a function to user application , so this function can be used in user application ? thanks! _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (5)
-
Adel Qodmani -
Anuz Pratap Singh Tomar -
horseriver -
Mulyadi Santosa -
Reza Hoorfar