Fix potential unligned access with MyLoader based devices, thanks Juhos
[openwrt-10.03/.git] / tools / firmware-utils / src / mksyshdr.c
1 #include <stdlib.h>\r
2 #include <stdio.h>\r
3 #include <stdint.h>\r
4 \r
5 int main(int argc, char* argv[])\r
6 {\r
7         FILE* fp;\r
8         uint32_t  nImgSize;\r
9         char* pHeader1 = "CSYS";\r
10         uint32_t  nHeader2 = 0x80500000;\r
11 \r
12         if (argc != 3)\r
13         {\r
14                 printf("Usage: mksyshdr <header file> <image file>\n");\r
15                 return -1;\r
16         }\r
17 \r
18         fp = fopen(argv[2], "rb");\r
19         if (fp != NULL)\r
20         {\r
21                 fseek(fp, 0, SEEK_END);\r
22                 nImgSize = ftell(fp);\r
23                 fclose(fp);\r
24                 fp = fopen(argv[1], "wb+");\r
25                 if (fp != NULL)\r
26                 {\r
27                         fwrite(pHeader1,  sizeof(char), 4, fp);\r
28                         fwrite(&nHeader2, sizeof(nHeader2), 1, fp);\r
29                         fwrite(&nImgSize, sizeof(nImgSize), 1, fp);\r
30                         fclose(fp);\r
31                 }\r
32                 else\r
33                 {\r
34                         printf("Cannot create %s.\n", argv[1]);\r
35                         return -1;\r
36                 }\r
37         }\r
38         else\r
39         {\r
40                 printf("Cannot open %s.\n", argv[2]);\r
41                 return -1;\r
42         }\r
43 \r
44         return 0;\r
45 }\r
46 \r