aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2003-02-11 17:36:38 +0000
committerWarner Losh <imp@FreeBSD.org>2003-02-11 17:36:38 +0000
commit7f511526c2006de4cafa2a3d255a1e4ca35dc387 (patch)
treea1ef05387cdaf577a6c272d48afb8dc7f0dd6c37 /share
parentd00d7d5c39df46759346c0cf3ed0562b2a23f1b3 (diff)
Notes
Diffstat (limited to 'share')
-rw-r--r--share/man/man4/devctl.472
1 files changed, 71 insertions, 1 deletions
diff --git a/share/man/man4/devctl.4 b/share/man/man4/devctl.4
index fa52769f297ed..b2ea80f262660 100644
--- a/share/man/man4/devctl.4
+++ b/share/man/man4/devctl.4
@@ -24,11 +24,81 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 17, 2002
+.Dd February 11, 2003
.Dt DEVCTL 4
.Os
.Sh NAME
.Nm devctl
.Nd Device event reporting and device control interface.
.Sh DESCRIPTION
+The
+.Nm
+device is used to report device events from the kernel.
+Future versions will allow for some device control as well.
+.Sh 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 implementation.
+Maybe we should make this device a clonable device.
+.Pp
+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 interface that we have
+not might more properly be an ioctl interface.
+.Pp
+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 hasn't been
+tested since 3.4 or 2.2.8!
+.Pp
+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 loose
+the rest of the data.
+Listening programs are expected to cope.
+.Pp
+The sysctl and boot parameter hw.bus.devctl_disable is used to disable
+.Nm
+when no devd is running.
+.Sh PROTOCOL
+.Nm
+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.
+.Pp
+.Bl -column -compact "Type" "Description"
+.Em "Type Description"
++ Device node in tree attached
+- Device node in tree detached
+? Unknown device detected
+.El
+.Ss Message formats
+Except for the first character in the record, attach and detach
+messages have the same format.
+.D1 Tdev at parent on location
+.Bl -column -compact "Part" "Description"
+.Em "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
+.El
+.Pp
+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'll get a device
+attached message.
+If it doesn't, then nothing will happen.
+.Pp
+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.
.Sh SEE ALSO
+.Xr devd 8
+