Lines Matching refs:be
34 [!] NOTE: Pointers to objects _must_ be zero in the least significant bit.
37 permits an object to be located in multiple arrays simultaneously.
42 (4) Index keys must be unique. Inserting an object with the same key as one
45 (5) Index keys can be of any length and can be of different lengths.
55 (9) The array can be iterated over whilst it is being modified, provided the
57 circumstances, some objects may be seen more than once. If this is a
59 be missed, however, unless deleted.
61 (10) Objects in the array can be looked up by means of their index key.
63 (11) Objects can be looked up whilst the array is being modified, provided the
68 tree. To improve memory efficiency, shortcuts can be emplaced to skip over
69 what would otherwise be a series of single-occupancy nodes. Further, nodes
71 extra branch until as such time an object needs to be added to a full node.
78 The public API can be found in <linux/assoc_array.h>. The associative array is
91 The insertion and deletion functions produce an 'edit script' that can later be
93 preallocated metadata blocks that will be installed in the internal tree and
94 keeps track of the metadata blocks that will be removed from the tree when the
98 script has been applied so that they can be freed later. The freeing is done
114 will then be passed to call_rcu() to free it and any dead stuff it points
123 but must rather be released by the caller.
137 This points to a number of methods, all of which need to be provided:
144 *bit* position given by the level argument. The level argument will be a
177 Free the specified object. Note that this may be called an RCU grace
179 be necessary on module unloading.
204 significant bit of the pointer must be zero as it's used to type-mark
207 If an object already exists for that key then it will be replaced with the
208 new object and the old one will be freed automatically.
214 an edit script that must be applied. -ENOMEM is returned in the case of
233 an edit script that must be applied. -ENOMEM is returned in the case of
234 an out-of-memory error. NULL will be returned if the specified object is
250 an edit script that must be applied. -ENOMEM is returned in the case of
262 completely empty. It is not permitted for another thread to be traversing
265 something that would require memory to be allocated.
280 returns false, the object will be freed. If the iterator() function
284 The internal tree will be packed down if possible as part of the iteration
313 This may be used on an array at the same time as the array is being
316 this is a problem, then modification should be locked against. The
334 This may be used on an array at the same time as the array is being
344 The index key can be of any form, but since the algorithms aren't told how long
355 The better the scattering, the wider and lower the internal tree will be.
363 unlikely that more than one word of any particular index key will have to be
435 So, for instance, keys with the following example index keys will be found in
455 pointers - even if some of those leaves would like to be in the same slot.
458 Metadata pointers must be in the slots that match their subdivisions of key
459 space. The leaves can be in any slot not occupied by a metadata pointer. It
462 the metadata key prefix must be in the subtree that the metadata pointer points
488 It is possible for the root of the tree to be a shortcut - say, for example,
499 node, that node will be split such that at least two leaves that have a common
504 sufficiently similar, then a shortcut will be inserted into the tree.
507 fewer, then the subtree will be collapsed down to a single node - and this will
529 The metadata blocks don't change otherwise. An old leaf won't be freed
533 metadata blocks don't change otherwise. The old leaf won't be freed until
556 unchanged - and will still be rooted on the same slot, so we shouldn't