Undo some changes
This commit is contained in:
@@ -76,9 +76,9 @@ enum MouseCommandData {
|
||||
}
|
||||
|
||||
pub struct Ps2 {
|
||||
pub data: Pio<u8>,
|
||||
pub status: ReadOnly<Pio<u8>>,
|
||||
pub command: WriteOnly<Pio<u8>>
|
||||
data: Pio<u8>,
|
||||
status: ReadOnly<Pio<u8>>,
|
||||
command: WriteOnly<Pio<u8>>
|
||||
}
|
||||
|
||||
impl Ps2 {
|
||||
|
||||
+6
-7
@@ -4,7 +4,6 @@ use std::io::Write;
|
||||
use std::os::unix::io::AsRawFd;
|
||||
use std::str;
|
||||
use syscall;
|
||||
use syscall::Io;
|
||||
|
||||
use crate::controller::Ps2;
|
||||
use crate::vm;
|
||||
@@ -83,13 +82,13 @@ impl<F: Fn(u8,bool) -> char> Ps2d<F> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn irq(&mut self, keyboard: bool) {
|
||||
self.handle(keyboard, self.ps2.data.read());
|
||||
pub fn irq(&mut self) {
|
||||
while let Some((keyboard, data)) = self.ps2.next() {
|
||||
self.handle(keyboard, data);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn handle(&mut self, keyboard: bool, data: u8) {
|
||||
println!("{}{:x}", if keyboard { 'k' } else { 'm' }, data);
|
||||
|
||||
if keyboard {
|
||||
let (scancode, pressed) = if data >= 0x80 {
|
||||
(data - 0x80, false)
|
||||
@@ -175,7 +174,7 @@ impl<F: Fn(u8,bool) -> char> Ps2d<F> {
|
||||
|
||||
let flags = MousePacketFlags::from_bits_truncate(self.packets[0]);
|
||||
if ! flags.contains(ALWAYS_ON) {
|
||||
panic!("ps2d: mouse misalign {:X}", self.packets[0]);
|
||||
println!("ps2d: mouse misalign {:X}", self.packets[0]);
|
||||
|
||||
self.packets = [0; 4];
|
||||
self.packet_i = 0;
|
||||
@@ -228,7 +227,7 @@ impl<F: Fn(u8,bool) -> char> Ps2d<F> {
|
||||
}.to_event()).expect("ps2d: failed to write button event");
|
||||
}
|
||||
} else {
|
||||
panic!("ps2d: overflow {:X} {:X} {:X} {:X}", self.packets[0], self.packets[1], self.packets[2], self.packets[3]);
|
||||
println!("ps2d: overflow {:X} {:X} {:X} {:X}", self.packets[0], self.packets[1], self.packets[2], self.packets[3]);
|
||||
}
|
||||
|
||||
self.packets = [0; 4];
|
||||
|
||||
Reference in New Issue
Block a user