Changeset View
Changeset View
Standalone View
Standalone View
share/man/man4/pass.4
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | |||||
.It CAMIOCOMMAND union ccb * | .It CAMIOCOMMAND union ccb * | ||||
This ioctl takes most kinds of CAM CCBs and passes them through to the CAM | This ioctl takes most kinds of CAM CCBs and passes them through to the CAM | ||||
transport layer for action. | transport layer for action. | ||||
Note that some CCB types are not allowed | Note that some CCB types are not allowed | ||||
through the passthrough device, and must be sent through the | through the passthrough device, and must be sent through the | ||||
.Xr xpt 4 | .Xr xpt 4 | ||||
device instead. | device instead. | ||||
Some examples of xpt-only CCBs are XPT_SCAN_BUS, | Some examples of xpt-only CCBs are XPT_SCAN_BUS, | ||||
XPT_DEV_MATCH, XPT_RESET_BUS, XPT_SCAN_LUN, XPT_ENG_INQ, and XPT_ENG_EXEC. | XPT_DEV_MATCH, XPT_RESET_BUS, XPT_SCAN_LUN. | ||||
These CCB types have various attributes that make it illogical or | These CCB types have various attributes that make it illogical or | ||||
impossible to service them through the passthrough interface. | impossible to service them through the passthrough interface. | ||||
.Pp | .Pp | ||||
If the user would like the kernel to do error recovery, the | If the user would like the kernel to do error recovery, the | ||||
.Dv CAM_PASS_ERR_RECOVER | .Dv CAM_PASS_ERR_RECOVER | ||||
flag must be set on the CCB, and the retry_count field set to the number | flag must be set on the CCB, and the retry_count field set to the number | ||||
of retries. | of retries. | ||||
.It CAMGETPASSTHRU union ccb * | .It CAMGETPASSTHRU union ccb * | ||||
Show All 18 Lines | |||||
.Xr kevent 2 | .Xr kevent 2 | ||||
to receive notification when the CCB has completed. | to receive notification when the CCB has completed. | ||||
.Pp | .Pp | ||||
This ioctl takes most CAM CCBs, but some CCB types are not allowed through | This ioctl takes most CAM CCBs, but some CCB types are not allowed through | ||||
the pass device, and must be sent through the | the pass device, and must be sent through the | ||||
.Xr xpt 4 | .Xr xpt 4 | ||||
device instead. | device instead. | ||||
Some examples of xpt-only CCBs are XPT_SCAN_BUS, | Some examples of xpt-only CCBs are XPT_SCAN_BUS, | ||||
XPT_DEV_MATCH, XPT_RESET_BUS, XPT_SCAN_LUN, XPT_ENG_INQ, and XPT_ENG_EXEC. | XPT_DEV_MATCH, XPT_RESET_BUS, XPT_SCAN_LUN. | ||||
These CCB types have various attributes that make it illogical or | These CCB types have various attributes that make it illogical or | ||||
impossible to service them through the passthrough interface. | impossible to service them through the passthrough interface. | ||||
.Pp | .Pp | ||||
Although the | Although the | ||||
.Dv CAMIOQUEUE | .Dv CAMIOQUEUE | ||||
ioctl is not defined to take an argument, it does require a | ioctl is not defined to take an argument, it does require a | ||||
pointer to a union ccb. | pointer to a union ccb. | ||||
It is not defined to take an argument to avoid an extra malloc and copy | It is not defined to take an argument to avoid an extra malloc and copy | ||||
▲ Show 20 Lines • Show All 114 Lines • Show Last 20 Lines |