Initialization and Shutdown
As already suggested, init_module registers any facility offered by the module. By ``facility,'' I mean a new functionality, be it a whole driver or a new software abstraction, that can be accessed by an application.
Registration of a new facility is performed by calling a kernel function. The arguments passed are usually a pointer to a data structure describing the new facility and the name of the facility being registered. The data structure usually embeds pointers to module functions, which is how functions in the module body get called.
In addition to the ``main'' facilities that are used to identify the class of each module (such as char and block drivers), a module can register the following items:
- Miscellaneous devices
These were once called mice because this kind of facility was only used by bus-mice. They are spare devices, generally simpler than full-featured ones.
- Serial ports
A serial driver can be added to the system at run time; this is how PCMCIA modems are supported.
- Line disciplines
The line discipline is a software layer that handles the tty data streams. A module can register a new line discipline to handle tty transactions in a non-standard way. The kmouse module, for example, uses a discipline to steal incoming data from serial mice.
- tty drivers
A tty driver is the set of functions that implement low-level data handling over a tty. Both the console and the serial driver register their drivers in order to create terminal ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access