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:
		| @@ -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; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens