Lines Matching full:ocs
41 #include "ocs.h"
64 ocs_t *ocs; /* Pointer to device object */ member
92 * @param ocs Driver instance's software context.
101 ocs_io_pool_create(ocs_t *ocs, uint32_t num_io, uint32_t num_sgl) in ocs_io_pool_create() argument
108 io_pool = ocs_malloc(ocs, sizeof(*io_pool), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_io_pool_create()
110 ocs_log_err(ocs, "allocate of IO pool failed\n"); in ocs_io_pool_create()
114 io_pool->ocs = ocs; in ocs_io_pool_create()
118 ocs_lock_init(ocs, &io_pool->lock, "io_pool lock[%d]", ocs->instance_index); in ocs_io_pool_create()
120 io_pool->pool = ocs_pool_alloc(ocs, sizeof(ocs_io_t), io_pool->io_num_ios, FALSE); in ocs_io_pool_create()
127 io->ocs = ocs; in ocs_io_pool_create()
130 if (ocs->enable_ini) { in ocs_io_pool_create()
131 rc = ocs_dma_alloc(ocs, &io->cmdbuf, SCSI_CMD_BUF_LENGTH, OCS_MIN_DMA_ALIGNMENT); in ocs_io_pool_create()
133 ocs_log_err(ocs, "ocs_dma_alloc cmdbuf failed\n"); in ocs_io_pool_create()
140 rc = ocs_dma_alloc(ocs, &io->rspbuf, SCSI_RSP_BUF_LENGTH, OCS_MIN_DMA_ALIGNMENT); in ocs_io_pool_create()
142 ocs_log_err(ocs, "ocs_dma_alloc cmdbuf failed\n"); in ocs_io_pool_create()
148 io->sgl = ocs_malloc(ocs, sizeof(*io->sgl) * num_sgl, OCS_M_NOWAIT | OCS_M_ZERO); in ocs_io_pool_create()
150 ocs_log_err(ocs, "malloc sgl's failed\n"); in ocs_io_pool_create()
161 rc = ocs_dma_alloc(ocs, &io->els_req, OCS_ELS_REQ_LEN, OCS_MIN_DMA_ALIGNMENT); in ocs_io_pool_create()
163 ocs_log_err(ocs, "ocs_dma_alloc els_req failed\n"); in ocs_io_pool_create()
168 rc = ocs_dma_alloc(ocs, &io->els_rsp, OCS_ELS_GID_PT_RSP_LEN, OCS_MIN_DMA_ALIGNMENT); in ocs_io_pool_create()
170 ocs_log_err(ocs, "ocs_dma_alloc els_rsp failed\n"); in ocs_io_pool_create()
192 ocs_t *ocs; in ocs_io_pool_free() local
197 ocs = io_pool->ocs; in ocs_io_pool_free()
205 ocs_free(ocs, io->sgl, sizeof(*io->sgl) * io->sgl_allocated); in ocs_io_pool_free()
207 ocs_dma_free(ocs, &io->cmdbuf); in ocs_io_pool_free()
208 ocs_dma_free(ocs, &io->rspbuf); in ocs_io_pool_free()
209 ocs_dma_free(ocs, &io->els_req); in ocs_io_pool_free()
210 ocs_dma_free(ocs, &io->els_rsp); in ocs_io_pool_free()
217 ocs_free(ocs, io_pool, sizeof(*io_pool)); in ocs_io_pool_free()
218 ocs->xport->io_pool = NULL; in ocs_io_pool_free()
241 ocs_t *ocs; in ocs_io_pool_io_alloc() local
245 ocs = io_pool->ocs; in ocs_io_pool_io_alloc()
255 io->ocs = ocs; in ocs_io_pool_io_alloc()
266 ocs_atomic_add_return(&ocs->xport->io_active_count, 1); in ocs_io_pool_io_alloc()
267 ocs_atomic_add_return(&ocs->xport->io_total_alloc, 1); in ocs_io_pool_io_alloc()
284 ocs_t *ocs; in ocs_io_pool_io_free() local
289 ocs = io_pool->ocs; in ocs_io_pool_io_free()
298 ocs_hw_io_free(&ocs->hw, hio); in ocs_io_pool_io_free()
301 ocs_atomic_sub_return(&ocs->xport->io_active_count, 1); in ocs_io_pool_io_free()
302 ocs_atomic_add_return(&ocs->xport->io_total_free, 1); in ocs_io_pool_io_free()
309 * @param ocs Driver instance's software context.
315 ocs_io_find_tgt_io(ocs_t *ocs, ocs_node_t *node, uint16_t ox_id, uint16_t rx_id) in ocs_io_find_tgt_io() argument
336 * @param ocs Pointer to driver structure.
342 ocs_io_get_instance(ocs_t *ocs, uint32_t index) in ocs_io_get_instance() argument
344 ocs_xport_t *xport = ocs->xport; in ocs_io_get_instance()