When xread/xwrite fails the caller bails out of the program with an error. We can drop all the error handling by letting xread/xwrite call exit() themselves. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- scripts/imx/imx-image.c | 77 ++++++++++++----------------------------- 1 file changed, 23 insertions(+), 54 deletions(-) diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c index 2481ae6403..04c707cb7f 100644 --- a/scripts/imx/imx-image.c +++ b/scripts/imx/imx-image.c @@ -445,41 +445,42 @@ static int write_mem_v2(uint32_t addr, uint32_t val, int width, int set_bits, in return 0; } -static int xread(int fd, void *buf, int len) +static void xread(int fd, void *buf, int len) { int ret; while (len) { ret = read(fd, buf, len); - if (ret < 0) - return ret; + if (ret < 0) { + fprintf(stderr, "read failed: %s\n", strerror(errno)); + exit(1); + } + if (!ret) - return EOF; + return; buf += ret; len -= ret; } - - return 0; } -static int xwrite(int fd, void *buf, int len) +static void xwrite(int fd, void *buf, int len) { int ret; while (len) { ret = write(fd, buf, len); - if (ret < 0) - return ret; + if (ret < 0) { + fprintf(stderr, "write failed: %s\n", strerror(errno)); + exit(1); + } buf += ret; len -= ret; } - - return 0; } static void write_dcd(const char *outfile) { - int outfd, ret; + int outfd; int dcdsize = curdcd * sizeof(uint32_t); outfd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); @@ -489,11 +490,7 @@ static void write_dcd(const char *outfile) exit(1); } - ret = xwrite(outfd, dcdtable, dcdsize); - if (ret < 0) { - perror("write"); - exit(1); - } + xwrite(outfd, dcdtable, dcdsize); } static int check(const struct config_data *data, uint32_t cmd, uint32_t addr, @@ -692,11 +689,7 @@ static int hab_sign(struct config_data *data) csf_space); } - ret = xread(fd, buf, s.st_size); - if (ret < 0) { - fprintf(stderr, "read failed: %s\n", strerror(errno)); - return -errno; - } + xread(fd, buf, s.st_size); /* * For i.MX8M, write into the reserved CSF section @@ -728,11 +721,7 @@ static int hab_sign(struct config_data *data) } } - ret = xwrite(outfd, buf, csf_space); - if (ret < 0) { - fprintf(stderr, "write failed: %s\n", strerror(errno)); - return -errno; - } + xwrite(outfd, buf, csf_space); ret = close(outfd); if (ret) { @@ -992,42 +981,26 @@ int main(int argc, char *argv[]) header_copies = (data.cpu_type == IMX_CPU_IMX35) ? 2 : 1; for (i = 0; i < header_copies; i++) { - ret = xwrite(outfd, add_barebox_header ? bb_header : buf, - sizeof_bb_header); - if (ret < 0) { - perror("write"); - exit(1); - } + xwrite(outfd, add_barebox_header ? bb_header : buf, + sizeof_bb_header); if (lseek(outfd, data.header_gap, SEEK_CUR) < 0) { perror("lseek"); exit(1); } - ret = xwrite(outfd, buf + sizeof_bb_header, - header_len - sizeof_bb_header); - if (ret < 0) { - perror("write"); - exit(1); - } + xwrite(outfd, buf + sizeof_bb_header, + header_len - sizeof_bb_header); } - ret = xwrite(outfd, infile, insize); - if (ret) { - perror("write"); - exit(1); - } + xwrite(outfd, infile, insize); /* pad until next 4k boundary */ now = 4096 - (insize % 4096); if (data.csf && now) { memset(buf, 0x5a, now); - ret = xwrite(outfd, buf, now); - if (ret) { - perror("write"); - exit(1); - } + xwrite(outfd, buf, now); } ret = close(outfd); @@ -1056,11 +1029,7 @@ int main(int argc, char *argv[]) exit(1); } - ret = xwrite(outfd, infile, insize); - if (ret < 0) { - perror("write"); - exit (1); - } + xwrite(outfd, infile, insize); close(outfd); } -- 2.27.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox