blob: c10973946981d6291865121730e70849128b0ea4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
/* flashimg/cpu_main/flashio.h - DMA-safe flash storage
*
* Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#ifndef _FLASHIMG_CPU_MAIN_FLASHIO_H_
#define _FLASHIMG_CPU_MAIN_FLASHIO_H_
#include <hardware/flash.h> /* for FLASH_SECTOR_SIZE */
#include <libcr_ipc/mutex.h>
#include <libhw/generic/io.h>
#include <libmisc/private.h>
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_ */
|