mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-10-17 02:45:05 +00:00
**New Features** * Added location services with GPS and network-based positioning, approximate or precise accuracy, and live status updates. * Added a Location Settings app to view status, control location access and accuracy, and manage GPS devices. * Added location choices during device setup and a location toggle in the system menu. * Added support for thread stacks in external memory when available, with fallback to existing memory options. **Improvements** * Wi-Fi and Bluetooth enabled states are saved when changed and applied at startup; separate “Enable on boot” switches are no longer shown in their management screens. * GPS setup can stop promptly when interrupted. * Improved device removal handling during startup and while references are outstanding. * Updated several device listings to no longer be marked as incubating.
39 lines
1.6 KiB
C
39 lines
1.6 KiB
C
// SPDX-License-Identifier: Apache-2.0
|
|
#pragma once
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* On the simulator, an app binary binds to xTaskCreate() and vTaskDelete() through the dynamic linker,
|
|
* so these are the simulator's own definitions, built into FreeRTOS-Kernel in place of its own.
|
|
* They call the hooks when set, passing the address they were called from.
|
|
*/
|
|
|
|
typedef BaseType_t (*FreeRtosTaskCreateHook)(const void* caller, TaskFunction_t function, const char* name, configSTACK_DEPTH_TYPE stack_depth, void* parameter, UBaseType_t priority, TaskHandle_t* out_handle);
|
|
typedef void (*FreeRtosTaskDeleteHook)(const void* caller, TaskHandle_t handle);
|
|
|
|
void freertos_set_task_hooks(FreeRtosTaskCreateHook create, FreeRtosTaskDeleteHook delete_task);
|
|
|
|
/** FreeRTOS-Kernel's own xTaskCreate() */
|
|
BaseType_t freertos_real_xTaskCreate(TaskFunction_t function, const char* name, configSTACK_DEPTH_TYPE stack_depth, void* parameter, UBaseType_t priority, TaskHandle_t* out_handle);
|
|
|
|
/** FreeRTOS-Kernel's own vTaskDelete() */
|
|
void freertos_real_vTaskDelete(TaskHandle_t handle);
|
|
|
|
/**
|
|
* The POSIX port's own vPortCancelThread(), which joins the thread of a deleted task.
|
|
* The simulator's vPortCancelThread() calls it with all signals blocked: glibc frees the joined thread's stack
|
|
* while holding its stack cache lock. When the tick signal switches tasks while that lock is held,
|
|
* the next pthread_create() blocks forever, because the port calls it with the tick signal blocked.
|
|
*/
|
|
void freertos_real_vPortCancelThread(void* task);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|