X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/1bd3d118c77e7c3336f3042c56e4932717ebc804..00cf6ef986e8b39c4008a9cdfe3459eb86d469f6:/openwrt/target/utils/src/addpattern.c diff --git a/openwrt/target/utils/src/addpattern.c b/openwrt/target/utils/src/addpattern.c index 5298f7b00..5f49b921f 100644 --- a/openwrt/target/utils/src/addpattern.c +++ b/openwrt/target/utils/src/addpattern.c @@ -66,7 +66,8 @@ struct code_header { /* from cyutils.h */ char fwvern[3]; char id[4]; /* U2ND */ char hw_ver; /* 0: for 4702, 1: for 4712 -- new in 2.04.3 */ - unsigned short flags; /* SUPPORT_ flags new for 3.37.2 (WRT54G v2.2 and WRT54GS v1.1) */ + char unused; + unsigned char flags[2]; /* SUPPORT_ flags new for 3.37.2 (WRT54G v2.2 and WRT54GS v1.1) */ unsigned char res2[10]; } ; @@ -104,7 +105,7 @@ int main(int argc, char **argv) hdr = (struct code_header *) buf; memset(hdr, 0, sizeof(struct code_header)); - while ((c = getopt(argc, argv, "i:o:p:gbv:012")) != -1) { + while ((c = getopt(argc, argv, "i:o:p:gbv:0124")) != -1) { switch (c) { case 'i': ifn = optarg; @@ -132,14 +133,14 @@ int main(int argc, char **argv) break; case '2': /* new 54G v2.2 and 54GS v1.1 flags */ hdr->hw_ver = 1; - hdr->flags |= SUPPORT_4712_CHIP; - hdr->flags |= SUPPORT_INTEL_FLASH; - hdr->flags |= SUPPORT_5325E_SWITCH; + hdr->flags[0] |= SUPPORT_4712_CHIP; + hdr->flags[0] |= SUPPORT_INTEL_FLASH; + hdr->flags[0] |= SUPPORT_5325E_SWITCH; break; case '4': /* V4 firmware sets the flags to 0x1f */ - hdr->hw_ver = 1; - hdr->flags = 0x1f; + hdr->hw_ver = 0; + hdr->flags[0] = 0x1f; break; default: