Lines Matching full:an

12 The XArray is an abstract data type which behaves like a very large array
36 objects, as long as those objects have an alignment of at least 4.
39 You must first convert it into an entry using xa_mk_value().
40 When you retrieve an entry from the XArray, you can check whether it is
42 an integer by calling xa_to_value().
45 described above. They can call xa_tag_pointer() to create an
47 back into an untagged pointer and xa_pointer_tag() to retrieve
48 the tag of an entry. Tagged pointers use the same bits that are used
56 An unusual feature of the XArray is the ability to create entries which
67 Start by initialising an XArray, either with DEFINE_XARRAY()
76 ``NULL`` entry. There is no difference between an entry that has never
80 You can conditionally replace an entry at an index by using
86 If you want to only store a new entry to an index if the current entry
90 You can enquire whether a mark is set on an entry by using
92 on it by using xa_set_mark() and remove the mark from an entry by
122 Finally, you can remove all entries from an XArray by calling
134 You can call xa_alloc() to store the entry at an unused index
142 To free an entry, use xa_erase() (or xa_release() if
151 You cannot use ``XA_MARK_0`` with an allocating XArray as this mark
152 is used to track whether an entry is free or not. The other marks are
166 special value which can be turned into an errno using xa_err().
174 The XArray uses RCU and an internal spinlock to synchronise access:
227 avoid dereferencing freed memory, but an explanation of that is beyond
286 available for situations where you look up an entry and want to atomically
294 cost of an interface which can be harder to use and has fewer safeguards.
302 The advanced API is based around the xa_state. This is an opaque data
311 the xa_state is in an error state before proceeding, so there's no need
312 for you to check for an error after each call; you can make multiple
318 If the xa_state is holding an ``ENOMEM`` error, calling xas_nomem()
347 - An XArray node. May be visible when using a multi-index xa_state.
364 an entry in the XArray which can be used to reserve the index for
378 You can use xas_init_marks() to reset the marks on an entry
400 if the cursor has been walked to an entry, then it will find the next
417 is in an appropriate state to continue the iteration after the entry
450 meaningful, potentially being an internal entry or ``NULL`` even when there
451 is an entry stored within the range. Calling xas_find_conflict()
457 in the xa_state will not be changed. When iterating over an XArray