PERFORCE change 160385 for review
Scott Long
scottl at FreeBSD.org
Wed Apr 8 10:33:36 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=160385
Change 160385 by scottl at scottl-deimos on 2009/04/08 17:32:48
Change scsi xpt function names as needed. Add quirk accessor macros
Affected files ...
.. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#10 edit
Differences ...
==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#10 (text+ko) ====
@@ -78,6 +78,7 @@
u_int mintags;
u_int maxtags;
};
+#define SCSI_QUIRK(dev) ((struct scsi_quirk_entry *)((dev)->quirk))
static int cam_srch_hi = 0;
TUNABLE_INT("kern.cam.cam_srch_hi", &cam_srch_hi);
@@ -94,14 +95,14 @@
* or we're > SCSI-2 and the last lun was a success,
* we can look for luns above lun 8.
*/
-#define CAN_SRCH_HI_SPARSE(dv) \
- (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \
- && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \
+#define CAN_SRCH_HI_SPARSE(dv) \
+ (((SCSI_QUIRK(dv)->quirks & CAM_QUIRK_NOHILUNS) == 0) \
+ && ((SCSI_QUIRK(dv)->quirks & CAM_QUIRK_HILUNS) \
|| (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2 && cam_srch_hi)))
-#define CAN_SRCH_HI_DENSE(dv) \
- (((dv->quirk->quirks & CAM_QUIRK_NOHILUNS) == 0) \
- && ((dv->quirk->quirks & CAM_QUIRK_HILUNS) \
+#define CAN_SRCH_HI_DENSE(dv) \
+ (((SCSI_QUIRK(dv)->quirks & CAM_QUIRK_NOHILUNS) == 0) \
+ && ((SCSI_QUIRK(dv)->quirks & CAM_QUIRK_HILUNS) \
|| (SID_ANSI_REV(&dv->inq_data) > SCSI_REV_2)))
static periph_init_t probe_periph_init;
@@ -530,25 +531,25 @@
struct cam_ed *device);
static void probedone(struct cam_periph *periph, union ccb *done_ccb);
static void probecleanup(struct cam_periph *periph);
-static void xpt_find_quirk(struct cam_ed *device);
-static void xpt_scan_bus(struct cam_periph *periph, union ccb *ccb);
-static void xpt_scan_lun(struct cam_periph *periph,
- struct cam_path *path, cam_flags flags,
- union ccb *ccb);
+static void scsi_find_quirk(struct cam_ed *device);
+static void scsi_scan_bus(struct cam_periph *periph, union ccb *ccb);
+static void scsi_scan_lun(struct cam_periph *periph,
+ struct cam_path *path, cam_flags flags,
+ union ccb *ccb);
static void xptscandone(struct cam_periph *periph, union ccb *done_ccb);
static struct cam_ed *
scsi_alloc_device(struct cam_eb *bus, struct cam_et *target,
lun_id_t lun_id);
static void scsi_devise_transport(struct cam_path *path);
-static void xpt_set_transfer_settings(struct ccb_trans_settings *cts,
- struct cam_ed *device,
- int async_update);
-static void xpt_toggle_tags(struct cam_path *path);
-static void xpt_dev_async(u_int32_t async_code,
- struct cam_eb *bus,
- struct cam_et *target,
- struct cam_ed *device,
- void *async_arg);
+static void scsi_set_transfer_settings(struct ccb_trans_settings *cts,
+ struct cam_ed *device,
+ int async_update);
+static void scsi_toggle_tags(struct cam_path *path);
+static void scsi_dev_async(u_int32_t async_code,
+ struct cam_eb *bus,
+ struct cam_et *target,
+ struct cam_ed *device,
+ void *async_arg);
static void
probe_periph_init()
@@ -789,7 +790,7 @@
struct cam_ed *device;
device = periph->path->device;
- if ((device->quirk->quirks & CAM_QUIRK_NOSERIAL) == 0) {
+ if ((SCSI_QUIRK(device)->quirks & CAM_QUIRK_NOSERIAL) == 0) {
vpd_list = malloc(sizeof(*vpd_list), M_CAMXPT,
M_NOWAIT | M_ZERO);
}
@@ -1050,9 +1051,9 @@
return;
}
- xpt_find_quirk(path->device);
+ scsi_find_quirk(path->device);
- xpt_devise_transport(path);
+ scsi_devise_transport(path);
if (INQ_DATA_TQ_ENABLED(inq_buf))
PROBE_SET_ACTION(softc, PROBE_MODE_SENSE);
else
@@ -1406,20 +1407,21 @@
}
static void
-xpt_find_quirk(struct cam_ed *device)
+scsi_find_quirk(struct cam_ed *device)
{
struct scsi_quirk_entry *quirk;
caddr_t match;
match = cam_quirkmatch((caddr_t)&device->inq_data,
(caddr_t)scsi_quirk_table,
- sizeof(scsi_quirk_table)/sizeof(*scsi__quirk_table),
+ sizeof(scsi_quirk_table) /
+ sizeof(*scsi_quirk_table),
sizeof(*scsi_quirk_table), scsi_inquiry_match);
if (match == NULL)
panic("xpt_find_quirk: device didn't match wildcard entry!!");
- quirk = (strut scsi_quirk_entry *)match;
+ quirk = (struct scsi_quirk_entry *)match;
device->quirk = quirk;
device->mintags = quirk->mintags;
device->maxtags = quirk->maxtags;
@@ -1446,7 +1448,7 @@
union ccb *request_ccb;
struct ccb_pathinq *cpi;
int counter;
-} xpt_scan_bus_info;
+} scsi_scan_bus_info;
/*
* To start a scan, request_ccb is an XPT_SCAN_BUS ccb.
@@ -1454,14 +1456,14 @@
* callback on completion function.
*/
static void
-xpt_scan_bus(struct cam_periph *periph, union ccb *request_ccb)
+scsi_scan_bus(struct cam_periph *periph, union ccb *request_ccb)
{
CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE,
("xpt_scan_bus\n"));
switch (request_ccb->ccb_h.func_code) {
case XPT_SCAN_BUS:
{
- xpt_scan_bus_info *scan_info;
+ scsi_scan_bus_info *scan_info;
union ccb *work_ccb;
struct cam_path *path;
u_int i;
@@ -1498,8 +1500,8 @@
}
/* Save some state for use while we probe for devices */
- scan_info = (xpt_scan_bus_info *)
- malloc(sizeof(xpt_scan_bus_info), M_CAMXPT, M_NOWAIT);
+ scan_info = (scsi_scan_bus_info *)
+ malloc(sizeof(scsi_scan_bus_info), M_CAMXPT, M_NOWAIT);
if (scan_info == NULL) {
request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
xpt_done(request_ccb);
@@ -1555,7 +1557,7 @@
xpt_setup_ccb(&work_ccb->ccb_h, path,
request_ccb->ccb_h.pinfo.priority);
work_ccb->ccb_h.func_code = XPT_SCAN_LUN;
- work_ccb->ccb_h.cbfcnp = xpt_scan_bus;
+ work_ccb->ccb_h.cbfcnp = scsi_scan_bus;
work_ccb->ccb_h.ppriv_ptr0 = scan_info;
work_ccb->crcn.flags = request_ccb->crcn.flags;
xpt_action(work_ccb);
@@ -1566,13 +1568,13 @@
{
cam_status status;
struct cam_path *path;
- xpt_scan_bus_info *scan_info;
+ scsi_scan_bus_info *scan_info;
path_id_t path_id;
target_id_t target_id;
lun_id_t lun_id;
/* Reuse the same CCB to query if a device was really found */
- scan_info = (xpt_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0;
+ scan_info = (scsi_scan_bus_info *)request_ccb->ccb_h.ppriv_ptr0;
xpt_setup_ccb(&request_ccb->ccb_h, request_ccb->ccb_h.path,
request_ccb->ccb_h.pinfo.priority);
request_ccb->ccb_h.func_code = XPT_GDEV_TYPE;
@@ -1617,7 +1619,8 @@
device = request_ccb->ccb_h.path->device;
- if ((device->quirk->quirks & CAM_QUIRK_NOLUNS) == 0) {
+ if ((SCSI_QUIRK(device)->quirks &
+ CAM_QUIRK_NOLUNS) == 0) {
/* Try the next lun */
if (lun_id < (CAM_SCSI2_MAXLUN-1)
|| CAN_SRCH_HI_DENSE(device))
@@ -1686,7 +1689,7 @@
xpt_setup_ccb(&request_ccb->ccb_h, path,
request_ccb->ccb_h.pinfo.priority);
request_ccb->ccb_h.func_code = XPT_SCAN_LUN;
- request_ccb->ccb_h.cbfcnp = xpt_scan_bus;
+ request_ccb->ccb_h.cbfcnp = scsi_scan_bus;
request_ccb->ccb_h.ppriv_ptr0 = scan_info;
request_ccb->crcn.flags =
scan_info->request_ccb->crcn.flags;
@@ -1702,7 +1705,7 @@
xpt_setup_ccb(&request_ccb->ccb_h, path,
request_ccb->ccb_h.pinfo.priority);
request_ccb->ccb_h.func_code = XPT_SCAN_LUN;
- request_ccb->ccb_h.cbfcnp = xpt_scan_bus;
+ request_ccb->ccb_h.cbfcnp = scsi_scan_bus;
request_ccb->ccb_h.ppriv_ptr0 = scan_info;
request_ccb->crcn.flags =
scan_info->request_ccb->crcn.flags;
@@ -1716,7 +1719,7 @@
}
static void
-xpt_scan_lun(struct cam_periph *periph, struct cam_path *path,
+scsi_scan_lun(struct cam_periph *periph, struct cam_path *path,
cam_flags flags, union ccb *request_ccb)
{
struct ccb_pathinq cpi;
@@ -2010,18 +2013,18 @@
}
case XPT_SET_TRAN_SETTINGS:
{
- xpt_set_transfer_settings(&start_ccb->cts,
- start_ccb->ccb_h.path->device,
- /*async_update*/FALSE);
+ scsi_set_transfer_settings(&start_ccb->cts,
+ start_ccb->ccb_h.path->device,
+ /*async_update*/FALSE);
break;
}
case XPT_SCAN_BUS:
- xpt_scan_bus(start_ccb->ccb_h.path->periph, start_ccb);
+ scsi_scan_bus(start_ccb->ccb_h.path->periph, start_ccb);
break;
case XPT_SCAN_LUN:
- xpt_scan_lun(start_ccb->ccb_h.path->periph,
- start_ccb->ccb_h.path, start_ccb->crcn.flags,
- start_ccb);
+ scsi_scan_lun(start_ccb->ccb_h.path->periph,
+ start_ccb->ccb_h.path, start_ccb->crcn.flags,
+ start_ccb);
break;
case XPT_GET_TRAN_SETTINGS:
{
@@ -2038,8 +2041,8 @@
}
static void
-xpt_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device,
- int async_update)
+scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device,
+ int async_update)
{
struct ccb_pathinq cpi;
struct ccb_trans_settings cur_cts;
@@ -2261,7 +2264,7 @@
&& (spi->flags & (CTS_SPI_VALID_SYNC_RATE|
CTS_SPI_VALID_SYNC_OFFSET|
CTS_SPI_VALID_BUS_WIDTH)) != 0)
- xpt_toggle_tags(cts->ccb_h.path);
+ scsi_toggle_tags(cts->ccb_h.path);
}
if (cts->type == CTS_TYPE_CURRENT_SETTINGS
@@ -2324,7 +2327,7 @@
}
static void
-xpt_toggle_tags(struct cam_path *path)
+scsi_toggle_tags(struct cam_path *path)
{
struct cam_ed *dev;
@@ -2348,10 +2351,10 @@
cts.transport_version = XPORT_VERSION_UNSPECIFIED;
cts.proto_specific.scsi.flags = 0;
cts.proto_specific.scsi.valid = CTS_SCSI_VALID_TQ;
- xpt_set_transfer_settings(&cts, path->device,
+ scsi_set_transfer_settings(&cts, path->device,
/*async_update*/TRUE);
cts.proto_specific.scsi.flags = CTS_SCSI_FLAGS_TAG_ENB;
- xpt_set_transfer_settings(&cts, path->device,
+ scsi_set_transfer_settings(&cts, path->device,
/*async_update*/TRUE);
}
}
@@ -2360,7 +2363,7 @@
* Handle any per-device event notifications that require action by the XPT.
*/
static void
-xpt_dev_async(u_int32_t async_code, struct cam_eb *bus, struct cam_et *target,
+scsi_dev_async(u_int32_t async_code, struct cam_eb *bus, struct cam_et *target,
struct cam_ed *device, void *async_arg)
{
cam_status status;
@@ -2395,7 +2398,7 @@
*/
if (async_code == AC_SENT_BDR
|| async_code == AC_BUS_RESET)
- xpt_toggle_tags(&newpath);
+ scsi_toggle_tags(&newpath);
if (async_code == AC_INQ_CHANGED) {
/*
@@ -2405,7 +2408,7 @@
* change. So we re-scan the device to
* refresh the inquiry data for it.
*/
- xpt_scan_lun(newpath.periph, &newpath,
+ scsi_scan_lun(newpath.periph, &newpath,
CAM_EXPECT_INQ_CHANGE, NULL);
}
xpt_release_path(&newpath);
@@ -2415,7 +2418,7 @@
struct ccb_trans_settings *settings;
settings = (struct ccb_trans_settings *)async_arg;
- xpt_set_transfer_settings(settings, device,
+ scsi_set_transfer_settings(settings, device,
/*async_update*/TRUE);
}
}
More information about the p4-projects
mailing list