File tree Expand file tree Collapse file tree 1 file changed +11
-17
lines changed
src/structures/paging/mapper Expand file tree Collapse file tree 1 file changed +11
-17
lines changed Original file line number Diff line number Diff line change @@ -224,24 +224,18 @@ pub trait Mapper<S: PageSize> {
224
224
Self : Sized ,
225
225
A : FrameAllocator < Size4KiB > + ?Sized ,
226
226
{
227
- assert_eq ! ( pages. count( ) , frames. count( ) ) ;
227
+ let parent_table_flags = flags
228
+ & ( PageTableFlags :: PRESENT
229
+ | PageTableFlags :: WRITABLE
230
+ | PageTableFlags :: USER_ACCESSIBLE ) ;
228
231
229
- pages
230
- . zip ( frames)
231
- . try_for_each ( |( page, frame) | {
232
- self . map_to ( page, frame, flags, frame_allocator)
233
- . map ( |_| ( ) )
234
- . map_err ( |e| {
235
- (
236
- e,
237
- MapperFlushRange :: new ( PageRange {
238
- start : pages. start ,
239
- end : page,
240
- } ) ,
241
- )
242
- } )
243
- } )
244
- . map ( |_| MapperFlushRange :: new ( pages) )
232
+ self . map_to_range_with_table_flags (
233
+ pages,
234
+ frames,
235
+ flags,
236
+ parent_table_flags,
237
+ frame_allocator,
238
+ )
245
239
}
246
240
247
241
/// Creates a new mapping in the page table.
You can’t perform that action at this time.
0 commit comments