Lines Matching refs:mask
50 static void slice_print_mask(const char *label, struct slice_mask mask) in slice_print_mask() argument
59 *(p++) = (mask.low_slices & (1 << i)) ? '1' : '0'; in slice_print_mask()
64 *(p++) = (mask.high_slices & (1ul << i)) ? '1' : '0'; in slice_print_mask()
74 static void slice_print_mask(const char *label, struct slice_mask mask) {} in slice_print_mask() argument
174 static int slice_check_fit(struct slice_mask mask, struct slice_mask available) in slice_check_fit() argument
176 return (mask.low_slices & available.low_slices) == mask.low_slices && in slice_check_fit()
177 (mask.high_slices & available.high_slices) == mask.high_slices; in slice_check_fit()
196 static void slice_convert(struct mm_struct *mm, struct slice_mask mask, int psize) in slice_convert() argument
205 slice_print_mask(" mask", mask); in slice_convert()
214 if (mask.low_slices & (1u << i)) in slice_convert()
225 if (mask.high_slices & (1ul << i)) in slice_convert()
359 struct slice_mask mask, int psize, in slice_find_area() argument
363 return slice_find_area_topdown(mm, len, mask, psize); in slice_find_area()
365 return slice_find_area_bottomup(mm, len, mask, psize); in slice_find_area()
388 struct slice_mask mask = {0, 0}; in slice_get_unmapped_area() local
460 mask = slice_range_to_mask(addr, len); in slice_get_unmapped_area()
461 slice_print_mask(" mask", mask); in slice_get_unmapped_area()
466 if (slice_check_fit(mask, good_mask)) { in slice_get_unmapped_area()
491 if ((addr != 0 || fixed) && slice_check_fit(mask, potential_mask)) { in slice_get_unmapped_area()
530 mask = slice_range_to_mask(addr, len); in slice_get_unmapped_area()
532 slice_print_mask(" mask", mask); in slice_get_unmapped_area()
535 andnot_mask(mask, good_mask); in slice_get_unmapped_area()
536 andnot_mask(mask, compat_mask); in slice_get_unmapped_area()
537 if (mask.low_slices || mask.high_slices) { in slice_get_unmapped_area()
538 slice_convert(mm, mask, psize); in slice_get_unmapped_area()
651 struct slice_mask mask = slice_range_to_mask(start, len); in slice_set_range_psize() local
653 slice_convert(mm, mask, psize); in slice_set_range_psize()
679 struct slice_mask mask, available; in is_hugepage_only_range() local
682 mask = slice_range_to_mask(addr, len); in is_hugepage_only_range()
696 slice_print_mask(" mask", mask); in is_hugepage_only_range()
699 return !slice_check_fit(mask, available); in is_hugepage_only_range()