Ken Van Hoeylandt f8172446fd
App loading improvements and more (#675)
- External apps can opt into automatic cleanup when they exit, including tracked tasks, threads, files, directories, and memory.
- App-relative file paths resolve against the app’s working directory, with `.` and `..` normalized.
- The shell identifies ELF binaries that cannot be executed instead of treating them as scripts.
- Shared icon fonts now offer distinct default and large sizes, with updated icons across the interface.
- ESP32 apps can load additional ELF formats when address mirroring is enabled.
- Terminal colors render clearly on monochrome displays, and toolbar buttons have cleaner styling.
- GPS settings safely refresh their device list when their window is hidden or its widgets are destroyed.
2026-10-06 07:45:58 +02:00

33 lines
1.0 KiB
C++

// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <cstdint>
#ifndef __APPLE__
/**
* Sets the address range of the app image running on the calling thread. Allocations made by code
* in [start, end) are counted for the current app instance (see app/memory.h).
*/
void app_posix_set_current_image(uintptr_t start, uintptr_t end);
/** Gets the range set by app_posix_set_current_image() on the calling thread, for a thread the app creates. */
void app_posix_get_current_image(uintptr_t* out_start, uintptr_t* out_end);
/** @return true if @a caller lies inside the image of the app running on the calling thread */
bool app_posix_is_app_caller(const void* caller);
#else
// Allocations aren't counted, and resources aren't tracked, on Apple platforms
inline void app_posix_set_current_image(uintptr_t, uintptr_t) {}
inline void app_posix_get_current_image(uintptr_t* out_start, uintptr_t* out_end) {
*out_start = 0;
*out_end = 0;
}
inline bool app_posix_is_app_caller(const void*) { return false; }
#endif