xref: /openbsd-src/share/man/man4/hotplug.4 (revision 2f9345c272419bec9ceba40542106aab3284115f)
1*2f9345c2Sschwarze.\"	$OpenBSD: hotplug.4,v 1.6 2015/09/14 17:09:26 schwarze Exp $
24e8f96f7Sgrange.\"
34e8f96f7Sgrange.\" Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org>
44e8f96f7Sgrange.\"
54e8f96f7Sgrange.\" Permission to use, copy, modify, and distribute this software for any
64e8f96f7Sgrange.\" purpose with or without fee is hereby granted, provided that the above
74e8f96f7Sgrange.\" copyright notice and this permission notice appear in all copies.
84e8f96f7Sgrange.\"
94e8f96f7Sgrange.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
104e8f96f7Sgrange.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
114e8f96f7Sgrange.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
124e8f96f7Sgrange.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
134e8f96f7Sgrange.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
144e8f96f7Sgrange.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
154e8f96f7Sgrange.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
164e8f96f7Sgrange.\"
17*2f9345c2Sschwarze.Dd $Mdocdate: September 14 2015 $
184e8f96f7Sgrange.Dt HOTPLUG 4
194e8f96f7Sgrange.Os
204e8f96f7Sgrange.Sh NAME
214e8f96f7Sgrange.Nm hotplug
224e8f96f7Sgrange.Nd devices hot plugging
234e8f96f7Sgrange.Sh SYNOPSIS
244e8f96f7Sgrange.Cd "pseudo-device hotplug 1"
254e8f96f7Sgrange.Pp
26*2f9345c2Sschwarze.In sys/types.h
27*2f9345c2Sschwarze.In sys/device.h
28*2f9345c2Sschwarze.In sys/hotplug.h
294e8f96f7Sgrange.Sh DESCRIPTION
304e8f96f7SgrangeThe
314e8f96f7Sgrange.Nm
324e8f96f7Sgrangepseudo-device passes device attachment and detachment events to
334e8f96f7Sgrangeuserland.
344e8f96f7SgrangeWhen a device attaches or detaches, the corresponding event is queued.
354e8f96f7SgrangeThe events can then be obtained from the queue through the
364e8f96f7Sgrange.Xr read 2
374e8f96f7Sgrangecall on the
384e8f96f7Sgrange.Pa /dev/hotplug
394e8f96f7Sgrangedevice file.
404e8f96f7SgrangeOnce an event has been read, it's deleted from the queue.
414e8f96f7SgrangeThe event queue has a limited size and if it's full all new events will be
424e8f96f7Sgrangedropped.
434e8f96f7SgrangeEach event is described with the following structure declared in the
44369bef3aSschwarze.In sys/hotplug.h
454e8f96f7Sgrangeheader file:
464e8f96f7Sgrange.Bd -literal -offset indent
474e8f96f7Sgrangestruct hotplug_event {
484e8f96f7Sgrange	int		he_type;	/* event type		*/
494e8f96f7Sgrange	enum devclass	he_devclass;	/* device class		*/
504e8f96f7Sgrange	char		he_devname[16];	/* device name		*/
514e8f96f7Sgrange};
524e8f96f7Sgrange
534e8f96f7Sgrange.Ed
544e8f96f7SgrangeThe
554e8f96f7Sgrange.Va he_type
564e8f96f7Sgrangefield describes the event type and can be either
574e8f96f7Sgrange.Dv HOTPLUG_DEVAT
584e8f96f7Sgrangefor device attachment or
594e8f96f7Sgrange.Dv HOTPLUG_DEVDT
604e8f96f7Sgrangefor detachment.
614e8f96f7SgrangeThe
624e8f96f7Sgrange.Va he_devclass
634e8f96f7Sgrangefield describes the device class.
644e8f96f7SgrangeAll device classes can be found in the
65369bef3aSschwarze.In sys/device.h
664e8f96f7Sgrangeheader file:
674e8f96f7Sgrange.Bd -literal -offset indent
684e8f96f7Sgrangeenum devclass {
694e8f96f7Sgrange	DV_DULL,	/* generic, no special info */
704e8f96f7Sgrange	DV_CPU,		/* CPU (carries resource utilization) */
714e8f96f7Sgrange	DV_DISK,	/* disk drive (label, etc) */
724e8f96f7Sgrange	DV_IFNET,	/* network interface */
734e8f96f7Sgrange	DV_TAPE,	/* tape device */
744e8f96f7Sgrange	DV_TTY		/* serial line interface */
754e8f96f7Sgrange};
764e8f96f7Sgrange
774e8f96f7Sgrange.Ed
784e8f96f7SgrangeThe
794e8f96f7Sgrange.Va he_devname
804e8f96f7Sgrangeis a device name including unit number, e.g.\&
814e8f96f7Sgrange.Pa sd1 .
824e8f96f7Sgrange.Pp
834e8f96f7SgrangeOnly one structure can be read per call.
844e8f96f7SgrangeIf there are no events in the queue, the
854e8f96f7Sgrange.Xr read 2
864e8f96f7Sgrangecall will block until an event appears.
874e8f96f7Sgrange.Sh DIAGNOSTICS
884e8f96f7Sgrange.Bl -diag
894e8f96f7Sgrange.It "hotplug: event lost, queue full"
90c79c137bSjmcNew events will be dropped until all pending events have been read.
914e8f96f7Sgrange.El
924e8f96f7Sgrange.Sh SEE ALSO
934e8f96f7Sgrange.Xr read 2 ,
944e8f96f7Sgrange.Xr hotplugd 8
954e8f96f7Sgrange.Sh HISTORY
964e8f96f7SgrangeThe
974e8f96f7Sgrange.Nm
984e8f96f7Sgrangedevice first appeared in
994e8f96f7Sgrange.Ox 3.6 .
1004e8f96f7Sgrange.Sh AUTHORS
1014e8f96f7SgrangeThe
1024e8f96f7Sgrange.Nm
1034e8f96f7Sgrangedriver was written by
104e5cc2e7eSschwarze.An Alexander Yurchenko Aq Mt grange@openbsd.org .
105