Index: share/man/man9/scsipi.9 =================================================================== RCS file: /cvsroot/src/share/man/man9/scsipi.9,v retrieving revision 1.28 diff -u -r1.28 scsipi.9 --- share/man/man9/scsipi.9 29 Jul 2016 19:27:45 -0000 1.28 +++ share/man/man9/scsipi.9 20 Nov 2016 10:09:44 -0000 @@ -55,6 +55,10 @@ .Fn scsipi_target_detach "struct scsipi_channel *chan" "int target" "int lun" "int flags" .Ft int .Fn scsipi_thread_call_callback "struct scsipi_channel *chan" "void (*callback)(struct scsipi_channel *, void *)" "void *arg" +.Ft int +.Fn scsipi_adapter_addref "struct scsipi_adapter *adapt" +.Ft void +.Fn scsipi_adapter_delref "struct scsipi_adapter *adapt" .Sh DESCRIPTION The .Nm @@ -108,6 +112,14 @@ see below) .It Va int adapt_max_periph number of commands the adapter can handle per device +.It Va int adapt_flags +adapter properties +.Bl -tag -width SCSIPI_ADAPT_POLL_ONLY -compact +.It Dv SCSIPI_ADAPT_POLL_ONLY +the HBA can't do interrupts +.It Dv SCSIPI_ADAPT_MPSAFE +don't acquire the kernel lock when doing HBA callbacks +.El .El .Pp The following callbacks should be provided through the @@ -402,6 +414,11 @@ This callback is optional, and is useful mostly for hot-plug devices. For example, this callback would power on or off the relevant PCMCIA socket for a PCMCIA controller. +.Fn scsipi_adapter_addref +and +.Fn scsipi_adapter_delref +maintain a reference count, the enable callback is called appropriately +for the first reference and the last reference. .It int Fn adapt_getgeom "struct scsipi_periph *periph" "struct disk_parms *params" "u_long sectors" Optional callback, used by high-level drivers to get the fictitious geometry used by the controller's firmware for the specified periph. @@ -565,7 +582,7 @@ and .Fa arg as arguments, from the channel completion thread. -The callback is run at splbio. +The callback is run at IPL_BIO with the channel lock held. .Fn scsipi_thread_call_callback will freeze the channel by one, it's up to the caller to thaw it when appropriate.