naming/
lib.rs

1use naming_core::{api::NamerAPI, handle::NamingHandle, Result};
2pub use naming_core::{dynamic::*, GetFlags, NsNode, NsNodeKind};
3use secgate::util::Descriptor;
4use twizzler_rt_abi::object::ObjID;
5
6pub struct StaticNamingAPI {}
7
8#[secgate::gatecall]
9fn put(desc: Descriptor, name_len: usize, id: ObjID) -> Result<()> {}
10#[secgate::gatecall]
11fn get(desc: Descriptor, name_len: usize, flags: GetFlags) -> Result<NsNode> {}
12#[secgate::gatecall]
13fn open_handle() -> Result<(Descriptor, ObjID)> {}
14#[secgate::gatecall]
15fn close_handle(desc: Descriptor) -> Result<()> {}
16#[secgate::gatecall]
17fn enumerate_names(desc: Descriptor, name_len: usize, skip: usize, count: usize) -> Result<usize> {}
18#[secgate::gatecall]
19fn enumerate_names_nsid(desc: Descriptor, id: ObjID, skip: usize, count: usize) -> Result<usize> {}
20#[secgate::gatecall]
21fn rename(desc: Descriptor, old_len: usize, new_len: usize) -> Result<()> {}
22#[secgate::gatecall]
23fn remove(desc: Descriptor, name_len: usize) -> Result<()> {}
24#[secgate::gatecall]
25fn change_namespace(desc: Descriptor, name_len: usize) -> Result<()> {}
26#[secgate::gatecall]
27fn mkns(desc: Descriptor, name_len: usize, persist: bool) -> Result<()> {}
28#[secgate::gatecall]
29fn link(desc: Descriptor, name_len: usize, link_len: usize) -> Result<()> {}
30
31#[secgate::gatecall]
32pub fn namer_start(bootstrap: ObjID) -> Result<ObjID> {}
33
34impl NamerAPI for StaticNamingAPI {
35    fn put(&self, desc: Descriptor, name_len: usize, id: ObjID) -> Result<()> {
36        put(desc, name_len, id)
37    }
38
39    fn get(&self, desc: Descriptor, name_len: usize, flags: GetFlags) -> Result<NsNode> {
40        get(desc, name_len, flags)
41    }
42
43    fn open_handle(&self) -> Result<(Descriptor, ObjID)> {
44        open_handle()
45    }
46
47    fn close_handle(&self, desc: Descriptor) -> Result<()> {
48        close_handle(desc)
49    }
50
51    fn enumerate_names(
52        &self,
53        desc: Descriptor,
54        name_len: usize,
55        skip: usize,
56        count: usize,
57    ) -> Result<usize> {
58        enumerate_names(desc, name_len, skip, count)
59    }
60
61    fn enumerate_names_nsid(
62        &self,
63        desc: Descriptor,
64        id: ObjID,
65        skip: usize,
66        count: usize,
67    ) -> Result<usize> {
68        enumerate_names_nsid(desc, id, skip, count)
69    }
70
71    fn remove(&self, desc: Descriptor, name_len: usize) -> Result<()> {
72        remove(desc, name_len)
73    }
74
75    fn rename(&self, desc: Descriptor, old_len: usize, new_len: usize) -> Result<()> {
76        rename(desc, old_len, new_len)
77    }
78
79    fn change_namespace(&self, desc: Descriptor, name_len: usize) -> Result<()> {
80        change_namespace(desc, name_len)
81    }
82
83    fn mkns(&self, desc: Descriptor, name_len: usize, persist: bool) -> Result<()> {
84        mkns(desc, name_len, persist)
85    }
86
87    fn link(&self, desc: Descriptor, name_len: usize, link_len: usize) -> Result<()> {
88        link(desc, name_len, link_len)
89    }
90}
91
92static STATIC_NAMING_API: StaticNamingAPI = StaticNamingAPI {};
93
94pub type StaticNamingHandle = NamingHandle<'static, StaticNamingAPI>;
95
96pub fn static_naming_factory() -> Option<StaticNamingHandle> {
97    NamingHandle::new(&STATIC_NAMING_API)
98}