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 @@ -222,24 +222,18 @@ pub trait Mapper<S: PageSize> {
222
222
Self : Sized ,
223
223
A : FrameAllocator < Size4KiB > + ?Sized ,
224
224
{
225
- assert_eq ! ( pages. count( ) , frames. count( ) ) ;
225
+ let parent_table_flags = flags
226
+ & ( PageTableFlags :: PRESENT
227
+ | PageTableFlags :: WRITABLE
228
+ | PageTableFlags :: USER_ACCESSIBLE ) ;
226
229
227
- pages
228
- . zip ( frames)
229
- . try_for_each ( |( page, frame) | {
230
- self . map_to ( page, frame, flags, frame_allocator)
231
- . map ( |_| ( ) )
232
- . map_err ( |e| {
233
- (
234
- e,
235
- MapperFlushRange :: new ( PageRange {
236
- start : pages. start ,
237
- end : page,
238
- } ) ,
239
- )
240
- } )
241
- } )
242
- . map ( |_| MapperFlushRange :: new ( pages) )
230
+ self . map_to_range_with_table_flags (
231
+ pages,
232
+ frames,
233
+ flags,
234
+ parent_table_flags,
235
+ frame_allocator,
236
+ )
243
237
}
244
238
245
239
/// Creates a new mapping in the page table.
You can’t perform that action at this time.
0 commit comments