-
Notifications
You must be signed in to change notification settings - Fork 150
Closed
Description
Many issues/PR currently proposed would break the API of this create. This seems reasonable, but we should try to consolidate changes as much as possible. This issue tracks these changes.
Add any breaking changes you're interested in:
- Including
PageTableFlagsin the result oftranslate(#150feat(paging): Also return flags forMapperAllSizes::translate()#207) - Rename
MapperAllSizestoTranslate(RenameMapperAllSizestoTranslate? #152, done in Restructure theTranslateResulttype and create separateTranslatetrait #211) -
Potentially changing which methods are required and which are provided forMapper(AddMappermethods to mapPageRangetoPhysFrameRange#192)- The suggestion in that issue (a new
map_range_with_table_flagswith a default implementation) does not require any breaking changes.
- The suggestion in that issue (a new
- Remove
PhysFrameRange,PhysFrameRangeInclusive,PageRange,PageRangeInclusiveto instead use the Rust types.- Postponed until
Steptrait is stable - See Implement
core::iter::StepforPhysFrameandPage#212
- Postponed until
-
MakePhysToVirtactually mapPhysAddrtoVirtAddr(instead of returning a pointer) (tried in Change signature of PhysToVirt::phys_to_virt #213, but it doesn't work) - Rename
PhysToVirttrait toPageTableFrameMapping(RenamePhysToVirttrait toPageTableFrameMapping#214) - Make
DescriptorTablePointer::baseaVirtAddr(makes it clear segmentation is applied before paging). (done in MakeDescriptorTablePointer::baseaVirtAddr#215) - Make
read_ripreturn a VirtAddr (done in Change return type ofread_riptoVirtAddr#216) - Use correct types for
InterruptStackFrameValue:code_segmentshould be aSegmentSelector- unresolved problem:
SegmentSelectoris anu16, but the field inInterruptStackFrameValuemust be anu64
- unresolved problem:
cpu_flagsshould be aRFlagsstack_segmentshould be aSegmentSelector-> same problem as forcode_segment
- Remove deprecated items:
UnusedPhysFrameExceptionStackFrameVirtAddr::new_unchecked
- Remove
PortReadWrite(it no longer makes sense to have it given theconst fnchanges toPort) (done in RemovePortReadWritetrait, which is no longer needed #217) -
rflags(done in Make writing the RFLAGS register unsafe #219)- Make
write/write_rawunsafe (they can cause instant UB or crashes) - Document that reading/writing any of CF, PF, AF, ZF, SF, OF might do weird things (as Rust/LLVM use these flags)
- Document that a user should never set DF (as it must be unset in all Rust code)
- Make
- Use custom error types instead of
()(Use custom error types instead of()#199) - Also return flags for
MapperAllSizes::translate()(feat(paging): Also return flags forMapperAllSizes::translate()#207)
Metadata
Metadata
Assignees
Labels
No labels