From f1e579bc427df418af96da61498fe0cdb4cecb69 Mon Sep 17 00:00:00 2001 From: dautor Date: Sun, 17 Nov 2024 20:53:51 +0100 Subject: Add COPYRIGHT and rename module directories --- src/module.jail/state.h | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/module.jail/state.h (limited to 'src/module.jail/state.h') 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 *); -- cgit v1.2.3