Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

devd(8) [freebsd man page]

DEVD(8) 						    BSD System Manager's Manual 						   DEVD(8)

NAME
devd -- device state change daemon SYNOPSIS
devd [-dnq] [-f file] [-l num] DESCRIPTION
The devd daemon provides a way to have userland programs run when certain kernel events happen. The following options are accepted. -d Run in the foreground instead of becoming a daemon and log additional information for debugging. -f file Use configuration file file instead of the default /etc/devd.conf. If option -f is specified more than once, the last file speci- fied is used. -l num Limit concurrent socket connections to num. The default connection limit is 10. -n Do not process all pending events before becoming a daemon. Instead, call daemon right away. -q Quiet mode. Only log messages at priority LOG_WARNING or above. IMPLEMENTATION NOTES
The devd utility is a system daemon that runs in the background all the time. Whenever a device is added to or removed from the device tree, devd will execute actions specified in devd.conf(5). For example, devd might execute dhclient(8) when an Ethernet adapter is added to the system, and kill the dhclient(8) instance when the same adapter is removed. Another example would be for devd to use a table to locate and load via kldload(8) the proper driver for an unrecognized device that is added to the system. The devd utility hooks into the devctl(4) device driver. This device driver has hooks into the device configuration system. When nodes are added or deleted from the tree, this device will deliver information about the event to devd. Once devd has parsed the message, it will search its action list for that kind of event and perform the action with the highest matching value. For most mundane uses, the default handlers are adequate. However, for more advanced users, the power is present to tweak every aspect of what happens. The devd utility reads /etc/devd.conf or the alternate configuration file specified with a -f option and uses that file to drive the rest of the process. While the format of this file is described in devd.conf(5), some basics are covered here. In the options section, one can define multiple directories to search for config files. All files in these directories whose names match the pattern *.conf are parsed. These files are intended to be installed by third party vendors that wish to hook into the devd system without modifying the user's other config files. Since devctl(4) allows only one active reader, devd multiplexes it, forwarding all events to any number of connected clients. Clients con- nect by opening the SOCK_SEQPACKET UNIX domain socket at /var/run/devd.seqpacket.pipe. FILES
/etc/devd.conf The default devd configuration file. /var/run/devd.seqpacket.pipe The socket used by devd to communicate with its clients. /var/run/devd.pipe A deprecated socket retained for use with old clients. SEE ALSO
devctl(4), devd.conf(5) AUTHORS
M. Warner Losh BSD
August 14, 2014 BSD

Check Out this Related Man Page

DEVCTL(4)                                                  BSD Kernel Interfaces Manual                                                  DEVCTL(4)

NAME
devctl -- device event reporting and device control interface DESCRIPTION
The devctl device is used to report device events from the kernel. Future versions will allow for some device control as well. IMPLEMENTATION NOTES
This design allows only one reader for /dev/devctl. This is not desirable in the long run, but will get a lot of hair out of this implemen- tation. Maybe we should make this device a clonable device. Also note: we specifically do not attach a device to the device_t tree to avoid potential chicken and egg problems. One could argue that all of this belongs to the root node. One could also further argue that the sysctl(3) interface that we have now might more properly be an ioctl(2) interface. SIGIO support is included in the driver. However, the author is not sure that the SIGIO support is done correctly. It was copied from a driver that had SIGIO support that likely has not been tested since FreeBSD 3.4 or FreeBSD 2.2.8! The read channel for this device is used to report changes to userland in realtime. We return one record at a time. If you try to read this device a character at a time, you will lose the rest of the data. Listening programs are expected to cope. The sysctl and boot parameter hw.bus.devctl_disable is used to disable devctl when no devd(8) is running. PROTOCOL
The devctl device uses an ASCII protocol. The driver returns one record at a time to its readers. Each record is terminated with a newline. The first character of the record is the event type. Type Description ! A notify event, such as a link state change. + Device node in tree attached. - Device node in tree detached. ? Unknown device detected. Message Formats Except for the first character in the record, attach and detach messages have the same format. Tdev at parent on location Part Description T + or - dev The device name that was attached/detached. parent The device name of the parent bus that attached the device. location Bus specific location information. The nomatch messages can be used to load devices driver. If you load a device driver, then one of two things can happen. If the device driver attaches to something, you will get a device attached message. If it does not, then nothing will happen. The attach and detach messages arrive after the event. This means one cannot use the attach message to load an alternate driver. The attach message driver has already claimed this device. One cannot use the detach messages to flush data to the device. The device is already gone. SEE ALSO
devd(8) BSD February 11, 2003 BSD
Man Page