make a pipe filetype, reorder filetype enum
This commit is contained in:
@@ -22,5 +22,7 @@ fs-set-times = "0.2.2"
|
|||||||
unsafe-io = "0.2"
|
unsafe-io = "0.2"
|
||||||
system-interface = { version = "0.5.2", features = ["cap_std_impls"] }
|
system-interface = { version = "0.5.2", features = ["cap_std_impls"] }
|
||||||
tracing = "0.1.19"
|
tracing = "0.1.19"
|
||||||
libc = "0.2"
|
|
||||||
bitflags = "1.2"
|
bitflags = "1.2"
|
||||||
|
|
||||||
|
[target.'cfg(unix)'.dependencies]
|
||||||
|
libc = "0.2"
|
||||||
|
|||||||
@@ -37,19 +37,17 @@ pub trait WasiFile {
|
|||||||
fn num_ready_bytes(&self) -> Result<u64, Error>; // read op
|
fn num_ready_bytes(&self) -> Result<u64, Error>; // read op
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX we will add pipes to wasi - lets add it to this internal enum and present them as
|
|
||||||
// Unknown to old wasis
|
|
||||||
// XXX put the enum variants in same order as WASI so conversion funcs are no-op
|
|
||||||
#[derive(Debug, Copy, Clone)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
pub enum FileType {
|
pub enum FileType {
|
||||||
Directory,
|
Unknown,
|
||||||
BlockDevice,
|
BlockDevice,
|
||||||
CharacterDevice,
|
CharacterDevice,
|
||||||
|
Directory,
|
||||||
RegularFile,
|
RegularFile,
|
||||||
SocketDgram,
|
SocketDgram,
|
||||||
SocketStream,
|
SocketStream,
|
||||||
SymbolicLink,
|
SymbolicLink,
|
||||||
Unknown,
|
Pipe,
|
||||||
}
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ impl<R: Read + Any> WasiFile for ReadPipe<R> {
|
|||||||
Ok(()) // trivial
|
Ok(()) // trivial
|
||||||
}
|
}
|
||||||
fn get_filetype(&self) -> Result<FileType, Error> {
|
fn get_filetype(&self) -> Result<FileType, Error> {
|
||||||
Ok(FileType::CharacterDevice) // XXX wrong
|
Ok(FileType::Pipe)
|
||||||
}
|
}
|
||||||
fn get_fdflags(&self) -> Result<FdFlags, Error> {
|
fn get_fdflags(&self) -> Result<FdFlags, Error> {
|
||||||
Ok(FdFlags::empty())
|
Ok(FdFlags::empty())
|
||||||
@@ -245,7 +245,7 @@ impl<W: Write + Any> WasiFile for WritePipe<W> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
fn get_filetype(&self) -> Result<FileType, Error> {
|
fn get_filetype(&self) -> Result<FileType, Error> {
|
||||||
Ok(FileType::CharacterDevice) // XXX
|
Ok(FileType::Pipe)
|
||||||
}
|
}
|
||||||
fn get_fdflags(&self) -> Result<FdFlags, Error> {
|
fn get_fdflags(&self) -> Result<FdFlags, Error> {
|
||||||
Ok(FdFlags::APPEND)
|
Ok(FdFlags::APPEND)
|
||||||
|
|||||||
@@ -1294,6 +1294,7 @@ impl From<&FileType> for types::Filetype {
|
|||||||
FileType::SocketStream => types::Filetype::SocketStream,
|
FileType::SocketStream => types::Filetype::SocketStream,
|
||||||
FileType::SymbolicLink => types::Filetype::SymbolicLink,
|
FileType::SymbolicLink => types::Filetype::SymbolicLink,
|
||||||
FileType::Unknown => types::Filetype::Unknown,
|
FileType::Unknown => types::Filetype::Unknown,
|
||||||
|
FileType::Pipe => types::Filetype::Unknown,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user