EXPORT_SYMBOL macro creates a new kernel symbol entry (address of the symbol, symbol) based on the value you specify and puts it in a special section of the kernel image, in __ksymtab section. When modules are loaded dynamically, the loader resolves the symbols during run time by parsing the entries of this section. Extern can be used for non-static functions that are statically linked during compile time. HTH, Ani >-----Original Message----- >From: kernelnewbies-bounce@xxxxxxxxxxxx [mailto:kernelnewbies- >bounce@xxxxxxxxxxxx] On Behalf Of pradeep singh >Sent: Sunday, May 04, 2008 10:38 PM >To: Kernel List >Subject: EXPORT_SYMBOL Vs extern? > >Hi All, > >A Quick but perhaps dumbass query, > >1. int function_A(...) > { > ...; > } > >2. int function_B(...) > { > ...; > } > EXPORT_SYMBOL(function_B); > >Okay i understand I should use the EXPORT_SYMBOL way if i want >function_B to be used by rest of the kernel. > >Now I have a doubt - > >Is it a compulsion for a function which need to be used in any other >source file, exported through EXPORT_SYMBOL only? >Does this means all the places in kernel(and there are loads of them), >where a function is non-static and is used in other source files >should actually be using EXPORT_SYMBOL? > >Thanks, > ~Pradeep >-- >play the game > >-- >To unsubscribe from this list: send an email with >"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >Please read the FAQ at http://kernelnewbies.org/FAQ ��.n��������+%����w�j)p���{.n����z�ޖw�n'���q���b�������v��m�����Y�����