    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    mod inode;
    mod stdio;

    use crate::mm::UserBuffer;

    pub trait File: Send + Sync {
        fn readable(&self) -> bool;
        fn writable(&self) -> bool;
        fn read(&self, buf: UserBuffer) -> usize;
        fn write(&self, buf: UserBuffer) -> usize;
    }

    pub use inode::{list_apps, open_file, OSInode, OpenFlags};
    pub use stdio::{Stdin, Stdout};