// SPDX-License-Identifier: MIT #ifndef BLISP_BLISP_EASY_H #define BLISP_BLISP_EASY_H #include #include "blisp.h" struct blisp_easy_transport { uint8_t type; // 0 - memory, 1 - FILE file_handle union { FILE* file_handle; struct { void* data_location; uint32_t data_size; uint32_t current_position; } memory; } data; }; enum blisp_easy_error { BLISP_EASY_ERR_TRANSPORT_ERROR = -100, BLISP_EASY_ERR_CHECK_IMAGE_FAILED = -101 }; typedef void (*blisp_easy_progress_callback)(uint32_t current_value, uint32_t max_value); struct blisp_easy_transport blisp_easy_transport_new_from_file(FILE* file); struct blisp_easy_transport blisp_easy_transport_new_from_memory( void* data_location, uint32_t data_size); int32_t blisp_easy_load_segment_data( struct blisp_device* device, uint32_t segment_size, struct blisp_easy_transport* segment_transport, blisp_easy_progress_callback progress_callback); int32_t blisp_easy_load_ram_image( struct blisp_device* device, struct blisp_easy_transport* image_transport, blisp_easy_progress_callback progress_callback); int32_t blisp_easy_load_ram_app(struct blisp_device* device, struct blisp_easy_transport* app_transport, blisp_easy_progress_callback progress_callback); int32_t blisp_easy_flash_write(struct blisp_device* device, struct blisp_easy_transport* data_transport, uint32_t flash_location, uint32_t data_size, blisp_easy_progress_callback progress_callback); #endif // BLISP_BLISP_EASY_H