vesad: Update redox_syscall

This commit is contained in:
jD91mZM2
2020-08-17 14:39:17 +02:00
parent 31bae74334
commit 321f708d0f
7 changed files with 29 additions and 20 deletions
+8 -8
View File
@@ -2,7 +2,7 @@ use std::collections::BTreeMap;
use std::{mem, slice, str};
use orbclient::{Event, EventOption};
use syscall::{Result, Error, EACCES, EBADF, EINVAL, ENOENT, O_NONBLOCK, Map, SchemeMut};
use syscall::{Error, EventFlags, EACCES, EBADF, EINVAL, ENOENT, Map, O_NONBLOCK, Result, SchemeMut};
use crate::display::Display;
use crate::screen::{Screen, GraphicScreen, TextScreen};
@@ -17,7 +17,7 @@ pub enum HandleKind {
pub struct Handle {
pub kind: HandleKind,
pub flags: usize,
pub events: usize,
pub events: EventFlags,
pub notified_read: bool
}
@@ -81,7 +81,7 @@ impl SchemeMut for DisplayScheme {
self.handles.insert(id, Handle {
kind: HandleKind::Input,
flags: flags,
events: 0,
events: EventFlags::empty(),
notified_read: false
});
@@ -106,7 +106,7 @@ impl SchemeMut for DisplayScheme {
self.handles.insert(id, Handle {
kind: HandleKind::Screen(screen_i),
flags: flags,
events: 0,
events: EventFlags::empty(),
notified_read: false
});
@@ -132,14 +132,14 @@ impl SchemeMut for DisplayScheme {
Ok(new_id)
}
fn fevent(&mut self, id: usize, flags: usize) -> Result<usize> {
fn fevent(&mut self, id: usize, flags: syscall::EventFlags) -> Result<syscall::EventFlags> {
let handle = self.handles.get_mut(&id).ok_or(Error::new(EBADF))?;
handle.notified_read = false;
if let HandleKind::Screen(_screen_i) = handle.kind {
handle.events = flags;
Ok(0)
Ok(syscall::EventFlags::empty())
} else {
Err(Error::new(EBADF))
}
@@ -274,12 +274,12 @@ impl SchemeMut for DisplayScheme {
}
}
fn seek(&mut self, id: usize, pos: usize, whence: usize) -> Result<usize> {
fn seek(&mut self, id: usize, pos: isize, whence: usize) -> Result<isize> {
let handle = self.handles.get(&id).ok_or(Error::new(EBADF))?;
if let HandleKind::Screen(screen_i) = handle.kind {
if let Some(screen) = self.screens.get_mut(&screen_i) {
return screen.seek(pos, whence);
return screen.seek(pos, whence).map(|pos| pos as isize);
}
}