sata_hba_inst_t
sata_hba_inst_t *sata_hba_inst)
sata_hba_inst_t *sata_hba_inst)
sata_hba_inst_t *sata_hba = SATA_TXLT_HBA_INST(spx);
sata_get_atapi_inquiry_data(sata_hba_inst_t *sata_hba,
sata_test_atapi_packet_command(sata_hba_inst_t *sata_hba_inst, int cport)
sata_hba_inst_t *sata_hba_inst;
sata_probe_ports(sata_hba_inst_t *sata_hba_inst)
sata_probe_pmports(sata_hba_inst_t *sata_hba_inst, uint8_t ncport)
sata_hba_inst_t *sata_hba_inst;
sata_add_device(dev_info_t *pdip, sata_hba_inst_t *sata_hba_inst,
sata_offline_device(sata_hba_inst_t *sata_hba_inst,
sata_create_target_node(dev_info_t *dip, sata_hba_inst_t *sata_hba_inst,
sata_remove_target_node(sata_hba_inst_t *sata_hba_inst,
sata_reprobe_port(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device,
sata_reprobe_pmult(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device,
sata_reprobe_pmport(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device,
sata_alloc_pmult(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device)
sata_free_pmult(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device)
sata_initialize_device(sata_hba_inst_t *sata_hba_inst,
sata_validate_sata_address(sata_hba_inst_t *sata_hba_inst, int cport,
sata_test_atapi_packet_command(sata_hba_inst_t *, int);
sata_validate_scsi_address(sata_hba_inst_t *sata_hba_inst,
sata_probe_device(sata_hba_inst_t *sata_hba_inst, sata_device_t *sata_device)
sata_get_device_info(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst;
sata_identify_device(sata_hba_inst_t *sata_hba_inst,
sata_show_drive_info(sata_hba_inst_t *sata_hba_inst,
sata_show_pmult_info(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst;
sata_fetch_device_identify_data(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst;
sata_set_dma_mode(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo)
sata_set_cache_mode(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo,
sata_set_rmsn(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo,
sata_update_port_info(sata_hba_inst_t *sata_hba_inst,
sata_update_pmport_info(sata_hba_inst_t *sata_hba_inst,
sata_get_port_num(sata_hba_inst_t *sata_hba_inst, struct devctl_iocdata *dcp)
sata_hba_inst_t *sata_hba_inst;
sata_ioctl_disconnect(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_connect(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_unconfigure(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_configure(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_deactivate(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_activate(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_reset_port(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_reset_device(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_reset_all(sata_hba_inst_t *sata_hba_inst)
sata_ioctl_port_self_test(sata_hba_inst_t *sata_hba_inst,
sata_cfgadm_state(sata_hba_inst_t *sata_hba_inst, int32_t port,
sata_ioctl_get_device_path(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_get_ap_type(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_get_model_info(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_get_revfirmware_info(sata_hba_inst_t *sata_hba_inst,
sata_ioctl_get_serialnumber_info(sata_hba_inst_t *sata_hba_inst,
sata_set_drive_features(sata_hba_inst_t *sata_hba_inst,
sata_fetch_smart_return_status(sata_hba_inst_t *sata_hba_inst,
sata_fetch_smart_data(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo,
sata_read_log_ext(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo,
sata_ext_smart_selftest_read_log(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst,
sata_read_log_ext_directory(sata_hba_inst_t *sata_hba_inst,
sata_log(sata_hba_inst_t *sata_hba_inst, uint_t level, char *fmt, ...)
sata_hba_inst_t *sata_hba_inst = NULL;
sata_hba_inst_t *sata_hba_inst;
static void sata_process_controller_events(sata_hba_inst_t *sata_hba_inst);
sata_hba_inst_t *sata_hba_inst;
static void sata_process_pmult_events(sata_hba_inst_t *, uint8_t);
sata_process_controller_events(sata_hba_inst_t *sata_hba_inst)
static void sata_process_device_reset(sata_hba_inst_t *, sata_address_t *);
static void sata_process_pmdevice_reset(sata_hba_inst_t *, sata_address_t *);
sata_process_pmult_events(sata_hba_inst_t *sata_hba_inst, uint8_t cport)
static void sata_process_port_failed_event(sata_hba_inst_t *,
sata_process_cntrl_pwr_level_change(sata_hba_inst_t *sata_hba_inst)
sata_process_port_pwr_change(sata_hba_inst_t *sata_hba_inst,
sata_process_port_failed_event(sata_hba_inst_t *sata_hba_inst,
sata_process_device_reset(sata_hba_inst_t *sata_hba_inst,
static void sata_process_port_link_events(sata_hba_inst_t *,
static void sata_process_pmport_link_events(sata_hba_inst_t *,
sata_process_pmdevice_reset(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst;
static void sata_process_device_detached(sata_hba_inst_t *, sata_address_t *);
sata_process_port_link_events(sata_hba_inst_t *sata_hba_inst,
static void sata_process_pmdevice_detached(sata_hba_inst_t *,
sata_process_pmport_link_events(sata_hba_inst_t *sata_hba_inst,
static void sata_process_device_attached(sata_hba_inst_t *, sata_address_t *);
static void sata_process_pmdevice_attached(sata_hba_inst_t *,
sata_process_device_detached(sata_hba_inst_t *sata_hba_inst,
static void sata_process_port_pwr_change(sata_hba_inst_t *, sata_address_t *);
static void sata_process_cntrl_pwr_level_change(sata_hba_inst_t *);
sata_process_pmdevice_detached(sata_hba_inst_t *sata_hba_inst,
static void sata_process_target_node_cleanup(sata_hba_inst_t *,
sata_process_device_attached(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *sata_hba_inst = NULL;
static void sata_process_device_autoonline(sata_hba_inst_t *,
sata_process_pmdevice_attached(sata_hba_inst_t *sata_hba_inst,
sata_process_target_node_cleanup(sata_hba_inst_t *sata_hba_inst,
sata_process_device_autoonline(sata_hba_inst_t *sata_hba_inst,
sata_gen_sysevent(sata_hba_inst_t *sata_hba_inst, sata_address_t *saddr,
sata_set_target_node_cleanup(sata_hba_inst_t *sata_hba_inst,
sata_trace_log(sata_hba_inst_t *sata_hba_inst, uint_t level __unused,
sata_hba_inst_t *sata_hba_inst;
sata_hba_inst = (sata_hba_inst_t *)(hba_tran->tran_hba_private);
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(sd->sd_address.a_hba_tran->tran_hba_private);
sata_hba_inst_t *sata_hba_inst;
sata_hba_inst = (sata_hba_inst_t *)(hba_tran->tran_hba_private);
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static int32_t sata_get_port_num(sata_hba_inst_t *, struct devctl_iocdata *);
static void sata_cfgadm_state(sata_hba_inst_t *, int32_t,
static int sata_ioctl_connect(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_disconnect(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_configure(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_unconfigure(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_activate(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_deactivate(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_reset_port(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_reset_device(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_reset_all(sata_hba_inst_t *);
static int sata_ioctl_port_self_test(sata_hba_inst_t *, sata_device_t *);
static int sata_ioctl_get_device_path(sata_hba_inst_t *, sata_device_t *,
static int sata_ioctl_get_ap_type(sata_hba_inst_t *, sata_device_t *,
static int sata_ioctl_get_model_info(sata_hba_inst_t *, sata_device_t *,
static int sata_ioctl_get_revfirmware_info(sata_hba_inst_t *, sata_device_t *,
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static int sata_ioctl_get_serialnumber_info(sata_hba_inst_t *,
static void sata_probe_ports(sata_hba_inst_t *);
static void sata_probe_pmports(sata_hba_inst_t *, uint8_t);
static int sata_reprobe_port(sata_hba_inst_t *, sata_device_t *, int);
static int sata_reprobe_pmult(sata_hba_inst_t *, sata_device_t *, int);
static int sata_reprobe_pmport(sata_hba_inst_t *, sata_device_t *, int);
static int sata_alloc_pmult(sata_hba_inst_t *, sata_device_t *);
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static void sata_free_pmult(sata_hba_inst_t *, sata_device_t *);
static int sata_add_device(dev_info_t *, sata_hba_inst_t *, sata_device_t *);
static int sata_offline_device(sata_hba_inst_t *, sata_device_t *,
static dev_info_t *sata_create_target_node(dev_info_t *, sata_hba_inst_t *,
static void sata_remove_target_node(sata_hba_inst_t *,
static int sata_validate_scsi_address(sata_hba_inst_t *,
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static int sata_validate_sata_address(sata_hba_inst_t *, int, int, int);
static int sata_probe_device(sata_hba_inst_t *, sata_device_t *);
static sata_drive_info_t *sata_get_device_info(sata_hba_inst_t *,
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static int sata_identify_device(sata_hba_inst_t *, sata_drive_info_t *);
static int sata_fetch_device_identify_data(sata_hba_inst_t *,
static void sata_update_port_info(sata_hba_inst_t *, sata_device_t *);
sata_hba_inst_t *sata_hba_inst =
(sata_hba_inst_t *)(ap->a_hba_tran->tran_hba_private);
static void sata_update_pmport_info(sata_hba_inst_t *, sata_device_t *);
static int sata_set_dma_mode(sata_hba_inst_t *, sata_drive_info_t *);
static int sata_set_cache_mode(sata_hba_inst_t *, sata_drive_info_t *, int);
static int sata_set_rmsn(sata_hba_inst_t *, sata_drive_info_t *, int);
static int sata_set_drive_features(sata_hba_inst_t *,
static int sata_initialize_device(sata_hba_inst_t *, sata_drive_info_t *);
static void sata_identdev_to_inquiry(sata_hba_inst_t *, sata_drive_info_t *,
static int sata_get_atapi_inquiry_data(sata_hba_inst_t *, sata_address_t *,
sata_hba_inst_t *);
sata_hba_inst_t *);
sata_hba_inst_t *);
sata_hba_inst_t *);
sata_hba_inst_t *);
sata_identdev_to_inquiry(sata_hba_inst_t *sata_hba_inst,
sata_hba_inst_t *);
sata_hba_inst_t *);
static void sata_show_drive_info(sata_hba_inst_t *, sata_drive_info_t *);
sata_hba_inst_t *shi = SATA_TXLT_HBA_INST(spx);
static void sata_show_pmult_info(sata_hba_inst_t *, sata_device_t *);
static void sata_log(sata_hba_inst_t *, uint_t, char *fmt, ...);
static void sata_trace_log(sata_hba_inst_t *, uint_t, const char *fmt, ...);
static int sata_fetch_smart_return_status(sata_hba_inst_t *,
static int sata_fetch_smart_data(sata_hba_inst_t *, sata_drive_info_t *,
static int sata_smart_selftest_log(sata_hba_inst_t *,
static int sata_ext_smart_selftest_read_log(sata_hba_inst_t *,
static int sata_read_log_ext(sata_hba_inst_t *, sata_drive_info_t *, uint8_t,
static int sata_smart_read_log(sata_hba_inst_t *, sata_drive_info_t *,
static int sata_read_log_ext_directory(sata_hba_inst_t *, sata_drive_info_t *,
static void sata_gen_sysevent(sata_hba_inst_t *, sata_address_t *, int);
static void sata_set_target_node_cleanup(sata_hba_inst_t *, sata_address_t *);
static sata_hba_inst_t *sata_hba_list = NULL;
static sata_hba_inst_t *sata_hba_list_tail = NULL;
sata_hba_inst_t *shi = SATA_TXLT_HBA_INST(spx);
sata_hba_inst_t *shi = SATA_TXLT_HBA_INST(spx);
sata_hba_inst_t *sata_hba_inst = spx->txlt_sata_hba_inst;
sata_hba_inst_t *sata_hba_inst = spx->txlt_sata_hba_inst;
sata_hba_inst_t *sata_hba_inst;
sata_hba_inst_t *sata_hba_inst)
sata_hba_inst_t *sata_hba_inst)
sata_sct_temp(sata_hba_inst_t *sata_hba_inst, sata_drive_info_t *sdinfo,
sata_hba_inst_t *sata_hba_inst)
sata_hba_inst_t *sata_hba_inst)
sata_hba_inst_t *sata_hba_inst)