"The kernel's loadable module mechanism does not give modules
access to all parts of the kernel. Instead, any kernel symbol which
is intended to be usable by loadable modules must be explicitly
exported to them via one of the variants of the EXPORT_SYMBOL()
macro. The idea behind this restriction is to place limits on the
reach of modules and to provide a relatively well-defined module
API. In practice, there have been few limits placed on the
exporting of symbols, with the result that many thousands of
symbols are available to modules. Loadable modules can access many
of the obviously useful symbols (printk(), say, or kmalloc()), but
they can also get at generic symbols like edd, tpm_pm_suspend(),
vr41xx_set_irq_trigger(), or flexcop_dump_reg()..."
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.