1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::drivers::{KEYBOARD_DEVICE, MOUSE_DEVICE};
use crate::task::current_task;
pub fn sys_event_get() -> isize {
trace!(
"kernel:pid[{}] sys_event_get",
current_task().unwrap().process.upgrade().unwrap().getpid()
);
let kb = KEYBOARD_DEVICE.clone();
let mouse = MOUSE_DEVICE.clone();
if !kb.is_empty() {
kb.read_event() as isize
} else if !mouse.is_empty() {
mouse.read_event() as isize
} else {
0
}
}
use crate::drivers::chardev::UART;
pub fn sys_key_pressed() -> isize {
trace!(
"kernel:pid[{}] sys_key_pressed",
current_task().unwrap().process.upgrade().unwrap().getpid()
);
let res = !UART.read_buffer_is_empty();
if res {
1
} else {
0
}
}