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

Implement copy for volatile? #9

Closed
BuggStream opened this issue Nov 7, 2019 · 4 comments
Closed

Implement copy for volatile? #9

BuggStream opened this issue Nov 7, 2019 · 4 comments

Comments

@BuggStream
Copy link

BuggStream commented Nov 7, 2019

So I have been following the 'Writing an OS in Rust' guide. And while I was experimenting and reading through the code I noticed that Copy hasn't been implemented for Volatile.

This could be useful when writing code:

impl<T: Copy> Copy for Volatile<T> {
    // Empty.
}

After this the new line function for the VGA buffer can be implemented as follows:

fn new_line(&mut self) {
    &self.buffer.chars.copy_within(1.., 0);
        
    self.clear_row(BUFFER_HEIGHT - 1);
    self.column_position = 0;
}

Now I did notice that copy_within uses the normal ptr::copy instead of volatile_copy_memory. Is this a potential issue?

Anyway let me know if you want to add this, if so I will make a short MR.

@videah
Copy link

videah commented Nov 8, 2019

See #6 (comment) and #5 (comment) as to why this hasn't been done yet.

I would like to see VolatileArray be implemented, is that possible now? @phil-opp

@BuggStream
Copy link
Author

See #6 (comment) and #5 (comment) as to why this hasn't been done yet.

I would like to see VolatileArray be implemented, is that possible now? @phil-opp

Oh it seems like I forgot to look at the MRs to check if this was already asked. Sorry about that. Anyway thanks for your answer.

I'd also be interested to know if something like VolatileArray could be useful.

@phil-opp
Copy link
Member

I think it should be possible to implement VolatileArray and VolatileSlice types now that we have basic support for const generics in Rust, but I'm not 100% sure.

@phil-opp
Copy link
Member

The new v0.5.0 release includes both a VolatilePtr type that implements Copy and (unstable) methods for accessing slices and arrays.

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