Lines Matching refs:array

19 	struct vmci_handle_arr *array;  in vmci_handle_arr_create()  local
28 array = kmalloc(handle_arr_calc_size(capacity), GFP_ATOMIC); in vmci_handle_arr_create()
29 if (!array) in vmci_handle_arr_create()
32 array->capacity = capacity; in vmci_handle_arr_create()
33 array->max_capacity = max_capacity; in vmci_handle_arr_create()
34 array->size = 0; in vmci_handle_arr_create()
36 return array; in vmci_handle_arr_create()
39 void vmci_handle_arr_destroy(struct vmci_handle_arr *array) in vmci_handle_arr_destroy() argument
41 kfree(array); in vmci_handle_arr_destroy()
47 struct vmci_handle_arr *array = *array_ptr; in vmci_handle_arr_append_entry() local
49 if (unlikely(array->size >= array->capacity)) { in vmci_handle_arr_append_entry()
52 u32 capacity_bump = min(array->max_capacity - array->capacity, in vmci_handle_arr_append_entry()
53 array->capacity); in vmci_handle_arr_append_entry()
54 size_t new_size = handle_arr_calc_size(array->capacity + in vmci_handle_arr_append_entry()
57 if (array->size >= array->max_capacity) in vmci_handle_arr_append_entry()
60 new_array = krealloc(array, new_size, GFP_ATOMIC); in vmci_handle_arr_append_entry()
65 *array_ptr = array = new_array; in vmci_handle_arr_append_entry()
68 array->entries[array->size] = handle; in vmci_handle_arr_append_entry()
69 array->size++; in vmci_handle_arr_append_entry()
77 struct vmci_handle vmci_handle_arr_remove_entry(struct vmci_handle_arr *array, in vmci_handle_arr_remove_entry() argument
83 for (i = 0; i < array->size; i++) { in vmci_handle_arr_remove_entry()
84 if (vmci_handle_is_equal(array->entries[i], entry_handle)) { in vmci_handle_arr_remove_entry()
85 handle = array->entries[i]; in vmci_handle_arr_remove_entry()
86 array->size--; in vmci_handle_arr_remove_entry()
87 array->entries[i] = array->entries[array->size]; in vmci_handle_arr_remove_entry()
88 array->entries[array->size] = VMCI_INVALID_HANDLE; in vmci_handle_arr_remove_entry()
99 struct vmci_handle vmci_handle_arr_remove_tail(struct vmci_handle_arr *array) in vmci_handle_arr_remove_tail() argument
103 if (array->size) { in vmci_handle_arr_remove_tail()
104 array->size--; in vmci_handle_arr_remove_tail()
105 handle = array->entries[array->size]; in vmci_handle_arr_remove_tail()
106 array->entries[array->size] = VMCI_INVALID_HANDLE; in vmci_handle_arr_remove_tail()
116 vmci_handle_arr_get_entry(const struct vmci_handle_arr *array, u32 index) in vmci_handle_arr_get_entry() argument
118 if (unlikely(index >= array->size)) in vmci_handle_arr_get_entry()
121 return array->entries[index]; in vmci_handle_arr_get_entry()
124 bool vmci_handle_arr_has_entry(const struct vmci_handle_arr *array, in vmci_handle_arr_has_entry() argument
129 for (i = 0; i < array->size; i++) in vmci_handle_arr_has_entry()
130 if (vmci_handle_is_equal(array->entries[i], entry_handle)) in vmci_handle_arr_has_entry()
140 struct vmci_handle *vmci_handle_arr_get_handles(struct vmci_handle_arr *array) in vmci_handle_arr_get_handles() argument
142 if (array->size) in vmci_handle_arr_get_handles()
143 return array->entries; in vmci_handle_arr_get_handles()