Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/scsi/scsi_enc_ses.c
Show First 20 Lines • Show All 812 Lines • ▼ Show 20 Lines | |||||
* \param callback The callback function to invoke on each generated | * \param callback The callback function to invoke on each generated | ||||
* device id descriptor for elm. | * device id descriptor for elm. | ||||
* \param callback_arg Argument passed through to callback on each invocation. | * \param callback_arg Argument passed through to callback on each invocation. | ||||
*/ | */ | ||||
static void | static void | ||||
ses_devids_iter(enc_softc_t *enc, enc_element_t *elm, | ses_devids_iter(enc_softc_t *enc, enc_element_t *elm, | ||||
ses_devid_callback_t *callback, void *callback_arg) | ses_devid_callback_t *callback, void *callback_arg) | ||||
{ | { | ||||
#define DEVID_SZ (SVPD_DEVICE_ID_DESC_HDR_LEN + \ | |||||
sizeof(struct scsi_vpd_id_naa_ieee_reg)) | |||||
uint8_t devid_buf[DEVID_SZ]; | |||||
#undef DEVID_SZ | |||||
ses_element_t *elmpriv; | ses_element_t *elmpriv; | ||||
struct ses_addl_status *addl; | struct ses_addl_status *addl; | ||||
u_int i; | u_int i; | ||||
size_t devid_record_size; | |||||
elmpriv = elm->elm_private; | elmpriv = elm->elm_private; | ||||
addl = &(elmpriv->addl); | addl = &(elmpriv->addl); | ||||
devid_record_size = SVPD_DEVICE_ID_DESC_HDR_LEN | |||||
+ sizeof(struct scsi_vpd_id_naa_ieee_reg); | |||||
for (i = 0; i < addl->proto_hdr.sas->base_hdr.num_phys; i++) { | for (i = 0; i < addl->proto_hdr.sas->base_hdr.num_phys; i++) { | ||||
uint8_t devid_buf[devid_record_size]; | |||||
struct scsi_vpd_id_descriptor *devid; | struct scsi_vpd_id_descriptor *devid; | ||||
uint8_t *phy_addr; | uint8_t *phy_addr; | ||||
devid = (struct scsi_vpd_id_descriptor *)devid_buf; | devid = (struct scsi_vpd_id_descriptor *)devid_buf; | ||||
phy_addr = addl->proto_data.sasdev_phys[i].phy_addr; | phy_addr = addl->proto_data.sasdev_phys[i].phy_addr; | ||||
devid->proto_codeset = (SCSI_PROTO_SAS << SVPD_ID_PROTO_SHIFT) | devid->proto_codeset = (SCSI_PROTO_SAS << SVPD_ID_PROTO_SHIFT) | ||||
| SVPD_ID_CODESET_BINARY; | | SVPD_ID_CODESET_BINARY; | ||||
devid->id_type = SVPD_ID_PIV | devid->id_type = SVPD_ID_PIV | ||||
▲ Show 20 Lines • Show All 2,218 Lines • Show Last 20 Lines |