Lines Matching refs:vector
30 struct vector *vector, in dal_vector_construct() argument
35 vector->container = NULL; in dal_vector_construct()
43 vector->container = kcalloc(capacity, struct_size, GFP_KERNEL); in dal_vector_construct()
44 if (vector->container == NULL) in dal_vector_construct()
46 vector->capacity = capacity; in dal_vector_construct()
47 vector->struct_size = struct_size; in dal_vector_construct()
48 vector->count = 0; in dal_vector_construct()
49 vector->ctx = ctx; in dal_vector_construct()
55 struct vector *vector, in dal_vector_presized_costruct() argument
63 vector->container = NULL; in dal_vector_presized_costruct()
71 vector->container = kcalloc(count, struct_size, GFP_KERNEL); in dal_vector_presized_costruct()
73 if (vector->container == NULL) in dal_vector_presized_costruct()
82 vector->container + i * struct_size, in dal_vector_presized_costruct()
87 vector->capacity = count; in dal_vector_presized_costruct()
88 vector->struct_size = struct_size; in dal_vector_presized_costruct()
89 vector->count = count; in dal_vector_presized_costruct()
93 struct vector *dal_vector_presized_create( in dal_vector_presized_create()
99 struct vector *vector = kzalloc(sizeof(struct vector), GFP_KERNEL); in dal_vector_presized_create() local
101 if (vector == NULL) in dal_vector_presized_create()
105 vector, ctx, size, initial_value, struct_size)) in dal_vector_presized_create()
106 return vector; in dal_vector_presized_create()
109 kfree(vector); in dal_vector_presized_create()
113 struct vector *dal_vector_create( in dal_vector_create()
118 struct vector *vector = kzalloc(sizeof(struct vector), GFP_KERNEL); in dal_vector_create() local
120 if (vector == NULL) in dal_vector_create()
123 if (dal_vector_construct(vector, ctx, capacity, struct_size)) in dal_vector_create()
124 return vector; in dal_vector_create()
127 kfree(vector); in dal_vector_create()
132 struct vector *vector) in dal_vector_destruct() argument
134 kfree(vector->container); in dal_vector_destruct()
135 vector->count = 0; in dal_vector_destruct()
136 vector->capacity = 0; in dal_vector_destruct()
140 struct vector **vector) in dal_vector_destroy() argument
142 if (vector == NULL || *vector == NULL) in dal_vector_destroy()
144 dal_vector_destruct(*vector); in dal_vector_destroy()
145 kfree(*vector); in dal_vector_destroy()
146 *vector = NULL; in dal_vector_destroy()
150 const struct vector *vector) in dal_vector_get_count() argument
152 return vector->count; in dal_vector_get_count()
156 const struct vector *vector, in dal_vector_at_index() argument
159 if (vector->container == NULL || index >= vector->count) in dal_vector_at_index()
161 return vector->container + (index * vector->struct_size); in dal_vector_at_index()
165 struct vector *vector, in dal_vector_remove_at_index() argument
168 if (index >= vector->count) in dal_vector_remove_at_index()
171 if (index != vector->count - 1) in dal_vector_remove_at_index()
173 vector->container + (index * vector->struct_size), in dal_vector_remove_at_index()
174 vector->container + ((index + 1) * vector->struct_size), in dal_vector_remove_at_index()
175 (vector->count - index - 1) * vector->struct_size); in dal_vector_remove_at_index()
176 vector->count -= 1; in dal_vector_remove_at_index()
182 const struct vector *vector, in dal_vector_set_at_index() argument
186 void *where = dal_vector_at_index(vector, index); in dal_vector_set_at_index()
195 vector->struct_size); in dal_vector_set_at_index()
205 struct vector *vector, in dal_vector_insert_at() argument
211 if (vector->count == vector->capacity) { in dal_vector_insert_at()
213 vector, in dal_vector_insert_at()
214 calc_increased_capacity(vector->capacity))) in dal_vector_insert_at()
218 insert_address = vector->container + (vector->struct_size * position); in dal_vector_insert_at()
220 if (vector->count && position < vector->count) in dal_vector_insert_at()
222 insert_address + vector->struct_size, in dal_vector_insert_at()
224 vector->struct_size * (vector->count - position)); in dal_vector_insert_at()
229 vector->struct_size); in dal_vector_insert_at()
231 vector->count++; in dal_vector_insert_at()
237 struct vector *vector, in dal_vector_append() argument
240 return dal_vector_insert_at(vector, item, vector->count); in dal_vector_append()
243 struct vector *dal_vector_clone( in dal_vector_clone()
244 const struct vector *vector) in dal_vector_clone() argument
246 struct vector *vec_cloned; in dal_vector_clone()
250 count = dal_vector_get_count(vector); in dal_vector_clone()
256 vector->ctx, in dal_vector_clone()
257 vector->capacity, in dal_vector_clone()
258 vector->struct_size); in dal_vector_clone()
265 vec_cloned = dal_vector_presized_create(vector->ctx, count, in dal_vector_clone()
267 vector->struct_size); in dal_vector_clone()
275 memmove(vec_cloned->container, vector->container, in dal_vector_clone()
281 uint32_t dal_vector_capacity(const struct vector *vector) in dal_vector_capacity() argument
283 return vector->capacity; in dal_vector_capacity()
286 bool dal_vector_reserve(struct vector *vector, uint32_t capacity) in dal_vector_reserve() argument
290 if (capacity <= vector->capacity) in dal_vector_reserve()
293 new_container = krealloc(vector->container, in dal_vector_reserve()
294 capacity * vector->struct_size, M_DRM, GFP_KERNEL); in dal_vector_reserve()
297 vector->container = new_container; in dal_vector_reserve()
298 vector->capacity = capacity; in dal_vector_reserve()
305 void dal_vector_clear(struct vector *vector) in dal_vector_clear() argument
307 vector->count = 0; in dal_vector_clear()