8#include "elf/elf_api_interface.h"
20 FlipperApplicationPreloadStatusSuccess = 0,
21 FlipperApplicationPreloadStatusInvalidFile,
22 FlipperApplicationPreloadStatusNotEnoughMemory,
23 FlipperApplicationPreloadStatusInvalidManifest,
24 FlipperApplicationPreloadStatusApiTooOld,
25 FlipperApplicationPreloadStatusApiTooNew,
26 FlipperApplicationPreloadStatusTargetMismatch,
27} FlipperApplicationPreloadStatus;
30 FlipperApplicationLoadStatusSuccess = 0,
31 FlipperApplicationLoadStatusUnspecifiedError,
32 FlipperApplicationLoadStatusMissingImports,
33} FlipperApplicationLoadStatus;
55 uint32_t mmap_entry_count;
57 uint32_t debug_link_size;
81FlipperApplicationPreloadStatus
91FlipperApplicationPreloadStatus
129 const uint32_t ep_api_version;
130 const void* entry_point;
Flipper application manifest.
void flipper_application_free(FlipperApplication *app)
Destroy FlipperApplication object.
Definition flipper_application.c:71
const char * flipper_application_preload_status_to_string(FlipperApplicationPreloadStatus status)
Get text description of preload status.
Definition flipper_application.c:273
FlipperApplicationPreloadStatus flipper_application_preload(FlipperApplication *app, const char *path)
Validate elf file and load application metadata.
Definition flipper_application.c:203
bool flipper_application_is_plugin(FlipperApplication *app)
Check if application is a plugin (not a runnable standalone app)
Definition flipper_application.c:66
int32_t(* FlipperApplicationEntryPoint)(void *)
Entry point prototype for standalone applications.
Definition flipper_application.h:123
FlipperApplicationLoadStatus flipper_application_map_to_memory(FlipperApplication *app)
Load sections and process relocations for already pre-loaded application.
Definition flipper_application.c:215
const FlipperApplicationManifest * flipper_application_get_manifest(FlipperApplication *app)
Get pointer to application manifest for preloaded application.
Definition flipper_application.c:210
const FlipperAppPluginDescriptor * flipper_application_plugin_get_descriptor(FlipperApplication *app)
Get plugin descriptor for preloaded plugin.
Definition flipper_application.c:308
FlipperApplicationPreloadStatus flipper_application_preload_manifest(FlipperApplication *app, const char *path)
Validate elf file and load application manifest.
Definition flipper_application.c:194
FuriThread * flipper_application_alloc_thread(FlipperApplication *app, const char *args)
Allocate application thread at entry point address, using app name and stack size from metadata.
Definition flipper_application.c:251
bool flipper_application_load_name_and_icon(FuriString *path, Storage *storage, uint8_t **icon_ptr, FuriString *item_name)
Load name and icon from FAP file.
Definition flipper_application.c:334
const char * flipper_application_load_status_to_string(FlipperApplicationLoadStatus status)
Get text description of load status.
Definition flipper_application.c:294
FlipperApplication * flipper_application_alloc(Storage *storage, const ElfApiInterface *api_interface)
Initialize FlipperApplication object.
Definition flipper_application.c:54
APIs for working with storages, directories and files.
Interface for ELF loader to resolve symbols.
Definition elf_api_interface.h:9
An object that describes a plugin - must be returned by plugin's entry point.
Definition flipper_application.h:127
Definition flipper_application.c:11
Definition application_manifest.h:36
Definition flipper_application.h:49
Definition flipper_application.h:54
Definition storage_i.h:23