Lines Matching +full:align +full:- +full:end

1 // SPDX-License-Identifier: GPL-2.0
88 return -1; in get_random()
101 for (j = i - 1; j >= 0 && res[j].start > tmp.start; j--) in sort_reserved_ranges()
107 static unsigned long iterate_valid_positions(unsigned long size, unsigned long align, in iterate_valid_positions() argument
112 unsigned long start, end, tmp_end, range_pos, pos = 0; in iterate_valid_positions() local
117 align = max(align, 8UL); in iterate_valid_positions()
118 _min = round_up(_min, align); in iterate_valid_positions()
119 for_each_physmem_usable_range(i, &start, &end) { in iterate_valid_positions()
120 if (_min >= end) in iterate_valid_positions()
122 start = round_up(start, align); in iterate_valid_positions()
126 end = min(_max, end); in iterate_valid_positions()
128 while (start + size <= end) { in iterate_valid_positions()
130 while (res && res->end <= start) { in iterate_valid_positions()
136 tmp_end = end; in iterate_valid_positions()
138 if (res && res->start < end) { in iterate_valid_positions()
140 tmp_end = res->start; in iterate_valid_positions()
143 range_pos = (tmp_end - start - size) / align + 1; in iterate_valid_positions()
148 return start + (find_pos - 1) * align; in iterate_valid_positions()
149 find_pos -= range_pos; in iterate_valid_positions()
154 start = round_up(skip_res->end, align); in iterate_valid_positions()
172 * top down from the end of online memory. physmem_alloc_pos represents
182 unsigned long randomize_within_range(unsigned long size, unsigned long align, in randomize_within_range() argument
192 max_pos = iterate_valid_positions(size, align, min, max, res, ARRAY_SIZE(res), true, 0); in randomize_within_range()
197 return iterate_valid_positions(size, align, min, max, res, ARRAY_SIZE(res), false, pos + 1); in randomize_within_range()