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