Hi Vivek,
 
> I have kernel modules for USB Host, device and OTG.

> These platform drivers ( usb bus driver (h/w drivers)).

>

> As of now I am using EXPORT_SYMBOL to export a

> variable flag for doing Inter-Module-communication.

> Problem: other modules which are using this variable

> fail while doing insmod if original module exporting

> this variable is Not loaded.

>

> So I am looking a way in which I don't have to worry

> if my original module is loaded or not.

 

So you are asking this: Module A exports symbol "x" and module "B" uses it. Now 
you want to be able to load module B irrespective of whether module A is loaded 
or not. Right?

 

But in the case module A is not loaded, where do you expect the module B to 
resolve the references to "x" from? You cannot have undefined references, and 
there HAS to be a definition for the module to be loaded.

 

> For this I need to check for the export symbol via c

> code (module code, or ko file code).

>

> Again I can check in System.map but I am on

> embedded board, so I don't have System.map

>  on my up and running linux image.

 

Firstly you cannot read / write files from a kernel module. Secondly, the 
undefined references have to be resolved BEFORE the control reaches your module 
initialization code (MODULE_INIT). Thirdly, even if you some how were to 
magically determine that the symbol is not defined in the kernel, what do you 
plan to do in order to provide a definition of "x"?

Thanks,

 

Rajat

 

 

 

-----Original Message-----
From: Rajat Jain [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 27, 2008 7:09 PM
To: Vivek Kumar Gupta; kernelnewbies
Subject: RE: Module loading and Unloading

 

Hi Vivek,

 

What you are trying to do is very unclear. 

 

> 1. Is there a way of exporting symbol kernel? 

 

Ofcourse, EXPORT_SYMBOL(). Wait, did I understand your question correctly?

 

> 2. Or is there any way which I can check if symbol is present in the kernel 
> in c code? 

 

Check it in kallsyms

 

> 3. Or Can I load the Module A from Module B [in c code] (without using 
> modprobe). 

 

Huh? Are you trying to load a module from C code in kernel space? N-O-!. Yes, a 
C code in application space can load modules.

 

Thanks,

 

Rajat

Reply via email to