-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking issue for breaking changes #193
Comments
Sounds good to me!
You mean changing the function signature to something like |
(I added #199 to the list.) |
(I added #207 to the list) |
I implemented most changes in the
|
Could a padded newtype work? #[repr(C)]
struct PaddedSegmentSelector {
inner: SegmentSelector,
_u16: u16,
_u32: u32,
} |
Yes, I think that should work. Given that most of the items from this issue are done, it might make sense to create separate tracking issues for the two remaining items and then close this one. |
Closing as #262 now tracks the 0.15 release. |
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:
PageTableFlags
in the result oftranslate
(#150feat(paging): Also return flags forMapperAllSizes::translate()
#207)MapperAllSizes
toTranslate
(RenameMapperAllSizes
toTranslate
? #152, done in Restructure theTranslateResult
type and create separateTranslate
trait #211)Potentially changing which methods are required and which are provided forMapper
(AddMapper
methods to mapPageRange
toPhysFrameRange
#192)map_range_with_table_flags
with a default implementation) does not require any breaking changes.PhysFrameRange
,PhysFrameRangeInclusive
,PageRange
,PageRangeInclusive
to instead use the Rust types.Step
trait is stablecore::iter::Step
forPhysFrame
andPage
#212MakePhysToVirt
actually mapPhysAddr
toVirtAddr
(instead of returning a pointer) (tried in Change signature of PhysToVirt::phys_to_virt #213, but it doesn't work)PhysToVirt
trait toPageTableFrameMapping
(RenamePhysToVirt
trait toPageTableFrameMapping
#214)DescriptorTablePointer::base
aVirtAddr
(makes it clear segmentation is applied before paging). (done in MakeDescriptorTablePointer::base
aVirtAddr
#215)read_rip
return a VirtAddr (done in Change return type ofread_rip
toVirtAddr
#216)InterruptStackFrameValue
:code_segment
should be aSegmentSelector
SegmentSelector
is anu16
, but the field inInterruptStackFrameValue
must be anu64
cpu_flags
should be aRFlags
stack_segment
should be aSegmentSelector
-> same problem as forcode_segment
UnusedPhysFrame
ExceptionStackFrame
VirtAddr::new_unchecked
PortReadWrite
(it no longer makes sense to have it given theconst fn
changes toPort
) (done in RemovePortReadWrite
trait, which is no longer needed #217)rflags
(done in Make writing the RFLAGS register unsafe #219)write
/write_raw
unsafe (they can cause instant UB or crashes)()
(Use custom error types instead of()
#199)MapperAllSizes::translate()
(feat(paging): Also return flags forMapperAllSizes::translate()
#207)The text was updated successfully, but these errors were encountered: