tools: env: Refactor write path of flash_io()
Extract write path of flash_io() into a separate function. This patch should be a functional no-op. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Reviewed-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
2deb3cac08
commit
899b5338fa
36
tools/env/fw_env.c
vendored
36
tools/env/fw_env.c
vendored
@ -1225,25 +1225,15 @@ static int flash_read(int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int flash_io(int mode)
|
||||
static int flash_io_write(int fd_current)
|
||||
{
|
||||
int fd_current, fd_target, rc, dev_target;
|
||||
int fd_target, rc, dev_target;
|
||||
|
||||
/* dev_current: fd_current, erase_current */
|
||||
fd_current = open(DEVNAME(dev_current), mode);
|
||||
if (fd_current < 0) {
|
||||
fprintf(stderr,
|
||||
"Can't open %s: %s\n",
|
||||
DEVNAME(dev_current), strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mode == O_RDWR) {
|
||||
if (have_redund_env) {
|
||||
/* switch to next partition for writing */
|
||||
dev_target = !dev_current;
|
||||
/* dev_target: fd_target, erase_target */
|
||||
fd_target = open(DEVNAME(dev_target), mode);
|
||||
fd_target = open(DEVNAME(dev_target), O_RDWR);
|
||||
if (fd_target < 0) {
|
||||
fprintf(stderr,
|
||||
"Can't open %s: %s\n",
|
||||
@ -1279,11 +1269,29 @@ static int flash_io(int mode)
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
exit:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int flash_io(int mode)
|
||||
{
|
||||
int fd_current, rc;
|
||||
|
||||
/* dev_current: fd_current, erase_current */
|
||||
fd_current = open(DEVNAME(dev_current), mode);
|
||||
if (fd_current < 0) {
|
||||
fprintf(stderr,
|
||||
"Can't open %s: %s\n",
|
||||
DEVNAME(dev_current), strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mode == O_RDWR) {
|
||||
rc = flash_io_write(fd_current);
|
||||
} else {
|
||||
rc = flash_read(fd_current);
|
||||
}
|
||||
|
||||
exit:
|
||||
if (close(fd_current)) {
|
||||
fprintf(stderr,
|
||||
"I/O error on %s: %s\n",
|
||||
|
Loading…
Reference in New Issue
Block a user