2023-08-13 22:48:55 +08:00
|
|
|
/*
|
|
|
|
* Controller Flash Save and Load
|
|
|
|
* WHowe <github.com/whowechina>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef SAVE_H
|
|
|
|
#define SAVE_H
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
2023-09-16 21:20:58 +08:00
|
|
|
#include <stdint.h>
|
2023-08-13 22:48:55 +08:00
|
|
|
#include <stdbool.h>
|
|
|
|
|
2023-09-17 14:17:03 +08:00
|
|
|
#include "pico/multicore.h"
|
|
|
|
|
2023-08-13 22:48:55 +08:00
|
|
|
/* It's safer to lock other I/O ops during saving, so we need a locker */
|
|
|
|
typedef void (*io_locker_func)(bool pause);
|
2023-09-17 14:17:03 +08:00
|
|
|
void save_init(uint32_t magic, mutex_t *lock);
|
2023-08-13 22:48:55 +08:00
|
|
|
|
|
|
|
void save_loop();
|
|
|
|
|
|
|
|
void *save_alloc(size_t size, void *def, void (*after_load)());
|
|
|
|
void save_request(bool immediately);
|
|
|
|
|
|
|
|
#endif
|