pvscsi_softc
static inline struct pvscsi_hcb* pvscsi_context_to_hcb(struct pvscsi_softc *sc,
static struct pvscsi_hcb * pvscsi_hcb_get(struct pvscsi_softc *sc);
static void pvscsi_hcb_put(struct pvscsi_softc *sc, struct pvscsi_hcb *hcb);
pvscsi_process_cmp_ring(struct pvscsi_softc *sc)
pvscsi_process_msg(struct pvscsi_softc *sc, struct pvscsi_ring_msg_desc *e)
static void pvscsi_dma_free(struct pvscsi_softc *sc, struct pvscsi_dma *dma);
static int pvscsi_dma_alloc(struct pvscsi_softc *sc, struct pvscsi_dma *dma,
pvscsi_process_msg_ring(struct pvscsi_softc *sc)
static int pvscsi_dma_alloc_ppns(struct pvscsi_softc *sc,
pvscsi_intr_locked(struct pvscsi_softc *sc)
static void pvscsi_dma_free_per_hcb(struct pvscsi_softc *sc,
struct pvscsi_softc *sc;
static int pvscsi_dma_alloc_per_hcb(struct pvscsi_softc *sc);
static void pvscsi_free_rings(struct pvscsi_softc *sc);
struct pvscsi_softc *sc;
static int pvscsi_allocate_rings(struct pvscsi_softc *sc);
struct pvscsi_softc *sc;
static void pvscsi_free_interrupts(struct pvscsi_softc *sc);
static int pvscsi_setup_interrupts(struct pvscsi_softc *sc);
static void pvscsi_free_all(struct pvscsi_softc *sc);
static int pvscsi_get_tunable(struct pvscsi_softc *sc, char *name, int value);
struct pvscsi_softc *sc;
pvscsi_free_interrupts(struct pvscsi_softc *sc)
pvscsi_setup_interrupts(struct pvscsi_softc *sc)
pvscsi_free_all(struct pvscsi_softc *sc)
struct pvscsi_softc *sc;
struct pvscsi_softc *sc;
"pvscsi", pvscsi_methods, sizeof(struct pvscsi_softc)
static int pvscsi_get_tunable(struct pvscsi_softc *sc, char *name, int value)
pvscsi_freeze(struct pvscsi_softc *sc)
pvscsi_reg_read(struct pvscsi_softc *sc, uint32_t offset)
pvscsi_reg_write(struct pvscsi_softc *sc, uint32_t offset, uint32_t val)
pvscsi_read_intr_status(struct pvscsi_softc *sc)
pvscsi_write_intr_status(struct pvscsi_softc *sc, uint32_t val)
pvscsi_intr_enable(struct pvscsi_softc *sc)
pvscsi_intr_disable(struct pvscsi_softc *sc)
pvscsi_kick_io(struct pvscsi_softc *sc, uint8_t cdb0)
pvscsi_write_cmd(struct pvscsi_softc *sc, uint32_t cmd, void *data,
static inline uint64_t pvscsi_hcb_to_context(struct pvscsi_softc *sc,
static inline struct pvscsi_hcb* pvscsi_context_to_hcb(struct pvscsi_softc *sc,
pvscsi_hcb_get(struct pvscsi_softc *sc)
pvscsi_hcb_put(struct pvscsi_softc *sc, struct pvscsi_hcb *hcb)
pvscsi_get_max_targets(struct pvscsi_softc *sc)
static int pvscsi_setup_req_call(struct pvscsi_softc *sc, uint32_t enable)
pvscsi_dma_free(struct pvscsi_softc *sc, struct pvscsi_dma *dma)
pvscsi_dma_alloc(struct pvscsi_softc *sc, struct pvscsi_dma *dma,
pvscsi_dma_alloc_ppns(struct pvscsi_softc *sc, struct pvscsi_dma *dma,
pvscsi_dma_free_per_hcb(struct pvscsi_softc *sc, uint32_t hcbs_allocated)
struct pvscsi_softc;
pvscsi_dma_alloc_per_hcb(struct pvscsi_softc *sc)
static inline uint32_t pvscsi_reg_read(struct pvscsi_softc *sc,
static inline void pvscsi_reg_write(struct pvscsi_softc *sc, uint32_t offset,
static inline uint32_t pvscsi_read_intr_status(struct pvscsi_softc *sc);
pvscsi_free_rings(struct pvscsi_softc *sc)
static inline void pvscsi_write_intr_status(struct pvscsi_softc *sc,
pvscsi_allocate_rings(struct pvscsi_softc *sc)
static inline void pvscsi_intr_enable(struct pvscsi_softc *sc);
static inline void pvscsi_intr_disable(struct pvscsi_softc *sc);
static void pvscsi_kick_io(struct pvscsi_softc *sc, uint8_t cdb0);
static void pvscsi_write_cmd(struct pvscsi_softc *sc, uint32_t cmd, void *data,
static uint32_t pvscsi_get_max_targets(struct pvscsi_softc *sc);
pvscsi_setup_rings(struct pvscsi_softc *sc)
static int pvscsi_setup_req_call(struct pvscsi_softc *sc, uint32_t enable);
static void pvscsi_setup_rings(struct pvscsi_softc *sc);
pvscsi_hw_supports_msg(struct pvscsi_softc *sc)
static void pvscsi_setup_msg_ring(struct pvscsi_softc *sc);
pvscsi_setup_msg_ring(struct pvscsi_softc *sc)
static int pvscsi_hw_supports_msg(struct pvscsi_softc *sc);
pvscsi_adapter_reset(struct pvscsi_softc *sc)
pvscsi_bus_reset(struct pvscsi_softc *sc)
static void pvscsi_freeze(struct pvscsi_softc *sc);
pvscsi_device_reset(struct pvscsi_softc *sc, uint32_t target)
static void pvscsi_adapter_reset(struct pvscsi_softc *sc);
static void pvscsi_bus_reset(struct pvscsi_softc *sc);
pvscsi_abort(struct pvscsi_softc *sc, uint32_t target, union ccb *ccb)
static void pvscsi_device_reset(struct pvscsi_softc *sc, uint32_t target);
static void pvscsi_abort(struct pvscsi_softc *sc, uint32_t target,
static void pvscsi_process_completion(struct pvscsi_softc *sc,
struct pvscsi_softc *sc;
static void pvscsi_process_cmp_ring(struct pvscsi_softc *sc);
static void pvscsi_process_msg(struct pvscsi_softc *sc,
static void pvscsi_process_msg_ring(struct pvscsi_softc *sc);
pvscsi_process_completion(struct pvscsi_softc *sc,
static void pvscsi_intr_locked(struct pvscsi_softc *sc);
static inline uint64_t pvscsi_hcb_to_context(struct pvscsi_softc *sc,