| /kernel/linux/linux-6.6/drivers/misc/vmw_vmci/ |
| D | vmci_handle_array.c | 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 [all …]
|
| /kernel/linux/linux-5.10/drivers/misc/vmw_vmci/ |
| D | vmci_handle_array.c | 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 [all …]
|
| /kernel/linux/linux-5.10/drivers/dma-buf/ |
| D | dma-fence-array.c | 3 * dma-fence-array: aggregate fences to be waited together 14 #include <linux/dma-fence-array.h> 28 static void dma_fence_array_set_pending_error(struct dma_fence_array *array, in dma_fence_array_set_pending_error() argument 36 cmpxchg(&array->base.error, PENDING_ERROR, error); in dma_fence_array_set_pending_error() 39 static void dma_fence_array_clear_pending_error(struct dma_fence_array *array) in dma_fence_array_clear_pending_error() argument 42 cmpxchg(&array->base.error, PENDING_ERROR, 0); in dma_fence_array_clear_pending_error() 47 struct dma_fence_array *array = container_of(wrk, typeof(*array), work); in irq_dma_fence_array_work() local 49 dma_fence_array_clear_pending_error(array); in irq_dma_fence_array_work() 51 dma_fence_signal(&array->base); in irq_dma_fence_array_work() 52 dma_fence_put(&array->base); in irq_dma_fence_array_work() [all …]
|
| /kernel/linux/linux-6.6/drivers/dma-buf/ |
| D | dma-fence-array.c | 3 * dma-fence-array: aggregate fences to be waited together 14 #include <linux/dma-fence-array.h> 28 static void dma_fence_array_set_pending_error(struct dma_fence_array *array, in dma_fence_array_set_pending_error() argument 36 cmpxchg(&array->base.error, PENDING_ERROR, error); in dma_fence_array_set_pending_error() 39 static void dma_fence_array_clear_pending_error(struct dma_fence_array *array) in dma_fence_array_clear_pending_error() argument 42 cmpxchg(&array->base.error, PENDING_ERROR, 0); in dma_fence_array_clear_pending_error() 47 struct dma_fence_array *array = container_of(wrk, typeof(*array), work); in irq_dma_fence_array_work() local 49 dma_fence_array_clear_pending_error(array); in irq_dma_fence_array_work() 51 dma_fence_signal(&array->base); in irq_dma_fence_array_work() 52 dma_fence_put(&array->base); in irq_dma_fence_array_work() [all …]
|
| D | dma-fence-unwrap.c | 11 #include <linux/dma-fence-array.h> 17 /* Internal helper to start new array iteration, don't use directly */ 21 cursor->array = dma_fence_chain_contained(cursor->chain); in __dma_fence_unwrap_array() 23 return dma_fence_array_first(cursor->array); in __dma_fence_unwrap_array() 54 tmp = dma_fence_array_next(cursor->array, cursor->index); in dma_fence_unwrap_next() 88 struct dma_fence *tmp, **array; in __dma_fence_unwrap_merge() local 114 array = kmalloc_array(count, sizeof(*array), GFP_KERNEL); in __dma_fence_unwrap_merge() 115 if (!array) in __dma_fence_unwrap_merge() 122 array[count++] = dma_fence_get(tmp); in __dma_fence_unwrap_merge() 135 sort(array, count, sizeof(*array), fence_cmp, NULL); in __dma_fence_unwrap_merge() [all …]
|
| /kernel/linux/linux-6.6/fs/xfs/scrub/ |
| D | xfarray.c | 19 * This memory array uses an xfile (which itself is a memfd "file") to store 22 * because we don't have to pin so much memory. However, array access is less 23 * direct than would be in a regular memory array. Access to the array is 25 * provided for convenience. Array elements can be unset, which sets them to 34 * buffer array items when we need space to store values temporarily. 36 static inline void *xfarray_scratch(struct xfarray *array) in xfarray_scratch() argument 38 return (array + 1); in xfarray_scratch() 41 /* Compute array index given an xfile offset. */ 44 struct xfarray *array, in xfarray_idx() argument 47 if (array->obj_size_log >= 0) in xfarray_idx() [all …]
|
| D | xfarray.h | 9 /* xfile array index type, along with cursor initialization */ 13 /* Iterate each index of an xfile array. */ 14 #define foreach_xfarray_idx(array, idx) \ argument 16 (idx) < xfarray_length(array); \ 20 /* Underlying file that backs the array. */ 23 /* Number of array elements. */ 26 /* Maximum possible array size. */ 29 /* Number of unset slots in the array below @nr. */ 32 /* Size of an array element. */ 35 /* log2 of array element size, if possible. */ [all …]
|
| /kernel/linux/linux-5.10/sound/hda/ |
| D | array.c | 11 * snd_array_new - get a new element from the given array 12 * @array: the array object 14 * Get a new element from the given array. If it exceeds the 15 * pre-allocated array size, re-allocate the array. 19 void *snd_array_new(struct snd_array *array) in snd_array_new() argument 21 if (snd_BUG_ON(!array->elem_size)) in snd_array_new() 23 if (array->used >= array->alloced) { in snd_array_new() 24 int num = array->alloced + array->alloc_align; in snd_array_new() 25 int oldsize = array->alloced * array->elem_size; in snd_array_new() 26 int size = (num + 1) * array->elem_size; in snd_array_new() [all …]
|
| /kernel/linux/linux-6.6/sound/hda/ |
| D | array.c | 11 * snd_array_new - get a new element from the given array 12 * @array: the array object 14 * Get a new element from the given array. If it exceeds the 15 * pre-allocated array size, re-allocate the array. 19 void *snd_array_new(struct snd_array *array) in snd_array_new() argument 21 if (snd_BUG_ON(!array->elem_size)) in snd_array_new() 23 if (array->used >= array->alloced) { in snd_array_new() 24 int num = array->alloced + array->alloc_align; in snd_array_new() 25 int oldsize = array->alloced * array->elem_size; in snd_array_new() 26 int size = (num + 1) * array->elem_size; in snd_array_new() [all …]
|
| /kernel/linux/linux-5.10/drivers/md/persistent-data/ |
| D | dm-array.h | 14 * The dm-array is a persistent version of an array. It packs the data 25 * size along with the array root in your encompassing data. 27 * Array entries are indexed via an unsigned integer starting from zero. 28 * Arrays are not sparse; if you resize an array to have 'n' entries then 33 * a) initialise a dm_array_info structure. This describes the array 39 * disk that holds a particular instance of an array. You may have a 41 * want to create a brand new, empty array with dm_array_empty(). 45 * root for a _new_ array. If you've incremented the old root, via 49 * c) resize an array with dm_array_resize(). 51 * d) Get a value from the array with dm_array_get_value(). [all …]
|
| /kernel/linux/linux-6.6/drivers/md/persistent-data/ |
| D | dm-array.h | 15 * The dm-array is a persistent version of an array. It packs the data 26 * size along with the array root in your encompassing data. 28 * Array entries are indexed via an unsigned integer starting from zero. 29 * Arrays are not sparse; if you resize an array to have 'n' entries then 34 * a) initialise a dm_array_info structure. This describes the array 40 * disk that holds a particular instance of an array. You may have a 42 * want to create a brand new, empty array with dm_array_empty(). 46 * root for a _new_ array. If you've incremented the old root, via 50 * c) resize an array with dm_array_resize(). 52 * d) Get a value from the array with dm_array_get_value(). [all …]
|
| /kernel/linux/linux-6.6/kernel/bpf/ |
| D | arraymap.c | 22 static void bpf_array_free_percpu(struct bpf_array *array) in bpf_array_free_percpu() argument 26 for (i = 0; i < array->map.max_entries; i++) { in bpf_array_free_percpu() 27 free_percpu(array->pptrs[i]); in bpf_array_free_percpu() 32 static int bpf_array_alloc_percpu(struct bpf_array *array) in bpf_array_alloc_percpu() argument 37 for (i = 0; i < array->map.max_entries; i++) { in bpf_array_alloc_percpu() 38 ptr = bpf_map_alloc_percpu(&array->map, array->elem_size, 8, in bpf_array_alloc_percpu() 41 bpf_array_free_percpu(array); in bpf_array_alloc_percpu() 44 array->pptrs[i] = ptr; in bpf_array_alloc_percpu() 90 struct bpf_array *array; in array_map_alloc() local 106 /* round up array size to nearest power of 2, in array_map_alloc() [all …]
|
| D | reuseport_array.c | 52 struct reuseport_array *array = reuseport_array(map); in reuseport_array_lookup_elem() local 55 if (unlikely(index >= array->map.max_entries)) in reuseport_array_lookup_elem() 58 return rcu_dereference(array->ptrs[index]); in reuseport_array_lookup_elem() 64 struct reuseport_array *array = reuseport_array(map); in reuseport_array_delete_elem() local 72 if (!rcu_access_pointer(array->ptrs[index])) in reuseport_array_delete_elem() 77 sk = rcu_dereference_protected(array->ptrs[index], in reuseport_array_delete_elem() 82 RCU_INIT_POINTER(array->ptrs[index], NULL); in reuseport_array_delete_elem() 96 struct reuseport_array *array = reuseport_array(map); in reuseport_array_free() local 102 * array now. Hence, this function only races with in reuseport_array_free() 107 * both removing sk from "array". Who removes it in reuseport_array_free() [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/ |
| D | md.rst | 22 or, to assemble a partitionable array:: 44 level of the RAID array 92 If a raid5 or raid6 array is both dirty and degraded, it could have 98 For this reason, md will normally refuse to start such an array. This 99 requires the sysadmin to take action to explicitly start the array 104 This option is not really available if the array has the root 106 array, md supports a module parameter ``start_dirty_degraded`` which, 131 An array is ``created`` by writing appropriate superblocks to all 138 An array should be created by a user-space tool. This will write 139 superblocks to all devices. It will usually mark the array as [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/ |
| D | md.rst | 22 or, to assemble a partitionable array:: 44 level of the RAID array 92 If a raid5 or raid6 array is both dirty and degraded, it could have 98 For this reason, md will normally refuse to start such an array. This 99 requires the sysadmin to take action to explicitly start the array 104 This option is not really available if the array has the root 106 array, md supports a module parameter ``start_dirty_degraded`` which, 131 An array is ``created`` by writing appropriate superblocks to all 138 An array should be created by a user-space tool. This will write 139 superblocks to all devices. It will usually mark the array as [all …]
|
| /kernel/linux/linux-5.10/kernel/bpf/ |
| D | arraymap.c | 21 static void bpf_array_free_percpu(struct bpf_array *array) in bpf_array_free_percpu() argument 25 for (i = 0; i < array->map.max_entries; i++) { in bpf_array_free_percpu() 26 free_percpu(array->pptrs[i]); in bpf_array_free_percpu() 31 static int bpf_array_alloc_percpu(struct bpf_array *array) in bpf_array_alloc_percpu() argument 36 for (i = 0; i < array->map.max_entries; i++) { in bpf_array_alloc_percpu() 37 ptr = __alloc_percpu_gfp(array->elem_size, 8, in bpf_array_alloc_percpu() 40 bpf_array_free_percpu(array); in bpf_array_alloc_percpu() 43 array->pptrs[i] = ptr; in bpf_array_alloc_percpu() 89 struct bpf_array *array; in array_map_alloc() local 105 /* round up array size to nearest power of 2, in array_map_alloc() [all …]
|
| D | reuseport_array.c | 54 struct reuseport_array *array = reuseport_array(map); in reuseport_array_lookup_elem() local 57 if (unlikely(index >= array->map.max_entries)) in reuseport_array_lookup_elem() 60 return rcu_dereference(array->ptrs[index]); in reuseport_array_lookup_elem() 66 struct reuseport_array *array = reuseport_array(map); in reuseport_array_delete_elem() local 74 if (!rcu_access_pointer(array->ptrs[index])) in reuseport_array_delete_elem() 79 sk = rcu_dereference_protected(array->ptrs[index], in reuseport_array_delete_elem() 84 RCU_INIT_POINTER(array->ptrs[index], NULL); in reuseport_array_delete_elem() 98 struct reuseport_array *array = reuseport_array(map); in reuseport_array_free() local 104 * array now. Hence, this function only races with in reuseport_array_free() 109 * both removing sk from "array". Who removes it in reuseport_array_free() [all …]
|
| /kernel/linux/linux-6.6/drivers/accel/habanalabs/common/ |
| D | security.c | 24 * hl_get_pb_block - return the relevant block within the block array 28 * @pb_blocks: blocks array 29 * @array_size: blocks array size 56 * @sgs_entry: pb array 82 * @pb_blocks: blocks array 83 * @sgs_array: pb array 84 * @array_size: blocks array size 111 * @pb_blocks: blocks array 112 * @sgs_array: pb array 113 * @array_size: blocks array size [all …]
|
| /kernel/linux/linux-6.6/kernel/ |
| D | stacktrace.c | 20 * @entries: Pointer to storage array 21 * @nr_entries: Number of entries in the storage array 41 * @entries: Pointer to storage array 42 * @nr_entries: Number of entries in the storage array 105 * stack_trace_save - Save a stack trace into a storage array 106 * @store: Pointer to storage array 107 * @size: Size of the storage array 128 * stack_trace_save_tsk - Save a task stack trace into a storage array 130 * @store: Pointer to storage array 131 * @size: Size of the storage array [all …]
|
| /kernel/linux/linux-5.10/Documentation/core-api/ |
| D | assoc_array.rst | 2 Generic Associative Array Implementation 8 This associative array implementation is an object container with the following 18 2. Objects do not need to contain linkage blocks for use by the array. This 20 Rather, the array is made up of metadata blocks that point to objects. 22 3. Objects require index keys to locate them within the array. 25 already in the array will replace the old object. 32 7. Index keys can include a hash to scatter objects throughout the array. 34 8. The array can iterated over. The objects will not necessarily come out in 37 9. The array can be iterated over while it is being modified, provided the 43 10. Objects in the array can be looked up by means of their index key. [all …]
|
| /kernel/linux/linux-6.6/Documentation/core-api/ |
| D | assoc_array.rst | 2 Generic Associative Array Implementation 8 This associative array implementation is an object container with the following 18 2. Objects do not need to contain linkage blocks for use by the array. This 20 Rather, the array is made up of metadata blocks that point to objects. 22 3. Objects require index keys to locate them within the array. 25 already in the array will replace the old object. 32 7. Index keys can include a hash to scatter objects throughout the array. 34 8. The array can iterated over. The objects will not necessarily come out in 37 9. The array can be iterated over while it is being modified, provided the 43 10. Objects in the array can be looked up by means of their index key. [all …]
|
| /kernel/linux/linux-5.10/kernel/ |
| D | stacktrace.c | 19 * @entries: Pointer to storage array 20 * @nr_entries: Number of entries in the storage array 40 * @entries: Pointer to storage array 41 * @nr_entries: Number of entries in the storage array 104 * stack_trace_save - Save a stack trace into a storage array 105 * @store: Pointer to storage array 106 * @size: Size of the storage array 127 * stack_trace_save_tsk - Save a task stack trace into a storage array 129 * @store: Pointer to storage array 130 * @size: Size of the storage array [all …]
|
| /kernel/linux/linux-5.10/Documentation/RCU/ |
| D | arrayRCU.rst | 16 array that is separately indexed. It might be tempting to consider use 17 of RCU to instead protect the index into an array, however, this use 34 Hash tables are often implemented as an array, where each array entry 37 to other array-of-list situations, such as radix trees. 45 located in each array element, and where the array is never resized, 61 function formerly used by the System V IPC code. The array is used 70 the new array, and invokes ipc_rcu_putref() to free up the old array. 102 * contents of the new array are visible before the new 103 * array becomes visible. 111 The ipc_rcu_putref() function decrements the array's reference count [all …]
|
| /kernel/linux/linux-6.6/drivers/infiniband/hw/mthca/ |
| D | mthca_allocator.c | 106 * Array of pointers with lazy allocation of leaf pages. Callers of 108 * serialize access to the array. 113 void *mthca_array_get(struct mthca_array *array, int index) in mthca_array_get() argument 117 if (array->page_list[p].page) in mthca_array_get() 118 return array->page_list[p].page[index & MTHCA_ARRAY_MASK]; in mthca_array_get() 123 int mthca_array_set(struct mthca_array *array, int index, void *value) in mthca_array_set() argument 128 if (!array->page_list[p].page) in mthca_array_set() 129 array->page_list[p].page = (void **) get_zeroed_page(GFP_ATOMIC); in mthca_array_set() 131 if (!array->page_list[p].page) in mthca_array_set() 134 array->page_list[p].page[index & MTHCA_ARRAY_MASK] = value; in mthca_array_set() [all …]
|
| /kernel/linux/linux-5.10/drivers/infiniband/hw/mthca/ |
| D | mthca_allocator.c | 111 * Array of pointers with lazy allocation of leaf pages. Callers of 113 * serialize access to the array. 118 void *mthca_array_get(struct mthca_array *array, int index) in mthca_array_get() argument 122 if (array->page_list[p].page) in mthca_array_get() 123 return array->page_list[p].page[index & MTHCA_ARRAY_MASK]; in mthca_array_get() 128 int mthca_array_set(struct mthca_array *array, int index, void *value) in mthca_array_set() argument 133 if (!array->page_list[p].page) in mthca_array_set() 134 array->page_list[p].page = (void **) get_zeroed_page(GFP_ATOMIC); in mthca_array_set() 136 if (!array->page_list[p].page) in mthca_array_set() 139 array->page_list[p].page[index & MTHCA_ARRAY_MASK] = value; in mthca_array_set() [all …]
|