diff options
| author | dautor <karlo98.m@gmail.com> | 2024-11-17 20:53:51 +0100 |
|---|---|---|
| committer | dautor <karlo98.m@gmail.com> | 2024-11-17 20:53:51 +0100 |
| commit | f1e579bc427df418af96da61498fe0cdb4cecb69 (patch) | |
| tree | 1fc8f6b196fbc1cc9166a1e10c74eff83f8f2aab /src/module.jail/state.h | |
| parent | c22c6581ee39688785476fe56f2b759ae49ca04a (diff) | |
Add COPYRIGHT and rename module directories
Diffstat (limited to 'src/module.jail/state.h')
| -rw-r--r-- | src/module.jail/state.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/module.jail/state.h b/src/module.jail/state.h new file mode 100644 index 0000000..d22d374 --- /dev/null +++ b/src/module.jail/state.h @@ -0,0 +1,93 @@ +#pragma once + +#include "../util.h" + +NAMED_ENUM(interface_type, eiface, steal); + +struct +{ + char *Name; + interface_type Type; + union + { + struct + { + } eiface; + struct + { + char *Interface; + } steal; + }; +} typedef interface_configuration; + +struct +{ + size_t Count; + interface_configuration *_; +} typedef interfaces_configuration; + +struct +{ + char *Source; + char *Target; +} typedef mapping; + +struct +{ + size_t LayerCount; + char **Layer; + char *Temporary; + size_t VolumeCount; + mapping *Volume; + s64 DevfsRuleset; +} typedef filesystem_configuration; + +struct +{ + interfaces_configuration Interfaces; + filesystem_configuration Filesystem; + string_array Init; + string_array Shutdown; +} typedef configuration; + +struct +{ + u32 ID; + interface_type Type; +} typedef interface; + +struct +{ + size_t Count; + interface *_; +} typedef interfaces; + +struct +{ + interfaces Interfaces; + jid_t JID; +} typedef data; + +void Free_interface_configuration(interface_configuration *); +void Free_interfaces_configuration(interfaces_configuration *); +void Free_mapping(mapping *); +void Free_filesystem_configuration(filesystem_configuration *); +void Free_configuration(configuration *); +void Free_interface(interface *); +void Free_interfaces(interfaces *); +void Free_data(data *); + +char *Parse_interface_type(interface_type *, ucl_object_t const *, char const *Position); +char *Parse_interface_configuration(interface_configuration *, ucl_object_t const *, char const *Position); +char *Parse_interfaces_configuration(interfaces_configuration *, ucl_object_t const *, char const *Position); +char *Parse_mapping(mapping *, ucl_object_t const *, char const *Position); +char *Parse_filesystem_configuration(filesystem_configuration *, ucl_object_t const *, char const *Position); +char *Parse_configuration(configuration *, ucl_object_t const *, char const *Position); +char *Parse_interface(interface *, ucl_object_t const *, char const *Position); +char *Parse_interfaces(interfaces *, ucl_object_t const *, char const *Position); +char *Parse_data(data *, ucl_object_t const *, char const *Position); + +void Save_interface_type(jprint_state *, interface_type const *); +void Save_interface(jprint_state *, interface const *); +void Save_interfaces(jprint_state *, interfaces const *); +void Save_data(jprint_state *, data const *); |
