Specifications
Chapter 3
Requirements Specification
The requirements specification is the basis upon which the design and architecture, as well
as the implementation of the Input Abstraction Layer are built. The relevant kernel drivers’
interfaces are summed up and described in a more abstract way than they were discussed in
the previous chapter. Moreover, the attributes of the Input Abstraction Layer’s output inter-
face are described. The functional requirements describe the essential functions and features
necessary to eliminate the existing gap between the available kernel drivers and the user in-
terface. The current issues regarding Linux input are discussed, solutions are addressed. The
performance and quality requirements describe the goals which have to be achieved.
It is important to bear in mind that the Input Abstraction Layer is a daemon process.
Once running, the Input Abstraction Layer is an autonomous background process which does
not offer a user interface at run time. It is not meant to be controlled by user interaction at
run time.
3.1 Required Interfaces
This section sums up the existing input interfaces implemented by the drivers discussed in
Chapter 2. Additionally, current issues and their solutions are addressed. Subsequent to this
summary, the abstract output interface is described. This interface needs to be implemented
by the Input Abstraction Layer.
Input Event Interface
The event interface (Chapter 2, §2.5) is the most important interface regarding Linux input
as it is reporting all input events generated by the various input drivers which use the Linux
input core—especially the keyboard drivers. The major issue which can be solved by using
the event interface is the following: if an input driver is reporting an event to the input core
for which no translation from scan- to keycode is known, the input event is not processed by
the event handlers (e.g. keyboard.c). Thus, the event does not get delivered to TTYs or
the X Window System. The delivery of the events to the TTYs or the X Window System is
the prerequisite for user space applications to receive the event. However, the event interface
handles all events coming from the input core—whether there is a translation for the event’s
scancode or not. Table 3.1 sums up the attributes of the event interface.
16