/* flashimg/cpu_main/flashio.h - DMA-safe flash storage * * Copyright (C) 2025 Luke T. Shumaker * SPDX-License-Identifier: AGPL-3.0-or-later */ #ifndef _FLASHIMG_CPU_MAIN_FLASHIO_H_ #define _FLASHIMG_CPU_MAIN_FLASHIO_H_ #include /* for FLASH_SECTOR_SIZE */ #include #include #include struct flashio { BEGIN_PRIVATE(FLASHIO_H); uint8_t dat[FLASH_SECTOR_SIZE]; size_t dat_pos; bool dat_dirty; bool dat_ok; cr_mutex_t mu; END_PRIVATE(FLASHIO_H); }; LO_IMPLEMENTATION_H(io_preader_to, struct flashio, flashio); LO_IMPLEMENTATION_H(io_pwriter, struct flashio, flashio); LO_IMPLEMENTATION_H(io_flusher, struct flashio, flashio); #endif /* _FLASHIMG_CPU_MAIN_FLASHIO_H_ */