intermezzOS / kernel

A hobby operating system, in Rust
http://intermezzos.github.io/
Apache License 2.0
1.39k stars 90 forks source link

Interrupt refactor #31

Closed steveklabnik closed 8 years ago

steveklabnik commented 8 years ago

This is a big refactoring of the way interrupts are handled. I took some inspiration from @phil-opp, @emk, Redox, (specifically, @ticki) and an inb/outb combo from @thepowersgang. All different bits of their OSes' code and several OSDev/OSDevr tutorials. Whew!

These commits should probably be cleaned up, and this isn't even quite in a final state; I should be using a lazy_static rather than making things Copy, and I would like to move a lot of these home-grown structures to the x86 crate instead. But before I do, I wanted to have written it all myself. Ha!

Thoughts, all?

ticki commented 8 years ago

Awesome work! It seems that you don't use naked functions? Why not?

steveklabnik commented 8 years ago

@ticki @eddyb I should. this code originally landed since before naked functions had existed, but now that they do, i should make use of them.

WilsonGiese commented 8 years ago

I've been following along with your development and it's looking great to me! Excited for the upcoming work on the kernel 👍

steveklabnik commented 8 years ago

Merging this for now, because it's still an improvement. I'll open issues for the other stuff.