Input device structures Allocating and registering an input device Polled input device sub-class Generating and reporting an input event User space interface Putting it all together Driver examples