blob: b243f1d77438cb699437578c96c8bf9a992972d8 [file] [log] [blame]
Nico Huber34e783a2023-02-11 00:30:27 +01001/*
2 * This file is part of the flashprog project.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#ifndef FLASHPROG_CLI_H
16#define FLASHPROG_CLI_H
17
18enum {
19 OPTION_CHIP = 'c',
20 OPTION_PROGRAMMER = 'p',
Nico Huberd91822a2023-02-11 00:43:54 +010021 OPTION_LAYOUT = 'l',
Nico Hubere7899a92023-02-11 00:39:47 +010022
23 /* Options below have only long option names, i.e. no single char: */
24 OPTION_IFD = 0x0100,
25 OPTION_FMAP,
26 OPTION_FMAP_FILE,
27 OPTION_FLASH_CONTENTS,
28 OPTION_FLASH_NAME,
29 OPTION_FLASH_SIZE,
30 OPTION_PROGRESS,
Nico Huber34e783a2023-02-11 00:30:27 +010031};
32
33struct flash_args {
34 char *chip;
35 char *prog_name;
36 char *prog_args;
37};
38
Nico Huberd91822a2023-02-11 00:43:54 +010039struct layout_args {
40 bool ifd;
41 bool fmap;
42 char *fmapfile;
43 char *layoutfile;
44};
45
46int cli_check_filename(const char *filename, const char *type);
47
Nico Huber34e783a2023-02-11 00:30:27 +010048int cli_parse_flash_args(struct flash_args *, int opt, const char *optarg);
Nico Huberd91822a2023-02-11 00:43:54 +010049int cli_parse_layout_args(struct layout_args *, int opt, const char *optarg);
Nico Huber34e783a2023-02-11 00:30:27 +010050
51#endif