diff options
Diffstat (limited to 'rbutil/chinachippatcher/main.c')
-rw-r--r-- | rbutil/chinachippatcher/main.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/rbutil/chinachippatcher/main.c b/rbutil/chinachippatcher/main.c new file mode 100644 index 0000000000..12b3a3543f --- /dev/null +++ b/rbutil/chinachippatcher/main.c | |||
@@ -0,0 +1,72 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2009 by Maurus Cuelenaere | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include <stdio.h> | ||
22 | #include <stdarg.h> | ||
23 | #include "chinachip.h" | ||
24 | |||
25 | #define VERSION "0.1" | ||
26 | #define PRINT(fmt, ...) fprintf(stderr, fmt"\n", ##__VA_ARGS__) | ||
27 | |||
28 | static void info(void* userdata, char* fmt, ...) | ||
29 | { | ||
30 | (void)userdata; | ||
31 | va_list args; | ||
32 | va_start(args, fmt); | ||
33 | vfprintf(stderr, fmt, args); | ||
34 | va_end(args); | ||
35 | } | ||
36 | |||
37 | static void err(void* userdata, char* fmt, ...) | ||
38 | { | ||
39 | (void)userdata; | ||
40 | va_list args; | ||
41 | va_start(args, fmt); | ||
42 | vfprintf(stderr, fmt, args); | ||
43 | va_end(args); | ||
44 | } | ||
45 | |||
46 | void usage(char* name) | ||
47 | { | ||
48 | PRINT("Usage:"); | ||
49 | PRINT(" %s <firmware> <bootloader> <firmware_output> [backup]", name); | ||
50 | PRINT("\nExample:"); | ||
51 | PRINT(" %s VX747.HXF bootloader.bin output.HXF ccpmp.bak", name); | ||
52 | PRINT(" This will copy ccpmp.bin in VX747.HXF as ccpmp.old and replace it" | ||
53 | " with bootloader.bin, the output will get written to output.HXF." | ||
54 | " The old ccpmp.bin will get written to ccpmp.bak."); | ||
55 | } | ||
56 | |||
57 | int main(int argc, char* argv[]) | ||
58 | { | ||
59 | PRINT("ChinaChipPatcher v" VERSION " - (C) Maurus Cuelenaere 2009"); | ||
60 | PRINT("This is free software; see the source for copying conditions. There is NO"); | ||
61 | PRINT("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); | ||
62 | |||
63 | if(argc < 4) | ||
64 | { | ||
65 | usage(argv[0]); | ||
66 | return 1; | ||
67 | } | ||
68 | |||
69 | return chinachip_patch(argv[1], argv[2], argv[3], argc > 4 ? argv[4] : NULL, | ||
70 | &info, &err, NULL); | ||
71 | } | ||
72 | |||