Chapter 9. Symbols

Table of Contents

EXPORT_SYMBOL() include/linux/export.h
EXPORT_SYMBOL_GPL() include/linux/export.h

Within the kernel proper, the normal linking rules apply (ie. unless a symbol is declared to be file scope with the static keyword, it can be used anywhere in the kernel). However, for modules, a special exported symbol table is kept which limits the entry points to the kernel proper. Modules can also export symbols.

EXPORT_SYMBOL() include/linux/export.h

This is the classic method of exporting a symbol: dynamically loaded modules will be able to use the symbol as normal.