Re: Calling driver functions from kernel space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
Mention at the top but after header file in readdir.c:::

..Heder file <>
extern returntype YourDriverFunctionName(arg list);
all other code..



Regards:
Pulkit Goel
mail:vipulkit.goel@xxxxxxxxx




On Tue, Nov 10, 2009 at 4:41 PM, Sam Carter <sam.w.carter@xxxxxxxxx> wrote:
Hi again Pulkit, may I ask you where exactly the kernel code section of your reply belongs? I've put the extern part into readdir.c, but I still get an error that it can't find the line inside the if statement you mentioned. Help is appreciated, thanks :)

2009/11/9 Pulkit Goel <vipulkit.goel@xxxxxxxxx>
Hi,

Add In Kernel Code::

# include<YourCharDriver.H>
OR
extern YourDriverFunctionName();

:::::from this Driver Function declaration Comes in Kernel Code


Add In Driver Code::

EXPORT_SYMBOL_GPL(YourDriverFunctionName);

Calling Method in ""fs/readdir.c""
::

struct module *find_module(const char *YourDriverModuleName)
if(module != NULL)
{
     YourDriverFunctionName();
}




Regards:
Pulkit Goel
mail:vipulkit.goel@xxxxxxxxx


On Mon, Nov 9, 2009 at 3:35 PM, Sam Carter <sam.w.carter@xxxxxxxxx> wrote:
When I try to compile the kernel with my changes to readdir.c, my function in the driver is undefined and it therefore won't compile. This also happens after I've compiled my driver against the kernel tree with the EXPORT_SYMBOL in place.

Any more thoughts on this?

2009/11/9 Zhu Yanhai <zhu.yanhai@xxxxxxxxx>

EXPORT_SYMBOL_GPL(your func);
Then this function can be called outside.

For the second question, does this one work?

/* Search for module by name: must hold module_mutex. */
struct module *find_module(const char *name)

It's in kernel/module.c and has been exported.

Regards,
Zhu Yanhai



2009/11/8 Sam Carter <sam.w.carter@xxxxxxxxx>:
> Hi all,
>
> I have a char driver/module which compiles and loads into the linux kernel
> just fine. In this driver are some functions which I would like to access
> from the kernel file 'fs/readdir.c'. Additionally, how can I test if a
> driver is loaded?
>
> I need something like the following.
>
> if(myDriver is loaded){
>
>     myDriver.functionCall();
> }
>
> All examples I've found on internet searches are doing it from userspace
> applications.
>
> Thanks for any help
>
>





[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux