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 ...

Get Linux Device Drivers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.