diff options
Diffstat (limited to 'lib/x1000-installer/include/xf_update.h')
-rw-r--r-- | lib/x1000-installer/include/xf_update.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/x1000-installer/include/xf_update.h b/lib/x1000-installer/include/xf_update.h new file mode 100644 index 0000000000..e421a21793 --- /dev/null +++ b/lib/x1000-installer/include/xf_update.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2021 Aidan MacDonald | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #ifndef _XF_UPDATE_H_ | ||
23 | #define _XF_UPDATE_H_ | ||
24 | |||
25 | #include "xf_package.h" | ||
26 | #include "xf_nandio.h" | ||
27 | #include "xf_flashmap.h" | ||
28 | |||
29 | typedef int(*xf_update_open_stream_cb)(void* arg, const char* file, | ||
30 | struct xf_stream* stream); | ||
31 | |||
32 | enum xf_update_mode { | ||
33 | XF_UPDATE, | ||
34 | XF_BACKUP, | ||
35 | XF_VERIFY, | ||
36 | }; | ||
37 | |||
38 | /** The main updater entry point | ||
39 | * | ||
40 | * \param mode Operational mode | ||
41 | * \param nio Initialized NAND I/O object. | ||
42 | * \param map Flash map describing what regions to update. | ||
43 | * \param map_size Number of entries in the map. | ||
44 | * \param open_stream Callback used to open a stream for each map entry. | ||
45 | * \param arg Argument passed to the `open_stream` callback. | ||
46 | * | ||
47 | * \returns XF_E_SUCCESS on success or a negative error code on failure. | ||
48 | */ | ||
49 | int xf_updater_run(enum xf_update_mode mode, struct xf_nandio* nio, | ||
50 | struct xf_map* map, int map_size, | ||
51 | xf_update_open_stream_cb open_stream, void* arg); | ||
52 | |||
53 | #endif /* _XF_UPDATE_H_ */ | ||