riscv_emulator/src/os/kernel.v

53 lines
636 B
V

module main
import vm
import readline
mut kernel := none
fn start_kernel(){
kernel = Kernel{}
}
fn kill(){
kernel = none
}
struct Kernel{
pub mut:
stdin := []u8{};
stdout := []u8{};
input_device := 'keyboard'
output_device := 'screen'
}
fn (mut kernel Kernel) read()
{
mut input := none
match kernel.input_device {
'keyboard' {
mut r := readline.Readline{}
input = r.read_line('')!
}
}
kernel.stdin = input.bytes()
}
fn (mut kernel Kernel) exit() { exit(0) }
fn (mut kernel Kernel) write()
{
kernel.stdout = output
match kernel.output_device {
'screen' { print(stdout.bytestr()) }
}
}