Lines Matching +full:align +full:- +full:size

1 // SPDX-License-Identifier: GPL-2.0
88 return -1; in get_random()
94 static void sort_reserved_ranges(struct reserved_range *res, unsigned long size) in sort_reserved_ranges() argument
99 for (i = 1; i < size; i++) { in sort_reserved_ranges()
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
117 align = max(align, 8UL); in iterate_valid_positions()
118 _min = round_up(_min, align); in iterate_valid_positions()
122 start = round_up(start, align); in iterate_valid_positions()
128 while (start + size <= end) { in iterate_valid_positions()
130 while (res && res->end <= start) { in iterate_valid_positions()
138 if (res && res->start < end) { in iterate_valid_positions()
140 tmp_end = res->start; in iterate_valid_positions()
142 if (start + size <= tmp_end) { 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()
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()