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}