aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware-utils/src/mkdlinkfw-lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/firmware-utils/src/mkdlinkfw-lib.c')
-rw-r--r--tools/firmware-utils/src/mkdlinkfw-lib.c147
1 files changed, 0 insertions, 147 deletions
diff --git a/tools/firmware-utils/src/mkdlinkfw-lib.c b/tools/firmware-utils/src/mkdlinkfw-lib.c
deleted file mode 100644
index dbe178c6dd..0000000000
--- a/tools/firmware-utils/src/mkdlinkfw-lib.c
+++ /dev/null
@@ -1,147 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * mkdlinkfw
- *
- * Copyright (C) 2018 Paweł Dembicki <paweldembicki@gmail.com>
- *
- * This tool is based on mktplinkfw.
- * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
- * Copyright (C) 2008,2009 Wang Jian <lark@linux.net.cn>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h> /* for unlink() */
-#include <libgen.h>
-#include <getopt.h> /* for getopt() */
-#include <stdarg.h>
-#include <stdbool.h>
-#include <endian.h>
-#include <errno.h>
-#include <time.h>
-#include <sys/stat.h>
-#include <zlib.h> /*for crc32 */
-
-#include "mkdlinkfw-lib.h"
-
-extern char *progname;
-
-uint32_t jboot_timestamp(void)
-{
- char *env = getenv("SOURCE_DATE_EPOCH");
- char *endptr = env;
- time_t fixed_timestamp = -1;
- errno = 0;
-
- if (env && *env) {
- fixed_timestamp = strtoull(env, &endptr, 10);
-
- if (errno || (endptr && *endptr != '\0')) {
- fprintf(stderr, "Invalid SOURCE_DATE_EPOCH");
- fixed_timestamp = -1;
- }
- }
-
- if (fixed_timestamp == -1)
- time(&fixed_timestamp);
-
- return (((uint32_t) fixed_timestamp) - TIMESTAMP_MAGIC) >> 2;
-}
-
-uint16_t jboot_checksum(uint16_t start_val, uint16_t *data, int size)
-{
- uint32_t counter = start_val;
- uint16_t *ptr = data;
-
- while (size > 1) {
- counter += *ptr;
- ++ptr;
- while (counter >> 16)
- counter = (uint16_t) counter + (counter >> 16);
- size -= 2;
- }
- if (size > 0) {
- counter += *(uint8_t *) ptr;
- counter -= 0xFF;
- }
- while (counter >> 16)
- counter = (uint16_t) counter + (counter >> 16);
- return counter;
-}
-
-int get_file_stat(struct file_info *fdata)
-{
- struct stat st;
- int res;
-
- if (fdata->file_name == NULL)
- return 0;
-
- res = stat(fdata->file_name, &st);
- if (res) {
- ERRS("stat failed on %s", fdata->file_name);
- return res;
- }
-
- fdata->file_size = st.st_size;
- return 0;
-}
-
-int read_to_buf(const struct file_info *fdata, char *buf)
-{
- FILE *f;
- int ret = EXIT_FAILURE;
- size_t read;
-
- f = fopen(fdata->file_name, "r");
- if (f == NULL) {
- ERRS("could not open \"%s\" for reading", fdata->file_name);
- goto out;
- }
-
- read = fread(buf, fdata->file_size, 1, f);
- if (ferror(f) || read != 1) {
- ERRS("unable to read from file \"%s\"", fdata->file_name);
- goto out_close;
- }
-
- ret = EXIT_SUCCESS;
-
- out_close:
- fclose(f);
- out:
- return ret;
-}
-
-int write_fw(const char *ofname, const char *data, int len)
-{
- FILE *f;
- int ret = EXIT_FAILURE;
-
- f = fopen(ofname, "w");
- if (f == NULL) {
- ERRS("could not open \"%s\" for writing", ofname);
- goto out;
- }
-
- errno = 0;
- fwrite(data, len, 1, f);
- if (errno) {
- ERRS("unable to write output file");
- goto out_flush;
- }
-
- DBG("firmware file \"%s\" completed", ofname);
-
- ret = EXIT_SUCCESS;
-
- out_flush:
- fflush(f);
- fclose(f);
- if (ret != EXIT_SUCCESS)
- unlink(ofname);
- out:
- return ret;
-}