Lines Matching refs:io_pool
105 ocs_io_pool_t *io_pool; in ocs_io_pool_create() local
108 io_pool = ocs_malloc(ocs, sizeof(*io_pool), OCS_M_ZERO | OCS_M_NOWAIT); in ocs_io_pool_create()
109 if (io_pool == NULL) { in ocs_io_pool_create()
114 io_pool->ocs = ocs; in ocs_io_pool_create()
115 io_pool->io_num_ios = num_io; 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()
122 for (i = 0; i < io_pool->io_num_ios; i++) { in ocs_io_pool_create()
123 ocs_io_t *io = ocs_pool_get_instance(io_pool->pool, i); in ocs_io_pool_create()
134 ocs_io_pool_free(io_pool); in ocs_io_pool_create()
143 ocs_io_pool_free(io_pool); in ocs_io_pool_create()
151 ocs_io_pool_free(io_pool); in ocs_io_pool_create()
164 ocs_io_pool_free(io_pool); in ocs_io_pool_create()
171 ocs_io_pool_free(io_pool); in ocs_io_pool_create()
176 return io_pool; in ocs_io_pool_create()
190 ocs_io_pool_free(ocs_io_pool_t *io_pool) in ocs_io_pool_free() argument
196 if (io_pool != NULL) { in ocs_io_pool_free()
197 ocs = io_pool->ocs; in ocs_io_pool_free()
198 for (i = 0; i < io_pool->io_num_ios; i++) { in ocs_io_pool_free()
199 io = ocs_pool_get_instance(io_pool->pool, i); in ocs_io_pool_free()
213 if (io_pool->pool != NULL) { in ocs_io_pool_free()
214 ocs_pool_free(io_pool->pool); in ocs_io_pool_free()
216 ocs_lock_free(&io_pool->lock); 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()
224 uint32_t ocs_io_pool_allocated(ocs_io_pool_t *io_pool) in ocs_io_pool_allocated() argument
226 return io_pool->io_num_ios; in ocs_io_pool_allocated()
238 ocs_io_pool_io_alloc(ocs_io_pool_t *io_pool) in ocs_io_pool_io_alloc() argument
243 ocs_assert(io_pool, NULL); in ocs_io_pool_io_alloc()
245 ocs = io_pool->ocs; in ocs_io_pool_io_alloc()
247 ocs_lock(&io_pool->lock); in ocs_io_pool_io_alloc()
248 if ((io = ocs_pool_get(io_pool->pool)) != NULL) { in ocs_io_pool_io_alloc()
249 ocs_unlock(&io_pool->lock); in ocs_io_pool_io_alloc()
269 ocs_unlock(&io_pool->lock); in ocs_io_pool_io_alloc()
282 ocs_io_pool_io_free(ocs_io_pool_t *io_pool, ocs_io_t *io) in ocs_io_pool_io_free() argument
287 ocs_assert(io_pool); in ocs_io_pool_io_free()
289 ocs = io_pool->ocs; in ocs_io_pool_io_free()
291 ocs_lock(&io_pool->lock); in ocs_io_pool_io_free()
294 ocs_pool_put(io_pool->pool, io); in ocs_io_pool_io_free()
295 ocs_unlock(&io_pool->lock); in ocs_io_pool_io_free()
345 ocs_io_pool_t *io_pool = xport->io_pool; in ocs_io_get_instance() local
346 return ocs_pool_get_instance(io_pool->pool, index); in ocs_io_get_instance()