mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
tools: otrx: allow own magic
This allows to specify an own magic instead of using the default magic value TRX_MAGIC. If no own magic is specified the default one will be used. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
cb740fbe25
commit
4d9f69322c
@ -287,7 +287,6 @@ static int otrx_create_write_hdr(FILE *trx, struct trx_header *hdr) {
|
|||||||
uint8_t buf[1024];
|
uint8_t buf[1024];
|
||||||
uint32_t crc32;
|
uint32_t crc32;
|
||||||
|
|
||||||
hdr->magic = cpu_to_le32(TRX_MAGIC);
|
|
||||||
hdr->version = 1;
|
hdr->version = 1;
|
||||||
|
|
||||||
fseek(trx, 0, SEEK_SET);
|
fseek(trx, 0, SEEK_SET);
|
||||||
@ -324,9 +323,13 @@ static int otrx_create(int argc, char **argv) {
|
|||||||
ssize_t sbytes;
|
ssize_t sbytes;
|
||||||
size_t curr_idx = 0;
|
size_t curr_idx = 0;
|
||||||
size_t curr_offset = sizeof(hdr);
|
size_t curr_offset = sizeof(hdr);
|
||||||
|
char *e;
|
||||||
|
uint32_t magic;
|
||||||
int c;
|
int c;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
hdr.magic = cpu_to_le32(TRX_MAGIC);
|
||||||
|
|
||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
fprintf(stderr, "No TRX file passed\n");
|
fprintf(stderr, "No TRX file passed\n");
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
@ -343,7 +346,7 @@ static int otrx_create(int argc, char **argv) {
|
|||||||
fseek(trx, curr_offset, SEEK_SET);
|
fseek(trx, curr_offset, SEEK_SET);
|
||||||
|
|
||||||
optind = 3;
|
optind = 3;
|
||||||
while ((c = getopt(argc, argv, "f:A:a:b:")) != -1) {
|
while ((c = getopt(argc, argv, "f:A:a:b:M:")) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'f':
|
case 'f':
|
||||||
if (curr_idx >= TRX_MAX_PARTS) {
|
if (curr_idx >= TRX_MAX_PARTS) {
|
||||||
@ -400,6 +403,14 @@ static int otrx_create(int argc, char **argv) {
|
|||||||
curr_offset += sbytes;
|
curr_offset += sbytes;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'M':
|
||||||
|
errno = 0;
|
||||||
|
magic = strtoul(optarg, &e, 0);
|
||||||
|
if (errno || (e == optarg) || *e)
|
||||||
|
fprintf(stderr, "illegal magic string %s\n", optarg);
|
||||||
|
else
|
||||||
|
hdr.magic = cpu_to_le32(magic);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (err)
|
if (err)
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user