STRUCT SUBSYS_INTERF(9) Device drivers infrastructure STRUCT SUBSYS_INTERF(9)NAME
struct_subsys_interface - interfaces to device functions
SYNOPSIS
struct subsys_interface {
const char * name;
struct bus_type * subsys;
struct list_head node;
int (* add_dev) (struct device *dev, struct subsys_interface *sif);
int (* remove_dev) (struct device *dev, struct subsys_interface *sif);
};
MEMBERS
name
name of the device function
subsys
subsytem of the devices to attach to
node
the list of functions registered at the subsystem
add_dev
device hookup to device function handler
remove_dev
device hookup to device function handler
DESCRIPTION
Simple interfaces attached to a subsystem. Multiple interfaces can attach to a subsystem and its devices. Unlike drivers, they do not
exclusively claim or control devices. Interfaces usually represent a specific functionality of a subsystem/class of devices.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT SUBSYS_INTERF(9)
Check Out this Related Man Page
STRUCT INPUT_HANDLER(9) Input Subsystem STRUCT INPUT_HANDLER(9)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);
void (* events) (struct input_handle *handle,const struct input_value *vals, unsigned int count);
bool (* filter) (struct input_handle *handle, unsigned int type, unsigned int code, int value);
bool (* match) (struct input_handler *handler, struct input_dev *dev);
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);
bool legacy_minors;
int minor;
const char * name;
const struct input_device_id * id_table;
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
events
event sequence handler. This method is being called by input core with interrupts disabled and dev->event_lock spinlock held and so it
may not sleep
filter
similar to event; separates normal event handlers from "filters".
match
called after comparing device's id with handler's id_table to perform fine-grained matching between device and handler
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
legacy_minors
set to true by drivers using legacy minor ranges
minor
beginning of range of 32 legacy 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
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.
The very same structure is used to implement input filters. Input core allows filters to run first and will not pass event to regular
handlers if any of the filters indicate that the event should be filtered (by returning true from their filter method).
Note that input core serializes calls to connect and disconnect methods.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT INPUT_HANDLER(9)