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:[email protected] <mail%[email protected]>



On Tue, Nov 10, 2009 at 4:41 PM, Sam Carter <[email protected]> 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 <[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