Thanks Pulkit, I can see better how it works now. Thanks everyone else too.

2009/11/9 Pulkit Goel <[email protected]>

> 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:[email protected] <mail%[email protected]>
>
>
> On Mon, Nov 9, 2009 at 3:35 PM, Sam Carter <[email protected]> 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 <[email protected]>
>>
>> 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 <[email protected]>:
>>> > 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
>>> >
>>> >
>>>
>>
>>
>

Reply via email to