Objective
Connect the completed plugin discovery and loading system to the configuration engine once linapple.toml is implemented, enabling automatic startup loading and configuration routing.
Scope & Requirements
- Parse
[plugins] and nested [plugins.<name>] tables from linapple.toml.
- Support configuration parameters:
enabled = true|false
path = "/path/to/plugin.so" (or lookup by plugin name in discovered catalogs)
slot = 1..7 (for slot card peripherals)
- Arbitrary key-value options defined by the plugin schema
- During emulator startup, scan discovered plugin directories or specified paths.
- Auto-load enabled plugins via
PluginManager_t.
- Route configuration options to plugins via
plugin_manager_configure_plugin().
- Automatically bind slot peripheral plugins to requested hardware slots.
- Log clear warnings if a configured plugin fails to load without interrupting emulator startup.
Testing & Verification
- Provide sample
linapple.toml configurations specifying valid, invalid, and disabled plugin entries.
- Verify enabled plugins are automatically loaded and initialized on emulator startup.
- Verify slot card plugins are automatically bound to their designated slot numbers (1–7).
- Verify slot assignment conflicts (e.g., two plugins requesting the same slot or targeting an occupied internal slot) are detected and handled with appropriate warnings without crashing.
- Verify configuration key-value pairs are passed to the plugin's
configure() function.
- Verify missing plugin files or malformed plugin tables produce log warnings without interrupting emulator startup.
- Verify disabling a plugin in configuration prevents library loading and slot binding.
Acceptance Criteria
- Emulator boots with plugins specified in
linapple.toml automatically loaded, configured, and bound to slots.
- Missing or disabled plugins do not prevent emulator startup.
Objective
Connect the completed plugin discovery and loading system to the configuration engine once
linapple.tomlis implemented, enabling automatic startup loading and configuration routing.Scope & Requirements
[plugins]and nested[plugins.<name>]tables fromlinapple.toml.enabled = true|falsepath = "/path/to/plugin.so"(or lookup by plugin name in discovered catalogs)slot = 1..7(for slot card peripherals)PluginManager_t.plugin_manager_configure_plugin().Testing & Verification
linapple.tomlconfigurations specifying valid, invalid, and disabled plugin entries.configure()function.Acceptance Criteria
linapple.tomlautomatically loaded, configured, and bound to slots.