Lines Matching full:keys

17  * keys to be sorted.
23 /* Sort keys are pointers to immutable fixed-length arrays of bytes. */
27 * The keys are separated into piles based on the byte in each keys at the current offset, so the
28 * number of keys with each byte must be counted.
52 /* The number of bytes remaining in the sort keys. */
65 /* Compare a segment of two fixed-length keys starting at an offset. */
71 /* Insert the next unsorted key into an array of sorted keys. */
88 * 256-way radix sort when the number of keys to sort is small.
118 * Count the number of times each byte value appears in the arrays of keys to sort at the current
157 * After the keys are moved to the appropriate pile, we'll need to sort each of the piles by the
158 * next radix position. A new task is put on the stack for each pile containing lots of keys, or a
159 * new task is put on the list for each pile containing few keys.
168 * @length: the number of bytes remaining in the sort keys
187 /* There's no need to sort empty keys. */ in push_bins()
231 * Sort pointers to fixed-length keys (arrays of bytes) using a radix sort. The sort implementation
232 * is unstable, so the relative ordering of equal keys is not preserved.
234 int uds_radix_sort(struct radix_sorter *sorter, const unsigned char *keys[], in uds_radix_sort() argument
242 /* All zero-length keys are identical and therefore already sorted. */ in uds_radix_sort()
246 /* The initial task is to sort the entire length of all the keys. */ in uds_radix_sort()
248 .first_key = keys, in uds_radix_sort()
249 .last_key = &keys[count - 1], in uds_radix_sort()
265 * processed, the stack will be empty and all the keys in the starting task will be fully in uds_radix_sort()
322 * When the number of keys in a task gets small enough, it is faster to use an in uds_radix_sort()