summaryrefslogtreecommitdiffstats
path: root/utils/ypr0tools/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/ypr0tools/common.h')
-rw-r--r--utils/ypr0tools/common.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/utils/ypr0tools/common.h b/utils/ypr0tools/common.h
new file mode 100644
index 0000000000..16aa3acf53
--- /dev/null
+++ b/utils/ypr0tools/common.h
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ *
+ * Copyright (C) 2013 Lorenzo Miori
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef _COMMON_H_
+#define _COMMON_H_
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <getopt.h>
+#include <stdint.h>
+
+#if defined(WIN32)
+# define DIR_SEPARATOR '\\'
+#else
+# define DIR_SEPARATOR '/'
+#endif
+
+#define MAX_PATH 255
+
+/*
+ * Firmware description
+ */
+
+#define GENERIC_HEADER_LINES 5
+#define MAX_HEADER_LEN 1000
+/* Empty space used by bootloader to store checksums */
+#define MBOOT_CHECKSUM_OFFSET 96
+/* Length of the reserved space */
+#define MBOOT_CHECKSUM_LENGTH 992
+
+/* In case we don't have RevisionInfo.txt file, mock values are fine */
+#define YPR0_VERSION "Version : V1.25\n"
+#define YPR0_TARGET "Target : KR\n"
+#define YPR0_USER "User : rockbox\n"
+#define YPR0_DIR "Dir : /.rockbox\n"
+#define YPR0_TIME "BuildTime : 11/04/20 14:17:34\n"
+
+#define YPR0_COMPONENTS_COUNT 4
+
+#define MD5_DIGEST_LENGTH 16
+
+extern char* firmware_components[];
+extern char* firmware_filenames[];
+extern uint8_t g_yp_key[128];
+
+struct firmware_data
+{
+ char* component_data[YPR0_COMPONENTS_COUNT];
+ size_t component_size[YPR0_COMPONENTS_COUNT];
+ char component_checksum[YPR0_COMPONENTS_COUNT][MD5_DIGEST_LENGTH*2+1];
+};
+
+enum samsung_error_t
+{
+ SAMSUNG_SUCCESS = 0,
+ SAMSUNG_READ_ERROR = -1,
+ SAMSUNG_FORMAT_ERROR = -2,
+ SAMSUNG_MD5_ERROR = -3,
+ SAMSUNG_WRITE_ERROR = -4,
+};
+
+void cyclic_xor(void *data, int datasize, void *xor, int xorsize);
+size_t get_filesize(FILE* handle);
+void join_path(char* destination, char* first, char* second);
+void md5sum(char* component_checksum, char* data, unsigned long size);
+
+#endif /* _COMMON_H_ */