99#include " system/PageAllocator.hxx"
1010#include " system/HugePage.hxx"
1111#include " system/VmaName.hxx"
12+ #include " util/DivideRoundUp.hxx"
1213#include " util/Poison.h"
1314
1415#include < cstdint>
@@ -23,12 +24,6 @@ align_size(std::size_t size) noexcept
2324 return RoundUpToPowerOfTwo (size, (std::size_t )0x20 );
2425}
2526
26- static constexpr unsigned
27- divide_round_up (unsigned a, unsigned b) noexcept
28- {
29- return (a + b - 1 ) / b;
30- }
31-
3227/*
3328 * SliceArea methods
3429 *
@@ -174,7 +169,7 @@ SliceArea::PunchSliceRange(unsigned start,
174169{
175170 assert (start <= end);
176171
177- unsigned start_page = divide_round_up (start, pool.slices_per_page )
172+ unsigned start_page = DivideRoundUp (start, pool.slices_per_page )
178173 * pool.pages_per_slice ;
179174 unsigned end_page = (start / pool.slices_per_page )
180175 * pool.pages_per_slice ;
@@ -223,8 +218,8 @@ SlicePool::SlicePool(std::size_t _slice_size, unsigned _slices_per_area,
223218 slices_per_page = PAGE_SIZE / slice_size;
224219 pages_per_slice = 1 ;
225220
226- pages_per_area = divide_round_up (_slices_per_area,
227- slices_per_page);
221+ pages_per_area = DivideRoundUp (_slices_per_area,
222+ slices_per_page);
228223 } else {
229224 slice_size = AlignToPageSize (_slice_size);
230225
@@ -237,7 +232,7 @@ SlicePool::SlicePool(std::size_t _slice_size, unsigned _slices_per_area,
237232 slices_per_area = (pages_per_area / pages_per_slice) * slices_per_page;
238233
239234 const std::size_t header_size = SliceArea::GetHeaderSize (slices_per_area);
240- header_pages = divide_round_up (header_size, PAGE_SIZE);
235+ header_pages = DivideRoundUp (header_size, PAGE_SIZE);
241236
242237 area_size = PAGE_SIZE * (header_pages + pages_per_area);
243238}
0 commit comments