FlatImage
A configurable Linux containerization system
Loading...
Searching...
No Matches
ns_reserved Namespace Reference

Management of ELF binary reserved space for configuration storage. More...

Namespaces

namespace  ns_bind
 Bind mount configuration storage in reserved space.
 
namespace  ns_boot
 Boot command storage in reserved space.
 
namespace  ns_casefold
 Case-insensitive filesystem flag management in reserved space.
 
namespace  ns_desktop
 Desktop integration data storage in reserved space.
 
namespace  ns_env
 Environment variable storage in reserved space.
 
namespace  ns_icon
 Application icon image storage in reserved space.
 
namespace  ns_notify
 Desktop notification flag management in reserved space.
 
namespace  ns_overlay
 Overlay filesystem type selection in reserved space.
 
namespace  ns_permissions
 Permission bitfield management in reserved space.
 
namespace  ns_remote
 Remote recipe repository URL storage in reserved space.
 
namespace  ns_unshare
 Unshare namespace options bitfield management in reserved space.
 

Functions

Value< void > write (fs::path const &path_file_binary, uint64_t offset_begin, uint64_t offset_end, const char *data, uint64_t length) noexcept
 Writes data to a file in binary format.
 
Value< std::streamsize > read (fs::path const &path_file_binary, uint64_t offset, char *data, uint64_t length) noexcept
 Reads data from a file in binary format.
 

Variables

uint32_t FIM_RESERVED_OFFSET
 
uint64_t const FIM_RESERVED_OFFSET_PERMISSIONS_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_permissions_begin
 
uint64_t const FIM_RESERVED_OFFSET_PERMISSIONS_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_permissions_end
 
uint64_t const FIM_RESERVED_OFFSET_NOTIFY_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_notify_begin
 
uint64_t const FIM_RESERVED_OFFSET_NOTIFY_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_notify_end
 
uint64_t const FIM_RESERVED_OFFSET_OVERLAY_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_overlay_begin
 
uint64_t const FIM_RESERVED_OFFSET_OVERLAY_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_overlay_end
 
uint64_t const FIM_RESERVED_OFFSET_CASEFOLD_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_casefold_begin
 
uint64_t const FIM_RESERVED_OFFSET_CASEFOLD_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_casefold_end
 
uint64_t const FIM_RESERVED_OFFSET_DESKTOP_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_desktop_begin
 
uint64_t const FIM_RESERVED_OFFSET_DESKTOP_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_desktop_end
 
uint64_t const FIM_RESERVED_OFFSET_BOOT_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_boot_begin
 
uint64_t const FIM_RESERVED_OFFSET_BOOT_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_boot_end
 
uint64_t const FIM_RESERVED_OFFSET_ICON_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_icon_begin
 
uint64_t const FIM_RESERVED_OFFSET_ICON_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_icon_end
 
uint64_t const FIM_RESERVED_OFFSET_ENVIRONMENT_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_environment_begin
 
uint64_t const FIM_RESERVED_OFFSET_ENVIRONMENT_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_environment_end
 
uint64_t const FIM_RESERVED_OFFSET_BINDINGS_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_bindings_begin
 
uint64_t const FIM_RESERVED_OFFSET_BINDINGS_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_bindings_end
 
uint64_t const FIM_RESERVED_OFFSET_REMOTE_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_remote_begin
 
uint64_t const FIM_RESERVED_OFFSET_REMOTE_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_remote_end
 
uint64_t const FIM_RESERVED_OFFSET_UNSHARE_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_unshare_begin
 
uint64_t const FIM_RESERVED_OFFSET_UNSHARE_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_unshare_end
 

Detailed Description

Management of ELF binary reserved space for configuration storage.

This namespace provides core functionality for reading and writing configuration data to a reserved section within the FlatImage ELF binary. It defines the memory layout (offsets and sizes) for all configuration components and provides low-level read/write operations. The reserved space allows post-build reconfiguration without rebuilding the entire binary, storing permissions, environment variables, bind mounts, desktop integration data, icons, and more.

Function Documentation

◆ read()

Value< std::streamsize > ns_reserved::read ( fs::path const & path_file_binary,
uint64_t offset,
char * data,
uint64_t length )
inlinenodiscardnoexcept

Reads data from a file in binary format.

Parameters
path_file_binaryThe binary file to read
offsetThe starting offset in bytes where to starting writing
dataThe data to write into the file
lengthThe length of the data to write into the file
Returns
The number of bytes read

Definition at line 172 of file reserved.hpp.

Here is the caller graph for this function:

◆ write()

Value< void > ns_reserved::write ( fs::path const & path_file_binary,
uint64_t offset_begin,
uint64_t offset_end,
const char * data,
uint64_t length )
inlinenodiscardnoexcept

Writes data to a file in binary format.

Parameters
path_file_binaryThe binary file to modify
offset_beginThe starting offset in bytes where to starting writing
offset_endThe ending offset in bytes where to stop writing
dataThe data to write into the file
lengthThe length of the data to write into the file
Returns
On success it returns void, otherwise it returns the number of bytes written

Definition at line 142 of file reserved.hpp.

Here is the caller graph for this function:

Variable Documentation

◆ FIM_RESERVED_OFFSET

uint32_t ns_reserved::FIM_RESERVED_OFFSET

Definition at line 35 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_BINDINGS_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_BINDINGS_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_bindings_begin

Definition at line 121 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_BINDINGS_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_BINDINGS_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_bindings_end

Definition at line 122 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_BOOT_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_BOOT_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_boot_begin

Definition at line 112 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_BOOT_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_BOOT_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_boot_end

Definition at line 113 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_CASEFOLD_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_CASEFOLD_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_casefold_begin

Definition at line 106 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_CASEFOLD_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_CASEFOLD_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_casefold_end

Definition at line 107 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_DESKTOP_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_DESKTOP_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_desktop_begin

Definition at line 109 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_DESKTOP_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_DESKTOP_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_desktop_end

Definition at line 110 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_ENVIRONMENT_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_ENVIRONMENT_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_environment_begin

Definition at line 118 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_ENVIRONMENT_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_ENVIRONMENT_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_environment_end

Definition at line 119 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_ICON_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_ICON_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_icon_begin

Definition at line 115 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_ICON_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_ICON_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_icon_end

Definition at line 116 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_NOTIFY_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_NOTIFY_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_notify_begin

Definition at line 100 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_NOTIFY_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_NOTIFY_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_notify_end

Definition at line 101 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_OVERLAY_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_OVERLAY_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_overlay_begin

Definition at line 103 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_OVERLAY_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_OVERLAY_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_overlay_end

Definition at line 104 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_PERMISSIONS_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_PERMISSIONS_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_permissions_begin

Definition at line 97 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_PERMISSIONS_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_PERMISSIONS_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_permissions_end

Definition at line 98 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_REMOTE_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_REMOTE_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_remote_begin

Definition at line 124 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_REMOTE_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_REMOTE_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_remote_end

Definition at line 125 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_UNSHARE_BEGIN

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_UNSHARE_BEGIN = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_unshare_begin

Definition at line 127 of file reserved.hpp.

◆ FIM_RESERVED_OFFSET_UNSHARE_END

uint64_t const ns_reserved::FIM_RESERVED_OFFSET_UNSHARE_END = FIM_RESERVED_OFFSET + reserved.fim_reserved_offset_unshare_end

Definition at line 128 of file reserved.hpp.