struct input_handler
Prev | Chapter 25. Input Subsystem | Next

## Name

struct input_handler — implements one of interfaces for input devices

## Synopsis

    struct input_handler {
      void * private;
      void (* event) (struct input_handle *handle, unsigned int type, unsigned int code, int value);
      int (* connect) (struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id);
      void (* disconnect) (struct input_handle *handle);
      void (* start) (struct input_handle *handle);
      const struct file_operations * fops;
      int minor;
      const char * name;
      const struct input_device_id * id_table;
      const struct input_device_id * blacklist;
      struct list_head h_list;
      struct list_head node;
    };

## Members

private

  driver-specific data

event

  event handler. This method is being called by input core with interrupts disabled and dev->event_lock spinlock held and so it may not sleep

connect

  called when attaching a handler to an input device

disconnect

  disconnects a handler from input device

start

  starts handler for given handle. This function is called by input core right after `connect` method and also when a process that “grabbed” a device releases it

fops

  file operations this driver implements

minor

  beginning of range of 32 minors for devices this driver can provide

name

  name of the handler, to be shown in /proc/bus/input/handlers

id_table

  pointer to a table of input_device_ids this driver can handle

blacklist

  pointer to a table of input_device_ids this driver should ignore even if they match `id_table`

h_list

  list of input handles associated with the handler

node

  for placing the driver onto input_handler_list

## Description

Input handlers attach to input devices and create input handles. There are likely several handlers attached to any given input device at the same time. All of them will get their copy of input event generated by the device.

Note that input core serializes calls to `connect` and `disconnect` methods.

Prev | Up | Next
struct input_dev | Home | struct input_handle