Start stdin
This commit is contained in:
@@ -7,6 +7,7 @@ use crate::fs::File;
|
||||
|
||||
#[repr(u64)]
|
||||
pub enum SysCall {
|
||||
Read = 0,
|
||||
Write = 1,
|
||||
Open = 2,
|
||||
Seek = 8,
|
||||
@@ -22,6 +23,7 @@ pub enum SysCall {
|
||||
impl From<u64> for SysCall {
|
||||
fn from(value: u64) -> Self {
|
||||
match value {
|
||||
0 => SysCall::Read,
|
||||
1 => SysCall::Write,
|
||||
2 => SysCall::Open,
|
||||
8 => SysCall::Seek,
|
||||
@@ -151,6 +153,13 @@ pub fn write(file: &mut File, buf: &[u8]) {
|
||||
syscall!(SysCall::Write, file.as_fd(), ptr as u64, size as u64);
|
||||
}
|
||||
}
|
||||
pub fn read(file: &mut File, buf: &mut [u8]) {
|
||||
unsafe {
|
||||
let ptr = buf.as_ptr();
|
||||
let size = buf.len();
|
||||
syscall!(SysCall::Read, file.as_fd(), ptr as u64, size as u64);
|
||||
}
|
||||
}
|
||||
pub fn seek(file: &mut File, seek: SeekFrom) {
|
||||
unsafe {
|
||||
let (discriminant, value) = match seek {
|
||||
|
||||
Reference in New Issue
Block a user