-
Notifications
You must be signed in to change notification settings - Fork 149
Open
Description
This issue tracks any breaking changes we want to make for 0.15.
NOTE: All breaking changes should be made against the next branch, this branch should then be merged in right before releasing 0.15. Also, remember to update Changelog.md.
- Change
software_interrupt!()macro to be a cosnt generic functionsoftware_interrupt<const NUM: u8>(). Done in Change software_interrupt to use min_const_generics #227 (and also replace software_interrupt! macro with generic function #259 and software_interrupt: Add additional testing #260) - Change the
idt::Entryandidt::EntryOptionsstructures to move the code selector intoEntryOptions. Also, introduce theInterruptFntrait which allows for abstracting over all function pointers that can be used as interrupt handlers. Done in idt: Fixup Options structure and cleanup set_handler_fn #226 (and also in Resubmission of #226 #261) - Use
step_traitto implementStepforPhysFrameandPage. See Implementcore::iter::StepforPhysFrameandPage#212 . This may or may not be a breaking change, depending on how we handlePageRange/PageRangeInclusive/etc....- Given that
step_traitisn't going to be stable for awhile, this doesn't seem like something we need to do for 0.15.
- Given that
- Use correct types for
InterruptStackFrameValue. See Use SegmentSelector in InterruptStackFrame #263:code_segmentshould be aSegmentSelector(what about padding?)cpu_flagsshould be aRFlagschangecpu_flags's type toRFlags#324stack_segmentshould be aSegmentSelector(what about padding?)- What about non-canonical
ripandrsp?
- Rename control flags to have better names
Cr4Flags::PROTECTION_KEY=>Cr4Flags::PROTECTION_KEY_USERXCr0Flags::YMM=>XCr0Flags::AVX- Initial PR: Add flags for CR0, CR4 and XCR0, as well as extra checks for modification of XCR0 #272
- Revised PR (without breaking changes): Add flags for CR0, CR4 and XCR0, as well as extra checks for modification of XCR0 #273
- Should we add an register abstraction? How should it work with and ? #448
- Should there be a common abstraction? Some way to traverse the two formats of XSAVE data?
- This is additive, so it can wait until after we release 0.15
- Should we change the behavior of
VirtAddr::try_new - We may also want to change
VirtAddrNotValidandPhysAddrNotValidto actually contain the invalid address instead of just containing the bad high bits. Done in Fix:VirtAddrNotValidandPhysAddrNotValidshould contain the whole address #347 against themasterbranch. - Remove
usizeimpls forAdd/SubonVirtAddr/PhysAddr, see DefineCheckedAddandCheckedSubtraits #293 (comment) Breaking change done in Remove usize trait impls #364 - Make 1.59 the unconditional MSRV. Done in Update "next" MSRV to 1.59 #359
- GlobalDescriptorTable: option/feature to increase number of entries #333 Done in Allow the GDT to be of any length #360
- Remove software_interrupt! macro #363
- Interior mutability of the GDT
- Pointed out in Allow mutation of the GDT #322
- Initial fix in fix
load_tssandGlobalDescriptorTable#323 - Add entry type in Add structures::gdt::Entry type #380
- Allow shared reference in Allow GDT to be loaded with shared reference #381
- Use an array with
from_raw_entries?
Metadata
Metadata
Assignees
Labels
No labels