Skip to content

Full PIC 8259 configuration API for x86 systems #8

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

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

not-forest
Copy link

The whole implementation was rewritten with all main API function preserved. The reimplementation aligns with the Intel datasheet specifications, with proper operation modes and spurious interrupts handling. (Features for x86 which are not well described within the datasheet are not implemented)

Main changes:

  • Implemented proper detection and handling of spurious interrupts;
  • More flexible and safer EOI commands;
  • Four Operation Modes (Fully Nested, Automatic Rotation, Special Mask, Polled);
  • Structures based on bitflags crate, which define all ICW,OCW commands;
  • Better IRQ masking;
  • Detailed docs/example in the main module;

…ledMode. Added poll command to perform interrupt polling.
…o use it in chained configuration. Added proper asserts. Added function to swap modes at runtime. Added example at the top of this module.
… between modes. Added all EOI routine for all modes. Saving poll flag from being cleared when reading the IRR or ISR. Added the priority change function. Added the special mask mode handling.
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

Successfully merging this pull request may close these issues.

1 participant