diff options
Diffstat (limited to 'utils/ypr0tools/common.h')
-rw-r--r-- | utils/ypr0tools/common.h | 86 |
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_ */ |