add get input_dev events in user app, but still have some problems

This commit is contained in:
Yu Chen 2023-01-07 23:35:11 +08:00
parent 2dfd195841
commit a67f3f0d2f
8 changed files with 151 additions and 30 deletions

View file

@ -0,0 +1,21 @@
#![no_std]
#![no_main]
use user_lib::{event_get};
#[macro_use]
extern crate user_lib;
#[no_mangle]
pub fn main() -> i32 {
println!("Input device event test");
let mut event=0;
for _ in 0..3 {
while event==0 {
event = event_get();
}
println!("event: {:?}", event);
}
0
}

View file

@ -205,6 +205,11 @@ pub fn framebuffer_flush() -> isize {
sys_framebuffer_flush()
}
pub fn event_get() -> isize {
sys_event_get()
}
#[macro_export]
macro_rules! vstore {
($var_ref: expr, $value: expr) => {

View file

@ -27,6 +27,7 @@ const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
const SYSCALL_CONDVAR_WAIT: usize = 1032;
const SYSCALL_FRAMEBUFFER: usize = 2000;
const SYSCALL_FRAMEBUFFER_FLUSH: usize = 2001;
const SYSCALL_EVENT_GET: usize = 3000;
fn syscall(id: usize, args: [usize; 3]) -> isize {
let mut ret: isize;
@ -164,4 +165,8 @@ pub fn sys_framebuffer() -> isize {
pub fn sys_framebuffer_flush() -> isize {
syscall(SYSCALL_FRAMEBUFFER_FLUSH, [0, 0, 0])
}
pub fn sys_event_get() -> isize {
syscall(SYSCALL_EVENT_GET, [0, 0, 0])
}