vtscsi_softc
static int vtscsi_sg_append_scsi_buf(struct vtscsi_softc *,
static int vtscsi_fill_scsi_cmd_sglist(struct vtscsi_softc *,
vtscsi_sg_append_scsi_buf(struct vtscsi_softc *sc, struct sglist *sg,
static int vtscsi_execute_scsi_cmd(struct vtscsi_softc *,
static int vtscsi_start_scsi_cmd(struct vtscsi_softc *, union ccb *);
vtscsi_fill_scsi_cmd_sglist(struct vtscsi_softc *sc, struct vtscsi_request *req,
static void vtscsi_complete_abort_timedout_scsi_cmd(struct vtscsi_softc *,
static int vtscsi_abort_timedout_scsi_cmd(struct vtscsi_softc *,
vtscsi_execute_scsi_cmd(struct vtscsi_softc *sc, struct vtscsi_request *req)
static cam_status vtscsi_complete_scsi_cmd_response(struct vtscsi_softc *,
static void vtscsi_complete_scsi_cmd(struct vtscsi_softc *,
vtscsi_start_scsi_cmd(struct vtscsi_softc *sc, union ccb *ccb)
static void vtscsi_poll_ctrl_req(struct vtscsi_softc *,
vtscsi_complete_abort_timedout_scsi_cmd(struct vtscsi_softc *sc,
static int vtscsi_execute_ctrl_req(struct vtscsi_softc *,
static void vtscsi_complete_abort_task_cmd(struct vtscsi_softc *c,
vtscsi_abort_timedout_scsi_cmd(struct vtscsi_softc *sc,
static int vtscsi_execute_abort_task_cmd(struct vtscsi_softc *,
static int vtscsi_execute_reset_dev_cmd(struct vtscsi_softc *,
struct vtscsi_softc *sc;
static void vtscsi_freeze_simq(struct vtscsi_softc *, int);
static int vtscsi_thaw_simq(struct vtscsi_softc *, int);
vtscsi_complete_scsi_cmd_response(struct vtscsi_softc *sc,
static void vtscsi_announce(struct vtscsi_softc *, uint32_t, target_id_t,
vtscsi_complete_scsi_cmd(struct vtscsi_softc *sc, struct vtscsi_request *req)
static void vtscsi_execute_rescan(struct vtscsi_softc *, target_id_t,
vtscsi_poll_ctrl_req(struct vtscsi_softc *sc, struct vtscsi_request *req)
static void vtscsi_execute_rescan_bus(struct vtscsi_softc *);
vtscsi_execute_ctrl_req(struct vtscsi_softc *sc, struct vtscsi_request *req,
static void vtscsi_handle_event(struct vtscsi_softc *,
vtscsi_complete_abort_task_cmd(struct vtscsi_softc *sc,
static int vtscsi_enqueue_event_buf(struct vtscsi_softc *,
static int vtscsi_init_event_vq(struct vtscsi_softc *);
vtscsi_execute_abort_task_cmd(struct vtscsi_softc *sc,
static void vtscsi_reinit_event_vq(struct vtscsi_softc *);
static void vtscsi_drain_event_vq(struct vtscsi_softc *);
static void vtscsi_complete_vqs_locked(struct vtscsi_softc *);
static void vtscsi_complete_vqs(struct vtscsi_softc *);
static void vtscsi_drain_vqs(struct vtscsi_softc *);
vtscsi_complete_reset_dev_cmd(struct vtscsi_softc *sc,
static void vtscsi_cancel_request(struct vtscsi_softc *,
static void vtscsi_drain_vq(struct vtscsi_softc *, struct virtqueue *);
vtscsi_execute_reset_dev_cmd(struct vtscsi_softc *sc,
static void vtscsi_stop(struct vtscsi_softc *);
static int vtscsi_reset_bus(struct vtscsi_softc *);
static void vtscsi_init_request(struct vtscsi_softc *,
static int vtscsi_alloc_requests(struct vtscsi_softc *);
static void vtscsi_free_requests(struct vtscsi_softc *);
static void vtscsi_enqueue_request(struct vtscsi_softc *,
static struct vtscsi_request * vtscsi_dequeue_request(struct vtscsi_softc *);
vtscsi_freeze_simq(struct vtscsi_softc *sc, int reason)
vtscsi_thaw_simq(struct vtscsi_softc *sc, int reason)
static void vtscsi_complete_vq(struct vtscsi_softc *, struct virtqueue *);
vtscsi_announce(struct vtscsi_softc *sc, uint32_t ac_code,
vtscsi_execute_rescan(struct vtscsi_softc *sc, target_id_t target_id,
static void vtscsi_disable_vqs_intr(struct vtscsi_softc *);
static void vtscsi_enable_vqs_intr(struct vtscsi_softc *);
vtscsi_execute_rescan_bus(struct vtscsi_softc *sc)
static void vtscsi_get_tunables(struct vtscsi_softc *);
static void vtscsi_add_sysctl(struct vtscsi_softc *);
vtscsi_transport_reset_event(struct vtscsi_softc *sc,
vtscsi_handle_event(struct vtscsi_softc *sc, struct virtio_scsi_event *event)
vtscsi_enqueue_event_buf(struct vtscsi_softc *sc,
vtscsi_init_event_vq(struct vtscsi_softc *sc)
vtscsi_reinit_event_vq(struct vtscsi_softc *sc)
vtscsi_drain_event_vq(struct vtscsi_softc *sc)
vtscsi_complete_vqs_locked(struct vtscsi_softc *sc)
vtscsi_complete_vqs(struct vtscsi_softc *sc)
vtscsi_cancel_request(struct vtscsi_softc *sc, struct vtscsi_request *req)
vtscsi_drain_vq(struct vtscsi_softc *sc, struct virtqueue *vq)
vtscsi_drain_vqs(struct vtscsi_softc *sc)
vtscsi_stop(struct vtscsi_softc *sc)
vtscsi_reset_bus(struct vtscsi_softc *sc)
vtscsi_init_request(struct vtscsi_softc *sc, struct vtscsi_request *req)
vtscsi_alloc_requests(struct vtscsi_softc *sc)
vtscsi_free_requests(struct vtscsi_softc *sc)
vtscsi_enqueue_request(struct vtscsi_softc *sc, struct vtscsi_request *req)
sizeof(struct vtscsi_softc)
vtscsi_dequeue_request(struct vtscsi_softc *sc)
vtscsi_complete_vq(struct vtscsi_softc *sc, struct virtqueue *vq)
struct vtscsi_softc *sc;
struct vtscsi_softc *sc;
struct vtscsi_softc *sc;
vtscsi_disable_vqs_intr(struct vtscsi_softc *sc)
vtscsi_enable_vqs_intr(struct vtscsi_softc *sc)
vtscsi_get_tunables(struct vtscsi_softc *sc)
vtscsi_add_sysctl(struct vtscsi_softc *sc)
struct vtscsi_softc *sc;
struct vtscsi_softc *sc;
struct vtscsi_softc *sc;
vtscsi_negotiate_features(struct vtscsi_softc *sc)
vtscsi_read_config(struct vtscsi_softc *sc,
vtscsi_maximum_segments(struct vtscsi_softc *sc, int seg_max)
vtscsi_alloc_intrs(struct vtscsi_softc *sc)
vtscsi_alloc_virtqueues(struct vtscsi_softc *sc)
vtscsi_write_device_config(struct vtscsi_softc *sc)
vtscsi_reinit(struct vtscsi_softc *sc)
vtscsi_alloc_cam(struct vtscsi_softc *sc)
vtscsi_register_cam(struct vtscsi_softc *sc)
vtscsi_free_cam(struct vtscsi_softc *sc)
struct vtscsi_softc *sc;
vtscsi_register_async(struct vtscsi_softc *sc)
static void vtscsi_negotiate_features(struct vtscsi_softc *);
static void vtscsi_read_config(struct vtscsi_softc *,
vtscsi_deregister_async(struct vtscsi_softc *sc)
static int vtscsi_maximum_segments(struct vtscsi_softc *, int);
struct vtscsi_softc *sc;
static int vtscsi_alloc_intrs(struct vtscsi_softc *);
static int vtscsi_alloc_virtqueues(struct vtscsi_softc *);
static void vtscsi_write_device_config(struct vtscsi_softc *);
static int vtscsi_reinit(struct vtscsi_softc *);
static int vtscsi_alloc_cam(struct vtscsi_softc *);
static int vtscsi_register_cam(struct vtscsi_softc *);
struct vtscsi_softc *sc;
static void vtscsi_free_cam(struct vtscsi_softc *);
vtscsi_cam_scsi_io(struct vtscsi_softc *sc, struct cam_sim *sim,
static int vtscsi_register_async(struct vtscsi_softc *);
static void vtscsi_deregister_async(struct vtscsi_softc *);
vtscsi_cam_get_tran_settings(struct vtscsi_softc *sc, union ccb *ccb)
vtscsi_cam_reset_bus(struct vtscsi_softc *sc, union ccb *ccb)
static void vtscsi_cam_scsi_io(struct vtscsi_softc *, struct cam_sim *,
vtscsi_cam_reset_dev(struct vtscsi_softc *sc, union ccb *ccb)
static void vtscsi_cam_get_tran_settings(struct vtscsi_softc *,
static void vtscsi_cam_reset_bus(struct vtscsi_softc *, union ccb *);
vtscsi_cam_abort(struct vtscsi_softc *sc, union ccb *ccb)
static void vtscsi_cam_reset_dev(struct vtscsi_softc *, union ccb *);
static void vtscsi_cam_abort(struct vtscsi_softc *, union ccb *);
static void vtscsi_cam_path_inquiry(struct vtscsi_softc *,
vtscsi_cam_path_inquiry(struct vtscsi_softc *sc, struct cam_sim *sim,
struct vtscsi_softc *__sc = (_req)->vsr_softc; \
struct vtscsi_softc;
typedef void vtscsi_request_cb_t(struct vtscsi_softc *,
struct vtscsi_softc *vsr_softc;