Lines Matching refs:array
27 struct vmci_handle_arr *array; in vmci_handle_arr_create() local
32 array = kmalloc(handle_arr_calc_size(capacity), GFP_ATOMIC); in vmci_handle_arr_create()
33 if (!array) in vmci_handle_arr_create()
36 array->capacity = capacity; in vmci_handle_arr_create()
37 array->size = 0; in vmci_handle_arr_create()
39 return array; in vmci_handle_arr_create()
42 void vmci_handle_arr_destroy(struct vmci_handle_arr *array) in vmci_handle_arr_destroy() argument
44 kfree(array); in vmci_handle_arr_destroy()
50 struct vmci_handle_arr *array = *array_ptr; in vmci_handle_arr_append_entry() local
52 if (unlikely(array->size >= array->capacity)) { in vmci_handle_arr_append_entry()
55 size_t new_capacity = array->capacity * VMCI_ARR_CAP_MULT; in vmci_handle_arr_append_entry()
58 new_array = krealloc(array, new_size, GFP_ATOMIC); in vmci_handle_arr_append_entry()
63 *array_ptr = array = new_array; in vmci_handle_arr_append_entry()
66 array->entries[array->size] = handle; in vmci_handle_arr_append_entry()
67 array->size++; in vmci_handle_arr_append_entry()
73 struct vmci_handle vmci_handle_arr_remove_entry(struct vmci_handle_arr *array, in vmci_handle_arr_remove_entry() argument
79 for (i = 0; i < array->size; i++) { in vmci_handle_arr_remove_entry()
80 if (vmci_handle_is_equal(array->entries[i], entry_handle)) { in vmci_handle_arr_remove_entry()
81 handle = array->entries[i]; in vmci_handle_arr_remove_entry()
82 array->size--; in vmci_handle_arr_remove_entry()
83 array->entries[i] = array->entries[array->size]; in vmci_handle_arr_remove_entry()
84 array->entries[array->size] = VMCI_INVALID_HANDLE; in vmci_handle_arr_remove_entry()
95 struct vmci_handle vmci_handle_arr_remove_tail(struct vmci_handle_arr *array) in vmci_handle_arr_remove_tail() argument
99 if (array->size) { in vmci_handle_arr_remove_tail()
100 array->size--; in vmci_handle_arr_remove_tail()
101 handle = array->entries[array->size]; in vmci_handle_arr_remove_tail()
102 array->entries[array->size] = VMCI_INVALID_HANDLE; in vmci_handle_arr_remove_tail()
112 vmci_handle_arr_get_entry(const struct vmci_handle_arr *array, size_t index) in vmci_handle_arr_get_entry() argument
114 if (unlikely(index >= array->size)) in vmci_handle_arr_get_entry()
117 return array->entries[index]; in vmci_handle_arr_get_entry()
120 bool vmci_handle_arr_has_entry(const struct vmci_handle_arr *array, in vmci_handle_arr_has_entry() argument
125 for (i = 0; i < array->size; i++) in vmci_handle_arr_has_entry()
126 if (vmci_handle_is_equal(array->entries[i], entry_handle)) in vmci_handle_arr_has_entry()
136 struct vmci_handle *vmci_handle_arr_get_handles(struct vmci_handle_arr *array) in vmci_handle_arr_get_handles() argument
138 if (array->size) in vmci_handle_arr_get_handles()
139 return array->entries; in vmci_handle_arr_get_handles()