/** * @file stdglue.h * Furi: stdlibc glue */ #pragma once #include #include #ifdef __cplusplus extern "C" { #endif /** Write callback * @param _cookie pointer to cookie (see stdio gnu extension) * @param data pointer to data * @param size data size @warnign your handler must consume everything */ typedef void (*FuriStdglueWriteCallback)(void* _cookie, const char* data, size_t size); /** Initialized std library glue code */ void furi_stdglue_init(); /** Set global STDOUT callback * * @param callback callback or NULL to clear * * @return true on success, otherwise fail * @warning function is thread aware, use this API from the same thread */ bool furi_stdglue_set_global_stdout_callback(FuriStdglueWriteCallback callback); /** Set STDOUT callback for your thread * * @param callback callback or NULL to clear * * @return true on success, otherwise fail * @warning function is thread aware, use this API from the same thread */ bool furi_stdglue_set_thread_stdout_callback(FuriStdglueWriteCallback callback); #ifdef __cplusplus } #endif