Lines Matching refs:p_vector
180 void cl_vector_construct(IN cl_vector_t * const p_vector) in cl_vector_construct() argument
182 CL_ASSERT(p_vector); in cl_vector_construct()
184 memset(p_vector, 0, sizeof(cl_vector_t)); in cl_vector_construct()
186 p_vector->state = CL_UNINITIALIZED; in cl_vector_construct()
189 cl_status_t cl_vector_init(IN cl_vector_t * const p_vector, in cl_vector_init() argument
198 CL_ASSERT(p_vector); in cl_vector_init()
201 cl_vector_construct(p_vector); in cl_vector_init()
203 p_vector->grow_size = grow_size; in cl_vector_init()
204 p_vector->element_size = element_size; in cl_vector_init()
205 p_vector->pfn_init = pfn_init; in cl_vector_init()
206 p_vector->pfn_dtor = pfn_dtor; in cl_vector_init()
207 p_vector->context = context; in cl_vector_init()
215 p_vector->pfn_copy = cl_vector_copy8; in cl_vector_init()
219 p_vector->pfn_copy = cl_vector_copy16; in cl_vector_init()
223 p_vector->pfn_copy = cl_vector_copy32; in cl_vector_init()
227 p_vector->pfn_copy = cl_vector_copy64; in cl_vector_init()
231 p_vector->pfn_copy = cl_vector_copy_general; in cl_vector_init()
239 p_vector->state = CL_INITIALIZED; in cl_vector_init()
242 cl_qlist_init(&p_vector->alloc_list); in cl_vector_init()
246 status = cl_vector_set_size(p_vector, min_size); in cl_vector_init()
248 cl_vector_destroy(p_vector); in cl_vector_init()
254 void cl_vector_destroy(IN cl_vector_t * const p_vector) in cl_vector_destroy() argument
259 CL_ASSERT(p_vector); in cl_vector_destroy()
260 CL_ASSERT(cl_is_state_valid(p_vector->state)); in cl_vector_destroy()
263 if (p_vector->state == CL_INITIALIZED) { in cl_vector_destroy()
264 if (p_vector->pfn_dtor) { in cl_vector_destroy()
265 for (i = 0; i < p_vector->size; i++) { in cl_vector_destroy()
266 p_element = p_vector->p_ptr_array[i]; in cl_vector_destroy()
269 p_vector->pfn_dtor(p_element, in cl_vector_destroy()
270 (void *)p_vector->context); in cl_vector_destroy()
275 while (!cl_is_qlist_empty(&p_vector->alloc_list)) in cl_vector_destroy()
276 free(cl_qlist_remove_head(&p_vector->alloc_list)); in cl_vector_destroy()
279 if (p_vector->p_ptr_array) { in cl_vector_destroy()
280 free(p_vector->p_ptr_array); in cl_vector_destroy()
281 p_vector->p_ptr_array = NULL; in cl_vector_destroy()
285 p_vector->state = CL_UNINITIALIZED; in cl_vector_destroy()
288 cl_status_t cl_vector_at(IN const cl_vector_t * const p_vector, in cl_vector_at() argument
291 CL_ASSERT(p_vector); in cl_vector_at()
292 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_at()
295 if (index >= p_vector->size) in cl_vector_at()
298 cl_vector_get(p_vector, index, p_element); in cl_vector_at()
302 cl_status_t cl_vector_set(IN cl_vector_t * const p_vector, in cl_vector_set() argument
308 CL_ASSERT(p_vector); in cl_vector_set()
309 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_set()
313 if (index >= p_vector->size) { in cl_vector_set()
315 status = cl_vector_set_size(p_vector, index + 1); in cl_vector_set()
318 if ((status != CL_SUCCESS) && (p_vector->size < index)) in cl_vector_set()
323 p_dest = cl_vector_get_ptr(p_vector, index); in cl_vector_set()
328 p_vector->pfn_copy(p_dest, p_element, p_vector->element_size); in cl_vector_set()
333 cl_status_t cl_vector_set_capacity(IN cl_vector_t * const p_vector, in cl_vector_set_capacity() argument
342 CL_ASSERT(p_vector); in cl_vector_set_capacity()
343 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_set_capacity()
346 if (new_capacity <= p_vector->capacity) { in cl_vector_set_capacity()
358 if (p_vector->p_ptr_array) { in cl_vector_set_capacity()
360 memcpy(p_new_ptr_array, p_vector->p_ptr_array, in cl_vector_set_capacity()
361 p_vector->capacity * sizeof(void *)); in cl_vector_set_capacity()
364 free(p_vector->p_ptr_array); in cl_vector_set_capacity()
368 p_vector->p_ptr_array = p_new_ptr_array; in cl_vector_set_capacity()
374 new_elements = new_capacity - p_vector->capacity; in cl_vector_set_capacity()
376 alloc_size = new_elements * p_vector->element_size; in cl_vector_set_capacity()
384 cl_qlist_insert_tail(&p_vector->alloc_list, p_buf); in cl_vector_set_capacity()
388 for (i = p_vector->capacity; i < new_capacity; i++) { in cl_vector_set_capacity()
389 p_vector->p_ptr_array[i] = p_buf; in cl_vector_set_capacity()
391 p_buf = (void *)(((uint8_t *) p_buf) + p_vector->element_size); in cl_vector_set_capacity()
395 p_vector->capacity = new_capacity; in cl_vector_set_capacity()
400 cl_status_t cl_vector_set_size(IN cl_vector_t * const p_vector, in cl_vector_set_size() argument
408 CL_ASSERT(p_vector); in cl_vector_set_size()
409 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_set_size()
412 if (size == p_vector->size) in cl_vector_set_size()
416 if (size >= p_vector->capacity) { in cl_vector_set_size()
417 if (!p_vector->grow_size) in cl_vector_set_size()
422 if (size % p_vector->grow_size) { in cl_vector_set_size()
424 new_capacity += p_vector->grow_size - in cl_vector_set_size()
425 (size % p_vector->grow_size); in cl_vector_set_size()
428 status = cl_vector_set_capacity(p_vector, new_capacity); in cl_vector_set_size()
434 if (size > p_vector->size && p_vector->pfn_init) { in cl_vector_set_size()
435 for (index = p_vector->size; index < size; index++) { in cl_vector_set_size()
437 p_element = cl_vector_get_ptr(p_vector, index); in cl_vector_set_size()
441 p_vector->pfn_init(p_element, in cl_vector_set_size()
442 (void *)p_vector->context); in cl_vector_set_size()
445 if (p_vector->pfn_dtor) in cl_vector_set_size()
446 p_vector->pfn_dtor(p_element, in cl_vector_set_size()
447 (void *)p_vector-> in cl_vector_set_size()
455 p_vector->size++; in cl_vector_set_size()
457 } else if (p_vector->pfn_dtor) { in cl_vector_set_size()
459 for (index = size; index < p_vector->size; index++) { in cl_vector_set_size()
461 p_element = cl_vector_get_ptr(p_vector, index); in cl_vector_set_size()
463 p_vector->pfn_dtor(p_element, in cl_vector_set_size()
464 (void *)p_vector->context); in cl_vector_set_size()
468 p_vector->size = size; in cl_vector_set_size()
472 cl_status_t cl_vector_set_min_size(IN cl_vector_t * const p_vector, in cl_vector_set_min_size() argument
475 CL_ASSERT(p_vector); in cl_vector_set_min_size()
476 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_set_min_size()
478 if (min_size > p_vector->size) { in cl_vector_set_min_size()
480 return (cl_vector_set_size(p_vector, min_size)); in cl_vector_set_min_size()
487 void cl_vector_apply_func(IN const cl_vector_t * const p_vector, in cl_vector_apply_func() argument
494 CL_ASSERT(p_vector); in cl_vector_apply_func()
495 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_apply_func()
498 for (i = 0; i < p_vector->size; i++) { in cl_vector_apply_func()
499 p_element = cl_vector_get_ptr(p_vector, i); in cl_vector_apply_func()
504 size_t cl_vector_find_from_start(IN const cl_vector_t * const p_vector, in cl_vector_find_from_start() argument
511 CL_ASSERT(p_vector); in cl_vector_find_from_start()
512 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_find_from_start()
515 for (i = 0; i < p_vector->size; i++) { in cl_vector_find_from_start()
516 p_element = cl_vector_get_ptr(p_vector, i); in cl_vector_find_from_start()
524 size_t cl_vector_find_from_end(IN const cl_vector_t * const p_vector, in cl_vector_find_from_end() argument
531 CL_ASSERT(p_vector); in cl_vector_find_from_end()
532 CL_ASSERT(p_vector->state == CL_INITIALIZED); in cl_vector_find_from_end()
535 i = p_vector->size; in cl_vector_find_from_end()
539 p_element = cl_vector_get_ptr(p_vector, --i); in cl_vector_find_from_end()
547 return (p_vector->size); in cl_vector_find_from_end()