Expand description
Driver for the PS/2 keybard/mouse controller
beyound OOStuBS:
The ‘gather’ field should NEVER have imcomplete state: it should either be a valid key, or nothing. TODO what if IO ops fails or timeout? TODO figure out how to abstract the “interrupt control” layer. Keyboard controller should not be arch dependent
Structs§
- Defs 🔒
- KeyState 🔒
- we have a global controller, but we can’t use it as the “driver” because drivers should be stateless.
Enums§
Statics§
- this is the global keybard controller. It can only be used in prologue level, except for the
gather
field (consume_key is safe), which is atomic that can be safely used. (TODO maybe we can change this L3/L2 shared state abstraction)