akern-gkgoat-fork/ableos/src/scheduler/capabilities.rs

65 lines
1.2 KiB
Rust

use alloc::vec::Vec;
/// Placeholder to be replaced with a proper FileReference when such a thing exists
pub type FileID = u8;
pub type SoundCardID = u8;
pub type DeviceID = u8;
pub type ControllerID = u8;
#[derive(Clone, Debug)]
pub enum FileAccess {
All,
Some(Vec<FileID>),
None,
}
#[derive(Clone, Debug)]
pub enum ControllerAccess {
All,
Some(Vec<ControllerID>),
None,
}
#[derive(Clone, Debug)]
pub enum SoundCardAccess {
All,
Some(Vec<SoundCardID>),
None,
}
#[derive(Clone, Debug)]
pub enum MouseAccess {
Yes,
No,
}
#[derive(Clone, Debug)]
pub enum KeyboardAccess {
Yes,
No,
}
#[derive(Clone, Debug)]
pub struct Capabilities {
files: FileAccess,
mouse: MouseAccess,
keyboard: KeyboardAccess,
controllers: ControllerAccess,
sound_cards: SoundCardAccess,
}
impl Capabilities {
/// Generate a set of empty capabilities
pub fn empty() -> Self {
Self {
files: FileAccess::None,
mouse: MouseAccess::No,
keyboard: KeyboardAccess::No,
controllers: ControllerAccess::None,
sound_cards: SoundCardAccess::None,
}
}
}