1*be43dfe7Sschwarze.\" $OpenBSD: bio_register.9,v 1.6 2015/09/14 12:05:33 schwarze Exp $ 2336d7de1Sdlg.\" 3336d7de1Sdlg.\" Copyright (c) 2006 David Gwynne <dlg@openbsd.org> 4336d7de1Sdlg.\" 5336d7de1Sdlg.\" Permission to use, copy, modify, and distribute this software for any 6336d7de1Sdlg.\" purpose with or without fee is hereby granted, provided that the above 7336d7de1Sdlg.\" copyright notice and this permission notice appear in all copies. 8336d7de1Sdlg.\" 9336d7de1Sdlg.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10336d7de1Sdlg.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11336d7de1Sdlg.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12336d7de1Sdlg.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13336d7de1Sdlg.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14336d7de1Sdlg.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15336d7de1Sdlg.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16336d7de1Sdlg.\" 17*be43dfe7Sschwarze.Dd $Mdocdate: September 14 2015 $ 18336d7de1Sdlg.Dt BIO_REGISTER 9 19336d7de1Sdlg.Os 20336d7de1Sdlg.Sh NAME 21336d7de1Sdlg.Nm bio_register , 22336d7de1Sdlg.Nm bio_unregister 23d608be15Sjmc.Nd block I/O ioctl tunnelling interface 24336d7de1Sdlg.Sh SYNOPSIS 25336d7de1Sdlg.In dev/biovar.h 26336d7de1Sdlg.Ft int 27ce1b2749Sweingart.Fn bio_register "struct device *dev" "int (*bioctl)(struct device *, u_long, caddr_t)" 28*be43dfe7Sschwarze.Ft void 29336d7de1Sdlg.Fn bio_unregister "struct device *dev" 30336d7de1Sdlg.Sh DESCRIPTION 31d608be15SjmcThe block I/O ioctl tunnelling interface is used by drivers to register and 32336d7de1Sdlgunregister ioctl handlers to be accessed via the 33336d7de1Sdlg.Xr bio 4 34336d7de1Sdlgdevice. 35336d7de1Sdlg.Pp 36336d7de1Sdlg.Fn bio_register 37336d7de1Sdlgis called by the driver represented by 38336d7de1Sdlg.Fa dev 39336d7de1Sdlgto register the 40336d7de1Sdlg.Fa bioctl 41336d7de1Sdlgargument as the ioctl handler for itself. 42336d7de1Sdlg.Pp 43336d7de1Sdlg.Fn bio_unregister 44336d7de1Sdlgis called to remove the ioctl handler previously registered with 45336d7de1Sdlg.Fn bio_register 46336d7de1Sdlgfor the device represented by 47336d7de1Sdlg.Fa dev . 48336d7de1Sdlg.Pp 49336d7de1Sdlg.Fn bio_register 50336d7de1Sdlgand 51336d7de1Sdlg.Fn bio_unregister 52336d7de1Sdlgcan be called during 53336d7de1Sdlg.Xr autoconf 9 54336d7de1Sdlgor from process context. 55336d7de1SdlgThe 56336d7de1Sdlg.Fa bioctl 57336d7de1Sdlgcallback is called from process context. 58336d7de1Sdlg.Sh SEE ALSO 59336d7de1Sdlg.Xr bio 4 , 60336d7de1Sdlg.Xr autoconf 9 61336d7de1Sdlg.Sh HISTORY 62d608be15SjmcThe block I/O ioctl tunnelling interface first appeared in 63336d7de1Sdlg.Ox 3.2 . 64336d7de1Sdlg.Sh AUTHORS 65d608be15SjmcThe block I/O ioctl tunnelling interface was written by 66f0641c22Sschwarze.An Niklas Hallqvist Aq Mt niklas@openbsd.org . 67