diff options
Diffstat (limited to '')
| -rw-r--r-- | src/ops/mod.rs | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/ops/mod.rs b/src/ops/mod.rs index 13d146d..3e64b97 100644 --- a/src/ops/mod.rs +++ b/src/ops/mod.rs @@ -3,15 +3,13 @@ use std::{ os::unix::ffi::OsStrExt, }; -use crate::{private_trait::Sealed, util::OutputChain, Done, Operation, Reply, Request}; +use crate::{ + private_trait::Sealed, proto, util::OutputChain, Done, Ino, Operation, Reply, Request, Ttl, +}; + use bytemuck::{bytes_of, Pod}; -mod dir; -mod entry; -mod global; -mod open; -mod rw; -mod xattr; +pub mod traits; pub use dir::{BufferedReaddir, Lookup, Readdir}; pub use entry::{Forget, Getattr}; @@ -20,6 +18,13 @@ pub use open::{Access, Open, Opendir, Release, Releasedir}; pub use rw::{Flush, Read, Readlink, Write}; pub use xattr::{Getxattr, Listxattr, Removexattr, Setxattr}; +mod dir; +mod entry; +mod global; +mod open; +mod rw; +mod xattr; + pub(crate) use global::InitState; pub trait FromRequest<'o, O: Operation<'o>> { @@ -62,6 +67,21 @@ impl<'o, O: Operation<'o>> Reply<'o, O> { } } +fn make_entry( + (Ino(ino), entry_ttl): (Ino, Ttl), + (attrs, attr_ttl): (proto::Attrs, Ttl), +) -> proto::EntryOut { + proto::EntryOut { + nodeid: ino, + generation: 0, //TODO + entry_valid: entry_ttl.seconds, + attr_valid: attr_ttl.seconds, + entry_valid_nsec: entry_ttl.nanoseconds, + attr_valid_nsec: attr_ttl.nanoseconds, + attr: attrs, + } +} + fn c_to_os(c_str: &CStr) -> &OsStr { OsStr::from_bytes(c_str.to_bytes()) } |
