naming_core/
api.rs

1use secgate::util::Descriptor;
2use twizzler_rt_abi::object::ObjID;
3
4use crate::{GetFlags, NsNode, Result};
5
6// maybe this can be a macro or it's just bad design :(
7pub trait NamerAPI {
8    fn put(&self, desc: Descriptor, name_len: usize, id: ObjID) -> Result<()>;
9    fn mkns(&self, desc: Descriptor, name_len: usize, persist: bool) -> Result<()>;
10    fn link(&self, desc: Descriptor, name_len: usize, link_name: usize) -> Result<()>;
11    fn get(&self, desc: Descriptor, name_len: usize, flags: GetFlags) -> Result<NsNode>;
12    fn open_handle(&self) -> Result<(Descriptor, ObjID)>;
13    fn close_handle(&self, desc: Descriptor) -> Result<()>;
14    fn enumerate_names(&self, desc: Descriptor, name_len: usize) -> Result<usize>;
15    fn enumerate_names_nsid(&self, desc: Descriptor, id: ObjID) -> Result<usize>;
16    fn remove(&self, desc: Descriptor, name_len: usize) -> Result<()>;
17    fn change_namespace(&self, desc: Descriptor, name_len: usize) -> Result<()>;
18}