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::Entry
andidt::EntryOptions
structures to move the code selector intoEntryOptions
. Also, introduce theInterruptFn
trait 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_trait
to implementStep
forPhysFrame
andPage
. See Implementcore::iter::Step
forPhysFrame
andPage
#212 . This may or may not be a breaking change, depending on how we handlePageRange
/PageRangeInclusive
/etc....- Given that
step_trait
isn'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_segment
should be aSegmentSelector
(what about padding?)cpu_flags
should be aRFlags
changecpu_flags
's type toRFlags
#324stack_segment
should be aSegmentSelector
(what about padding?)- What about non-canonical
rip
andrsp
?
- Rename control flags to have better names
Cr4Flags::PROTECTION_KEY
=>Cr4Flags::PROTECTION_KEY_USER
XCr0Flags::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
VirtAddrNotValid
andPhysAddrNotValid
to actually contain the invalid address instead of just containing the bad high bits. Done in Fix:VirtAddrNotValid
andPhysAddrNotValid
should contain the whole address #347 against themaster
branch. - Remove
usize
impls forAdd
/Sub
onVirtAddr
/PhysAddr
, see DefineCheckedAdd
andCheckedSub
traits #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_tss
andGlobalDescriptorTable
#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