Skip to content
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

Closed
12 of 14 tasks
josephlr opened this issue Oct 16, 2020 · 7 comments
Closed
12 of 14 tasks

Tracking issue for breaking changes #193

josephlr opened this issue Oct 16, 2020 · 7 comments

Comments

@josephlr
Copy link
Contributor

josephlr commented Oct 16, 2020

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:

@phil-opp
Copy link
Member

Sounds good to me!

Make PhysToVirt actually map PhysAddr to VirtAddr (instead of returning a pointer)

You mean changing the function signature to something like fn phys_to_virt(&self, phys_addr: PhysAddr) -> VirtAddr? This would make sense to me. The current signature could become an private function for the MappedPageTable type.

@phil-opp
Copy link
Member

(I added #199 to the list.)

@phil-opp
Copy link
Member

(I added #207 to the list)

@phil-opp
Copy link
Member

I implemented most changes in the next branch. The two remaining items are:

  • Remove PhysFrameRange, PhysFrameRangeInclusive, etc.
    • Not possible until Step trait is stable
    • Implementing the Step trait on nightly only is possible as a non-breaking change
  • Use correct types for InterruptStackFrameValue
    • I'm not sure what to do about the segment selectors, which are pushed as u64 even though they are only 16 bit

@mental32
Copy link
Member

I'm not sure what to do about the segment selectors, which are pushed as u64 even though they are only 16 bit

Could a padded newtype work?

#[repr(C)]
struct PaddedSegmentSelector {
    inner: SegmentSelector,
    _u16: u16,
    _u32: u32,
}

@phil-opp
Copy link
Member

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.

@josephlr
Copy link
Contributor Author

josephlr commented Jun 4, 2021

Closing as #262 now tracks the 0.15 release.

@josephlr josephlr closed this as completed Jun 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants