=============================================================================== 00107630 : { 107630: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} context->base.printer = printer; 107634: 67c3 str r3, [r0, #124] ; 0x7c while (todo > 0) { 107636: b31a cbz r2, 107680 done = 0; 107638: f04f 0b00 mov.w fp, #0 if (strncmp(&bufr[257], "ustar", 5)) { 10763c: f643 69ec movw r9, #16108 ; 0x3eec 107640: 4604 mov r4, r0 107642: 4688 mov r8, r1 107644: 4616 mov r6, r2 context->state = UNTAR_CHUNK_HEADER; 107646: 46da mov sl, fp if (strncmp(&bufr[257], "ustar", 5)) { 107648: f2c0 0911 movt r9, #17 switch (context->state) { 10764c: f8d4 70e4 ldr.w r7, [r4, #228] ; 0xe4 107650: 2f01 cmp r7, #1 107652: d006 beq.n 107662 107654: 2f02 cmp r7, #2 107656: d059 beq.n 10770c 107658: b1b7 cbz r7, 107688 10765a: 2701 movs r7, #1 <== NOT EXECUTED } 10765c: 4638 mov r0, r7 <== NOT EXECUTED 10765e: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} <== NOT EXECUTED remaining = context->base.file_size - context->done_bytes; 107662: f8d4 22e8 ldr.w r2, [r4, #744] ; 0x2e8 107666: 6f21 ldr r1, [r4, #112] ; 0x70 107668: 1a8d subs r5, r1, r2 consume = MIN(remaining, todo); 10766a: 42b5 cmp r5, r6 10766c: bf28 it cs 10766e: 4635 movcs r5, r6 context->done_bytes += consume; 107670: 442a add r2, r5 if (context->done_bytes == context->base.file_size) { 107672: 4291 cmp r1, r2 context->done_bytes += consume; 107674: f8c4 22e8 str.w r2, [r4, #744] ; 0x2e8 if (context->done_bytes == context->base.file_size) { 107678: d06f beq.n 10775a while (todo > 0) { 10767a: 1b76 subs r6, r6, r5 done += consume; 10767c: 44ab add fp, r5 while (todo > 0) { 10767e: d1e5 bne.n 10764c <== ALWAYS TAKEN return UNTAR_SUCCESSFUL; 107680: 2700 movs r7, #0 } 107682: 4638 mov r0, r7 107684: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} remaining = 512 - context->done_bytes; 107688: f8d4 02e8 ldr.w r0, [r4, #744] ; 0x2e8 memcpy(&context->header[context->done_bytes], &buf[done], consume); 10768c: eb08 010b add.w r1, r8, fp remaining = 512 - context->done_bytes; 107690: f5c0 7500 rsb r5, r0, #512 ; 0x200 memcpy(&context->header[context->done_bytes], &buf[done], consume); 107694: 30e8 adds r0, #232 ; 0xe8 consume = MIN(remaining, todo); 107696: 42b5 cmp r5, r6 memcpy(&context->header[context->done_bytes], &buf[done], consume); 107698: 4420 add r0, r4 consume = MIN(remaining, todo); 10769a: bf28 it cs 10769c: 4635 movcs r5, r6 memcpy(&context->header[context->done_bytes], &buf[done], consume); 10769e: 462a mov r2, r5 1076a0: f007 ebee blx 10ee80 context->done_bytes += consume; 1076a4: f8d4 22e8 ldr.w r2, [r4, #744] ; 0x2e8 1076a8: 442a add r2, r5 if (context->done_bytes == 512) { 1076aa: f5b2 7f00 cmp.w r2, #512 ; 0x200 context->done_bytes += consume; 1076ae: f8c4 22e8 str.w r2, [r4, #744] ; 0x2e8 if (context->done_bytes == 512) { 1076b2: d1e2 bne.n 10767a ctx->file_name[0] = '\0'; 1076b4: 6862 ldr r2, [r4, #4] if (strncmp(&bufr[257], "ustar", 5)) { 1076b6: 4649 mov r1, r9 1076b8: f204 10e9 addw r0, r4, #489 ; 0x1e9 ctx->file_name[0] = '\0'; 1076bc: 7017 strb r7, [r2, #0] ctx->linkflag = -1; 1076be: 22ff movs r2, #255 ; 0xff 1076c0: f884 2078 strb.w r2, [r4, #120] ; 0x78 if (strncmp(&bufr[257], "ustar", 5)) { 1076c4: 2205 movs r2, #5 ctx->nblocks = 0; 1076c6: e9c4 771c strd r7, r7, [r4, #112] ; 0x70 if (strncmp(&bufr[257], "ustar", 5)) { 1076ca: f008 fc27 bl 10ff1c 1076ce: 2800 cmp r0, #0 1076d0: d145 bne.n 10775e 1076d2: f104 01e8 add.w r1, r4, #232 ; 0xe8 1076d6: 4620 mov r0, r4 1076d8: f7ff fd10 bl 1070fc if (retval != UNTAR_SUCCESSFUL) { 1076dc: 4607 mov r7, r0 1076de: 2800 cmp r0, #0 1076e0: d140 bne.n 107764 <== ALWAYS TAKEN if (context->base.linkflag == REGTYPE) { 1076e2: f894 2078 ldrb.w r2, [r4, #120] ; 0x78 1076e6: 2a30 cmp r2, #48 ; 0x30 1076e8: d139 bne.n 10775e context->out_fd = creat(context->base.file_path, 1076ea: 6ee1 ldr r1, [r4, #108] ; 0x6c 1076ec: 6820 ldr r0, [r4, #0] 1076ee: f007 fa6f bl 10ebd0 if (context->out_fd >= 0) { 1076f2: 2800 cmp r0, #0 context->done_bytes = 0; 1076f4: e9c4 70ba strd r7, r0, [r4, #744] ; 0x2e8 context->base.file_size = 512 * context->base.nblocks; 1076f8: bfb7 itett lt 1076fa: 6f62 ldrlt r2, [r4, #116] ; 0x74 context->state = UNTAR_CHUNK_WRITE; 1076fc: 2202 movge r2, #2 context->base.file_size = 512 * context->base.nblocks; 1076fe: 0252 lsllt r2, r2, #9 107700: 6722 strlt r2, [r4, #112] ; 0x70 context->state = UNTAR_CHUNK_SKIP; 107702: bfb8 it lt 107704: 2201 movlt r2, #1 107706: f8c4 20e4 str.w r2, [r4, #228] ; 0xe4 context->done_bytes = 0; 10770a: e7b6 b.n 10767a remaining = context->base.file_size - context->done_bytes; 10770c: f8d4 22e8 ldr.w r2, [r4, #744] ; 0x2e8 write(context->out_fd, &buf[done], consume); 107710: eb08 010b add.w r1, r8, fp remaining = context->base.file_size - context->done_bytes; 107714: 6f25 ldr r5, [r4, #112] ; 0x70 write(context->out_fd, &buf[done], consume); 107716: f8d4 02ec ldr.w r0, [r4, #748] ; 0x2ec remaining = context->base.file_size - context->done_bytes; 10771a: 1aad subs r5, r5, r2 consume = MIN(remaining, todo); 10771c: 42b5 cmp r5, r6 10771e: bf28 it cs 107720: 4635 movcs r5, r6 write(context->out_fd, &buf[done], consume); 107722: 462a mov r2, r5 107724: f7fe fc9a bl 10605c context->done_bytes += consume; 107728: f8d4 22e8 ldr.w r2, [r4, #744] ; 0x2e8 if (context->done_bytes == context->base.file_size) { 10772c: 6f21 ldr r1, [r4, #112] ; 0x70 context->done_bytes += consume; 10772e: 442a add r2, r5 if (context->done_bytes == context->base.file_size) { 107730: 428a cmp r2, r1 context->done_bytes += consume; 107732: f8c4 22e8 str.w r2, [r4, #744] ; 0x2e8 if (context->done_bytes == context->base.file_size) { 107736: d1a0 bne.n 10767a close(context->out_fd); 107738: f8d4 02ec ldr.w r0, [r4, #748] ; 0x2ec 10773c: f7fd fb78 bl 104e30 context->base.file_size = 512 * context->base.nblocks 107740: e9d4 211c ldrd r2, r1, [r4, #112] ; 0x70 context->out_fd = -1; 107744: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff context->done_bytes = 0; 107748: e9c4 a3ba strd sl, r3, [r4, #744] ; 0x2e8 - context->base.file_size; 10774c: ebc2 2241 rsb r2, r2, r1, lsl #9 context->base.file_size = 512 * context->base.nblocks 107750: 6722 str r2, [r4, #112] ; 0x70 context->state = UNTAR_CHUNK_SKIP; 107752: 2201 movs r2, #1 107754: f8c4 20e4 str.w r2, [r4, #228] ; 0xe4 context->done_bytes = 0; 107758: e78f b.n 10767a context->state = UNTAR_CHUNK_HEADER; 10775a: f8c4 a0e4 str.w sl, [r4, #228] ; 0xe4 context->done_bytes = 0; 10775e: f8c4 a2e8 str.w sl, [r4, #744] ; 0x2e8 107762: e78a b.n 10767a context->state = UNTAR_CHUNK_ERROR; 107764: 2303 movs r3, #3 <== NOT EXECUTED 107766: f8c4 30e4 str.w r3, [r4, #228] ; 0xe4 <== NOT EXECUTED return retval; 10776a: e777 b.n 10765c <== NOT EXECUTED =============================================================================== 00107528 : { 107528: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} 10752c: 460c mov r4, r1 10752e: b0bd sub sp, #244 ; 0xf4 if ((fd = open(tar_name, O_RDONLY)) < 0) { 107530: 2100 movs r1, #0 107532: f7fd ffb9 bl 1054a8 107536: 1e07 subs r7, r0, #0 return UNTAR_FAIL; 107538: bfb8 it lt 10753a: 2401 movlt r4, #1 if ((fd = open(tar_name, O_RDONLY)) < 0) { 10753c: db5a blt.n 1075f4 <== ALWAYS TAKEN bufr = (char *)malloc(512); 10753e: f44f 7000 mov.w r0, #512 ; 0x200 107542: f002 f8dd bl 109700 if (bufr == NULL) { 107546: 4605 mov r5, r0 107548: 2800 cmp r0, #0 10754a: d05f beq.n 10760c <== ALWAYS TAKEN if (strncmp(&bufr[257], "ustar", 5)) { 10754c: f643 68ec movw r8, #16108 ; 0x3eec ctx->file_name[0] = '\0'; 107550: 2600 movs r6, #0 if (strncmp(&bufr[257], "ustar", 5)) { 107552: f2c0 0811 movt r8, #17 ctx.file_path = buf; 107556: ab03 add r3, sp, #12 ctx.printer = printer; 107558: 943b str r4, [sp, #236] ; 0xec ctx.file_name = buf; 10755a: e9cd 331c strd r3, r3, [sp, #112] ; 0x70 if ((n = read(fd, bufr, 512)) != 512) { 10755e: f44f 7200 mov.w r2, #512 ; 0x200 107562: 4629 mov r1, r5 107564: 4638 mov r0, r7 107566: f7fe f8e7 bl 105738 10756a: f5b0 7f00 cmp.w r0, #512 ; 0x200 10756e: d13a bne.n 1075e6 ctx->file_name[0] = '\0'; 107570: 9b1d ldr r3, [sp, #116] ; 0x74 ctx->linkflag = -1; 107572: 24ff movs r4, #255 ; 0xff if (strncmp(&bufr[257], "ustar", 5)) { 107574: 2205 movs r2, #5 107576: 4641 mov r1, r8 107578: f205 1001 addw r0, r5, #257 ; 0x101 ctx->file_name[0] = '\0'; 10757c: 701e strb r6, [r3, #0] ctx->nblocks = 0; 10757e: e9cd 6638 strd r6, r6, [sp, #224] ; 0xe0 ctx->linkflag = -1; 107582: f88d 40e8 strb.w r4, [sp, #232] ; 0xe8 if (strncmp(&bufr[257], "ustar", 5)) { 107586: f008 fcc9 bl 10ff1c 10758a: 2800 cmp r0, #0 10758c: d1e7 bne.n 10755e 10758e: 4629 mov r1, r5 107590: a81c add r0, sp, #112 ; 0x70 107592: f7ff fdb3 bl 1070fc if (retval != UNTAR_SUCCESSFUL) 107596: 4604 mov r4, r0 107598: bb30 cbnz r0, 1075e8 if (ctx.linkflag == REGTYPE) { 10759a: f89d 30e8 ldrb.w r3, [sp, #232] ; 0xe8 10759e: 2b30 cmp r3, #48 ; 0x30 1075a0: d1dd bne.n 10755e if ((out_fd = creat(ctx.file_path, ctx.mode)) == -1) { 1075a2: 9937 ldr r1, [sp, #220] ; 0xdc 1075a4: 981c ldr r0, [sp, #112] ; 0x70 1075a6: f007 fb13 bl 10ebd0 1075aa: f1b0 3fff cmp.w r0, #4294967295 ; 0xffffffff (void) lseek(fd, SEEK_CUR, 512UL * ctx.nblocks); 1075ae: 9b39 ldr r3, [sp, #228] ; 0xe4 if ((out_fd = creat(ctx.file_path, ctx.mode)) == -1) { 1075b0: 4681 mov r9, r0 1075b2: d023 beq.n 1075fc <== ALWAYS TAKEN for (i = 0; i < ctx.nblocks; i++) { 1075b4: b19b cbz r3, 1075de n = read(fd, bufr, 512); 1075b6: f44f 7200 mov.w r2, #512 ; 0x200 1075ba: 4629 mov r1, r5 1075bc: 4638 mov r0, r7 1075be: f7fe f8bb bl 105738 n = MIN(n, ctx.file_size - (i * 512UL)); 1075c2: 9b38 ldr r3, [sp, #224] ; 0xe0 (void) write(out_fd, bufr, n); 1075c4: 4629 mov r1, r5 n = MIN(n, ctx.file_size - (i * 512UL)); 1075c6: eba3 2244 sub.w r2, r3, r4, lsl #9 for (i = 0; i < ctx.nblocks; i++) { 1075ca: 3401 adds r4, #1 (void) write(out_fd, bufr, n); 1075cc: 4282 cmp r2, r0 1075ce: bf28 it cs 1075d0: 4602 movcs r2, r0 1075d2: 4648 mov r0, r9 1075d4: f7fe fd42 bl 10605c for (i = 0; i < ctx.nblocks; i++) { 1075d8: 9b39 ldr r3, [sp, #228] ; 0xe4 1075da: 42a3 cmp r3, r4 1075dc: d8eb bhi.n 1075b6 <== ALWAYS TAKEN close(out_fd); 1075de: 4648 mov r0, r9 1075e0: f7fd fc26 bl 104e30 1075e4: e7bb b.n 10755e 1075e6: 2400 movs r4, #0 free(bufr); 1075e8: 4628 mov r0, r5 1075ea: f001 ffb5 bl 109558 close(fd); 1075ee: 4638 mov r0, r7 1075f0: f7fd fc1e bl 104e30 } 1075f4: 4620 mov r0, r4 1075f6: b03d add sp, #244 ; 0xf4 1075f8: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} (void) lseek(fd, SEEK_CUR, 512UL * ctx.nblocks); 1075fc: 025b lsls r3, r3, #9 <== NOT EXECUTED 1075fe: 2201 movs r2, #1 <== NOT EXECUTED 107600: 4638 mov r0, r7 <== NOT EXECUTED 107602: 9300 str r3, [sp, #0] <== NOT EXECUTED 107604: 2300 movs r3, #0 <== NOT EXECUTED 107606: f7fd fd2d bl 105064 <== NOT EXECUTED 10760a: e7a8 b.n 10755e <== NOT EXECUTED close(fd); 10760c: 4638 mov r0, r7 <== NOT EXECUTED return(UNTAR_FAIL); 10760e: 2401 movs r4, #1 <== NOT EXECUTED close(fd); 107610: f7fd fc0e bl 104e30 <== NOT EXECUTED return(UNTAR_FAIL); 107614: e7ee b.n 1075f4 <== NOT EXECUTED 107616: bf00 nop =============================================================================== 001077b4 : Untar_GzChunkContext *ctx, void *chunk, size_t chunk_size, const rtems_printer *printer ) { 1077b4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 1077b8: 4604 mov r4, r0 1077ba: 4698 mov r8, r3 /* Inflate until output buffer is not full */ do { ctx->strm.next_out = (Bytef *) ctx->inflateBuffer; ctx->strm.avail_out = ctx->inflateBufferSize; status = inflate(&ctx->strm, Z_NO_FLUSH); 1077bc: f500 773c add.w r7, r0, #752 ; 0x2f0 ctx->strm.avail_in = (size_t)chunk_size; 1077c0: e9c0 12bc strd r1, r2, [r0, #752] ; 0x2f0 1077c4: e006 b.n 1077d4 } } else { untar_succesful = UNTAR_GZ_INFLATE_FAILED; } } while (ctx->strm.avail_out == 0 && ctx->strm.avail_in > 0 && status == Z_OK); 1077c6: f8d4 3300 ldr.w r3, [r4, #768] ; 0x300 1077ca: bb03 cbnz r3, 10780e } while (ctx->strm.avail_out == 0 && ctx->strm.avail_in > 0 1077cc: f8d4 32f4 ldr.w r3, [r4, #756] ; 0x2f4 1077d0: b1eb cbz r3, 10780e && status == Z_OK); 1077d2: b9f5 cbnz r5, 107812 ctx->strm.avail_out = ctx->inflateBufferSize; 1077d4: e9d4 23ca ldrd r2, r3, [r4, #808] ; 0x328 status = inflate(&ctx->strm, Z_NO_FLUSH); 1077d8: 2100 movs r1, #0 1077da: 4638 mov r0, r7 untar_succesful = UNTAR_GZ_INFLATE_FAILED; 1077dc: 2604 movs r6, #4 ctx->strm.avail_out = ctx->inflateBufferSize; 1077de: e9c4 23bf strd r2, r3, [r4, #764] ; 0x2fc status = inflate(&ctx->strm, Z_NO_FLUSH); 1077e2: f004 fbdb bl 10bf9c if (status == Z_OK || status == Z_STREAM_END) { 1077e6: 2801 cmp r0, #1 status = inflate(&ctx->strm, Z_NO_FLUSH); 1077e8: 4605 mov r5, r0 if (status == Z_OK || status == Z_STREAM_END) { 1077ea: d8ec bhi.n 1077c6 <== ALWAYS TAKEN size_t inflated_size = 1077ec: f8d4 632c ldr.w r6, [r4, #812] ; 0x32c untar_succesful = Untar_FromChunk_Print(&ctx->base, 1077f0: 2300 movs r3, #0 size_t inflated_size = 1077f2: f8d4 2300 ldr.w r2, [r4, #768] ; 0x300 untar_succesful = Untar_FromChunk_Print(&ctx->base, 1077f6: 4620 mov r0, r4 1077f8: f8d4 1328 ldr.w r1, [r4, #808] ; 0x328 1077fc: 1ab2 subs r2, r6, r2 1077fe: f7ff ff17 bl 107630 if (untar_succesful != UNTAR_SUCCESSFUL){ 107802: 4606 mov r6, r0 107804: 2800 cmp r0, #0 107806: d0de beq.n 1077c6 <== NEVER TAKEN if (status != Z_OK) { rtems_printf(printer, "Zlib inflate end failed\n"); } } return untar_succesful; } 107808: 4630 mov r0, r6 10780a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if (status != Z_OK) { 10780e: 2d00 cmp r5, #0 107810: d0fa beq.n 107808 if (untar_succesful != UNTAR_SUCCESSFUL){ 107812: b9be cbnz r6, 107844 if (status != Z_STREAM_END) { 107814: 2d01 cmp r5, #1 107816: d006 beq.n 107826 <== NEVER TAKEN rtems_printf(printer, "Zlib inflate failed\n"); 107818: f643 7140 movw r1, #16192 ; 0x3f40 <== NOT EXECUTED 10781c: 4640 mov r0, r8 <== NOT EXECUTED 10781e: f2c0 0111 movt r1, #17 <== NOT EXECUTED 107822: f001 fffb bl 10981c <== NOT EXECUTED status = inflateEnd(&ctx->strm); 107826: 4638 mov r0, r7 107828: f005 fbea bl 10d000 if (status != Z_OK) { 10782c: 2800 cmp r0, #0 10782e: d0eb beq.n 107808 <== NEVER TAKEN rtems_printf(printer, "Zlib inflate end failed\n"); 107830: f643 7158 movw r1, #16216 ; 0x3f58 <== NOT EXECUTED 107834: 4640 mov r0, r8 <== NOT EXECUTED 107836: f2c0 0111 movt r1, #17 <== NOT EXECUTED 10783a: f001 ffef bl 10981c <== NOT EXECUTED } 10783e: 4630 mov r0, r6 <== NOT EXECUTED 107840: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} <== NOT EXECUTED rtems_printf(printer, "Untar not successful\n"); 107844: f643 7128 movw r1, #16168 ; 0x3f28 <== NOT EXECUTED 107848: 4640 mov r0, r8 <== NOT EXECUTED 10784a: f2c0 0111 movt r1, #17 <== NOT EXECUTED 10784e: f001 ffe5 bl 10981c <== NOT EXECUTED 107852: e7df b.n 107814 <== NOT EXECUTED =============================================================================== 001073a4 : { 1073a4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1073a8: b0bf sub sp, #252 ; 0xfc 1073aa: 4607 mov r7, r0 1073ac: 4689 mov r9, r1 1073ae: 4610 mov r0, r2 rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size); 1073b0: 460b mov r3, r1 { 1073b2: 9202 str r2, [sp, #8] rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size); 1073b4: f643 61f4 movw r1, #16116 ; 0x3ef4 ctx.file_path = buf; 1073b8: aa05 add r2, sp, #20 ptr = 0; 1073ba: 2400 movs r4, #0 if (strncmp(&bufr[257], "ustar", 5)) { 1073bc: f643 6aec movw sl, #16108 ; 0x3eec ctx.file_name = buf; 1073c0: e9cd 221e strd r2, r2, [sp, #120] ; 0x78 rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size); 1073c4: f2c0 0111 movt r1, #17 1073c8: 463a mov r2, r7 if (strncmp(&bufr[257], "ustar", 5)) { 1073ca: f2c0 0a11 movt sl, #17 ctx->file_name[0] = '\0'; 1073ce: 46a0 mov r8, r4 ctx.printer = printer; 1073d0: 903d str r0, [sp, #244] ; 0xf4 rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size); 1073d2: f002 fa23 bl 10981c ctx->linkflag = -1; 1073d6: f04f 0bff mov.w fp, #255 ; 0xff if (ptr + 512 > size) { 1073da: f504 7500 add.w r5, r4, #512 ; 0x200 if (strncmp(&bufr[257], "ustar", 5)) { 1073de: f204 1001 addw r0, r4, #257 ; 0x101 if (ptr + 512 > size) { 1073e2: 454d cmp r5, r9 1073e4: eb07 0604 add.w r6, r7, r4 if (strncmp(&bufr[257], "ustar", 5)) { 1073e8: f04f 0205 mov.w r2, #5 1073ec: 4651 mov r1, sl 1073ee: 4438 add r0, r7 ptr = 0; 1073f0: 462c mov r4, r5 if (ptr + 512 > size) { 1073f2: d86e bhi.n 1074d2 ctx->file_name[0] = '\0'; 1073f4: 9b1f ldr r3, [sp, #124] ; 0x7c 1073f6: f04f 0c00 mov.w ip, #0 1073fa: f883 c000 strb.w ip, [r3] ctx->nblocks = 0; 1073fe: e9cd 883a strd r8, r8, [sp, #232] ; 0xe8 ctx->linkflag = -1; 107402: f88d b0f0 strb.w fp, [sp, #240] ; 0xf0 if (strncmp(&bufr[257], "ustar", 5)) { 107406: f008 fd89 bl 10ff1c 10740a: 4603 mov r3, r0 10740c: 4631 mov r1, r6 10740e: a81e add r0, sp, #120 ; 0x78 107410: 2b00 cmp r3, #0 107412: d1e2 bne.n 1073da 107414: f7ff fe72 bl 1070fc if (retval != UNTAR_SUCCESSFUL) 107418: 2800 cmp r0, #0 10741a: d155 bne.n 1074c8 <== ALWAYS TAKEN if (ctx.linkflag == REGTYPE) { 10741c: f89d 30f0 ldrb.w r3, [sp, #240] ; 0xf0 107420: 2b30 cmp r3, #48 ; 0x30 107422: d1da bne.n 1073da if ((fd = open(ctx.file_path, 107424: 9a39 ldr r2, [sp, #228] ; 0xe4 107426: 4606 mov r6, r0 107428: f240 6101 movw r1, #1537 ; 0x601 10742c: 981e ldr r0, [sp, #120] ; 0x78 10742e: f7fe f83b bl 1054a8 107432: f1b0 3fff cmp.w r0, #4294967295 ; 0xffffffff 107436: 4683 mov fp, r0 107438: d050 beq.n 1074dc <== ALWAYS TAKEN unsigned long sizeToGo = ctx.file_size; 10743a: e9dd 323a ldrd r3, r2, [sp, #232] ; 0xe8 for (i = 0; i < ctx.nblocks; i++) { 10743e: 2a00 cmp r2, #0 107440: d03e beq.n 1074c0 <== ALWAYS TAKEN 107442: f8cd 900c str.w r9, [sp, #12] 107446: 46b9 mov r9, r7 107448: 4637 mov r7, r6 10744a: 461e mov r6, r3 10744c: 4653 mov r3, sl 10744e: 4682 mov sl, r0 107450: 469b mov fp, r3 107452: e002 b.n 10745a 107454: 9a3b ldr r2, [sp, #236] ; 0xec 107456: 42ba cmp r2, r7 107458: d95b bls.n 107512 <== NEVER TAKEN len = ((sizeToGo < 512L) ? (sizeToGo) : (512L)); 10745a: f5b6 7f00 cmp.w r6, #512 ; 0x200 10745e: 4634 mov r4, r6 107460: bf28 it cs 107462: f44f 7400 movcs.w r4, #512 ; 0x200 n = write(fd, &tar_ptr[ptr], len); 107466: eb09 0105 add.w r1, r9, r5 10746a: 4622 mov r2, r4 10746c: 4650 mov r0, sl 10746e: f7fe fdf5 bl 10605c if (n != len) { 107472: 4284 cmp r4, r0 107474: 462a mov r2, r5 for (i = 0; i < ctx.nblocks; i++) { 107476: f107 0701 add.w r7, r7, #1 ptr += 512; 10747a: f505 7500 add.w r5, r5, #512 ; 0x200 sizeToGo -= n; 10747e: eba6 0604 sub.w r6, r6, r4 if (n != len) { 107482: d0e7 beq.n 107454 <== NEVER TAKEN Print_Error(printer, "write", ctx.file_path); 107484: 465b mov r3, fp <== NOT EXECUTED 107486: 4614 mov r4, r2 <== NOT EXECUTED 107488: 9d1e ldr r5, [sp, #120] ; 0x78 <== NOT EXECUTED 10748a: 464f mov r7, r9 <== NOT EXECUTED 10748c: 46d3 mov fp, sl <== NOT EXECUTED 10748e: f8dd 900c ldr.w r9, [sp, #12] <== NOT EXECUTED 107492: 469a mov sl, r3 <== NOT EXECUTED message, path, errno, strerror(errno)); 107494: f007 fba2 bl 10ebdc <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107498: 6806 ldr r6, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 10749a: f007 fb9f bl 10ebdc <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 10749e: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 1074a0: f008 fc86 bl 10fdb0 <== NOT EXECUTED 1074a4: f643 7218 movw r2, #16152 ; 0x3f18 <== NOT EXECUTED 1074a8: f643 6164 movw r1, #15972 ; 0x3e64 <== NOT EXECUTED 1074ac: e9cd 6000 strd r6, r0, [sp] <== NOT EXECUTED 1074b0: 462b mov r3, r5 <== NOT EXECUTED 1074b2: 9802 ldr r0, [sp, #8] <== NOT EXECUTED 1074b4: f2c0 0211 movt r2, #17 <== NOT EXECUTED 1074b8: f2c0 0111 movt r1, #17 <== NOT EXECUTED 1074bc: f002 f9ae bl 10981c <== NOT EXECUTED close(fd); 1074c0: 4658 mov r0, fp <== NOT EXECUTED 1074c2: f7fd fcb5 bl 104e30 <== NOT EXECUTED 1074c6: e786 b.n 1073d6 <== NOT EXECUTED 1074c8: 4606 mov r6, r0 <== NOT EXECUTED } 1074ca: 4630 mov r0, r6 <== NOT EXECUTED 1074cc: b03f add sp, #252 ; 0xfc <== NOT EXECUTED 1074ce: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} <== NOT EXECUTED retval = UNTAR_SUCCESSFUL; 1074d2: 2600 movs r6, #0 } 1074d4: 4630 mov r0, r6 1074d6: b03f add sp, #252 ; 0xfc 1074d8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} Print_Error(printer, "open", ctx.file_path); 1074dc: 9c1e ldr r4, [sp, #120] ; 0x78 <== NOT EXECUTED message, path, errno, strerror(errno)); 1074de: f007 fb7d bl 10ebdc <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 1074e2: 6806 ldr r6, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 1074e4: f007 fb7a bl 10ebdc <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 1074e8: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 1074ea: f008 fc61 bl 10fdb0 <== NOT EXECUTED 1074ee: f643 7210 movw r2, #16144 ; 0x3f10 <== NOT EXECUTED 1074f2: f643 6164 movw r1, #15972 ; 0x3e64 <== NOT EXECUTED 1074f6: 4623 mov r3, r4 <== NOT EXECUTED 1074f8: e9cd 6000 strd r6, r0, [sp] <== NOT EXECUTED 1074fc: f2c0 0211 movt r2, #17 <== NOT EXECUTED 107500: 9802 ldr r0, [sp, #8] <== NOT EXECUTED 107502: f2c0 0111 movt r1, #17 <== NOT EXECUTED 107506: f002 f989 bl 10981c <== NOT EXECUTED ptr += 512 * ctx.nblocks; 10750a: 9c3b ldr r4, [sp, #236] ; 0xec <== NOT EXECUTED 10750c: eb05 2444 add.w r4, r5, r4, lsl #9 <== NOT EXECUTED 107510: e761 b.n 1073d6 <== NOT EXECUTED ptr += 512; 107512: 465b mov r3, fp 107514: 46d3 mov fp, sl close(fd); 107516: 4658 mov r0, fp ptr += 512; 107518: 464f mov r7, r9 10751a: 469a mov sl, r3 10751c: f8dd 900c ldr.w r9, [sp, #12] 107520: 462c mov r4, r5 close(fd); 107522: f7fd fc85 bl 104e30 107526: e756 b.n 1073d6 =============================================================================== 00107ae4 : return 0; } int Untar_ProcessHeader( 107ae4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 107ae8: f101 0293 add.w r2, r1, #147 ; 0x93 107aec: 4604 mov r4, r0 107aee: b09c sub sp, #112 ; 0x70 107af0: 460d mov r5, r1 for (i=0; i < len; i++) { 107af2: f101 069b add.w r6, r1, #155 ; 0x9b num = 0; 107af6: 2000 movs r0, #0 if ((octascii[i] < '0') || (octascii[i] > '9')) { 107af8: f812 3f01 ldrb.w r3, [r2, #1]! 107afc: 3b30 subs r3, #48 ; 0x30 107afe: b2d9 uxtb r1, r3 107b00: 2909 cmp r1, #9 num = num * 8 + ((unsigned long)(octascii[i] - '0')); 107b02: bf98 it ls 107b04: eb03 00c0 addls.w r0, r3, r0, lsl #3 for (i=0; i < len; i++) { 107b08: 42b2 cmp r2, r6 107b0a: d1f5 bne.n 107af8 const char *bufr ) { int i, sum; sum = 0; 107b0c: 2200 movs r2, #0 107b0e: f105 3eff add.w lr, r5, #4294967295 ; 0xffffffff for (i=0; i<512; i++) { 107b12: 4613 mov r3, r2 if ((i >= 148) && (i < 156)) 107b14: f1a3 0c94 sub.w ip, r3, #148 ; 0x94 for (i=0; i<512; i++) { 107b18: 3301 adds r3, #1 if ((i >= 148) && (i < 156)) 107b1a: f1bc 0f07 cmp.w ip, #7 sum += 0xff & ' '; 107b1e: bf98 it ls 107b20: 3220 addls r2, #32 if ((i >= 148) && (i < 156)) 107b22: d9f7 bls.n 107b14 else sum += 0xff & bufr[i]; 107b24: f81e c003 ldrb.w ip, [lr, r3] for (i=0; i<512; i++) { 107b28: f5b3 7f00 cmp.w r3, #512 ; 0x200 sum += 0xff & bufr[i]; 107b2c: 4462 add r2, ip for (i=0; i<512; i++) { 107b2e: d1f1 bne.n 107b14 if (sum != hdr_chksum) { 107b30: 4290 cmp r0, r2 107b32: f040 80ca bne.w 107cca <== ALWAYS TAKEN strlcpy(ctx->file_name, bufr, UNTAR_FILE_NAME_SIZE); 107b36: 2264 movs r2, #100 ; 0x64 107b38: 4629 mov r1, r5 107b3a: 6860 ldr r0, [r4, #4] 107b3c: f105 0687 add.w r6, r5, #135 ; 0x87 107b40: f010 fb04 bl 11814c ctx->mode = strtoul(&bufr[100], NULL, 8); 107b44: 2208 movs r2, #8 107b46: 2100 movs r1, #0 107b48: f105 0064 add.w r0, r5, #100 ; 0x64 107b4c: f010 fcca bl 1184e4 107b50: 66e0 str r0, [r4, #108] ; 0x6c ctx->linkflag = bufr[156]; 107b52: f105 027b add.w r2, r5, #123 ; 0x7b 107b56: f895 709c ldrb.w r7, [r5, #156] ; 0x9c num = 0; 107b5a: 2000 movs r0, #0 ctx->linkflag = bufr[156]; 107b5c: f884 7078 strb.w r7, [r4, #120] ; 0x78 if ((octascii[i] < '0') || (octascii[i] > '9')) { 107b60: f812 3f01 ldrb.w r3, [r2, #1]! 107b64: 3b30 subs r3, #48 ; 0x30 107b66: b2d9 uxtb r1, r3 107b68: 2909 cmp r1, #9 num = num * 8 + ((unsigned long)(octascii[i] - '0')); 107b6a: bf98 it ls 107b6c: eb03 00c0 addls.w r0, r3, r0, lsl #3 for (i=0; i < len; i++) { 107b70: 42b2 cmp r2, r6 107b72: d1f5 bne.n 107b60 if (Make_Path(ctx->printer, ctx->file_path) != 0) { 107b74: f8d4 a000 ldr.w sl, [r4] ctx->file_size = _rtems_octal2ulong(&bufr[124], 12); 107b78: 6720 str r0, [r4, #112] ; 0x70 if (Make_Path(ctx->printer, ctx->file_path) != 0) { 107b7a: f8d4 907c ldr.w r9, [r4, #124] ; 0x7c while (*path == '/') { 107b7e: f89a 0000 ldrb.w r0, [sl] 107b82: 282f cmp r0, #47 ; 0x2f 107b84: d103 bne.n 107b8e <== NEVER TAKEN 107b86: f81a 0f01 ldrb.w r0, [sl, #1]! <== NOT EXECUTED 107b8a: 282f cmp r0, #47 ; 0x2f <== NOT EXECUTED 107b8c: d0fb beq.n 107b86 <== NOT EXECUTED if (p[0] == '\0') { 107b8e: 2800 cmp r0, #0 107b90: f000 80fa beq.w 107d88 <== ALWAYS TAKEN 107b94: 4656 mov r6, sl *p = '\0'; 107b96: 2700 movs r7, #0 *p = '/'; 107b98: f04f 082f mov.w r8, #47 ; 0x2f } else if (p[0] != '/') { 107b9c: 282f cmp r0, #47 ; 0x2f if (p[1] == '\0') { 107b9e: f816 2f01 ldrb.w r2, [r6, #1]! } else if (p[0] != '/') { 107ba2: d11e bne.n 107be2 *p = '\0'; 107ba4: f806 7c01 strb.w r7, [r6, #-1] if (p[1] == '\0') { 107ba8: 2a00 cmp r2, #0 107baa: f000 809a beq.w 107ce2 <== ALWAYS TAKEN if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) != 0) { 107bae: f240 11ff movw r1, #511 ; 0x1ff 107bb2: 4650 mov r0, sl 107bb4: f7fd fabe bl 105134 107bb8: b9b8 cbnz r0, 107bea if (p[0] == '\0') { 107bba: 7830 ldrb r0, [r6, #0] *p = '/'; 107bbc: f806 8c01 strb.w r8, [r6, #-1] if (p[0] == '\0') { 107bc0: 2800 cmp r0, #0 107bc2: d1eb bne.n 107b9c <== NEVER TAKEN if (ctx->linkflag == SYMTYPE) { 107bc4: f894 7078 ldrb.w r7, [r4, #120] ; 0x78 int retval = UNTAR_SUCCESSFUL; 107bc8: 4606 mov r6, r0 if (ctx->linkflag == SYMTYPE) { 107bca: 2f32 cmp r7, #50 ; 0x32 107bcc: d04a beq.n 107c64 } else if (ctx->linkflag == REGTYPE) { 107bce: 2f30 cmp r7, #48 ; 0x30 107bd0: f000 808e beq.w 107cf0 <== NEVER TAKEN } else if (ctx->linkflag == DIRTYPE) { 107bd4: 2f35 cmp r7, #53 ; 0x35 <== NOT EXECUTED 107bd6: f000 809f beq.w 107d18 <== NOT EXECUTED } 107bda: 4630 mov r0, r6 107bdc: b01c add sp, #112 ; 0x70 107bde: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} if (p[1] == '\0') { 107be2: 4610 mov r0, r2 if (p[0] == '\0') { 107be4: 2800 cmp r0, #0 107be6: d1d9 bne.n 107b9c 107be8: e7ec b.n 107bc4 if (errno == EEXIST || errno == EISDIR) { 107bea: f00d fd31 bl 115650 <__errno> 107bee: 6803 ldr r3, [r0, #0] 107bf0: 2b11 cmp r3, #17 107bf2: d004 beq.n 107bfe <== NEVER TAKEN 107bf4: f00d fd2c bl 115650 <__errno> <== NOT EXECUTED 107bf8: 6803 ldr r3, [r0, #0] <== NOT EXECUTED 107bfa: 2b15 cmp r3, #21 <== NOT EXECUTED 107bfc: d1dd bne.n 107bba <== NOT EXECUTED if (stat(path, &sb) != 0) { 107bfe: a902 add r1, sp, #8 107c00: 4650 mov r0, sl 107c02: f7fd fe9f bl 105944 107c06: bb40 cbnz r0, 107c5a if (!S_ISDIR(sb.st_mode)) { 107c08: 9b06 ldr r3, [sp, #24] 107c0a: f403 4370 and.w r3, r3, #61440 ; 0xf000 107c0e: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 107c12: d0d2 beq.n 107bba <== NEVER TAKEN if (unlink(path) != 0) { 107c14: 4650 mov r0, sl <== NOT EXECUTED 107c16: f7fe fc5b bl 1064d0 <== NOT EXECUTED 107c1a: 2800 cmp r0, #0 <== NOT EXECUTED 107c1c: f040 809d bne.w 107d5a <== NOT EXECUTED if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) != 0) { 107c20: f240 11ff movw r1, #511 ; 0x1ff <== NOT EXECUTED 107c24: 4650 mov r0, sl <== NOT EXECUTED 107c26: f7fd fa85 bl 105134 <== NOT EXECUTED 107c2a: 2800 cmp r0, #0 <== NOT EXECUTED 107c2c: d0c5 beq.n 107bba <== NOT EXECUTED message, path, errno, strerror(errno)); 107c2e: f00d fd0f bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107c32: 6806 ldr r6, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 107c34: f00d fd0c bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107c38: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 107c3a: f010 fa7b bl 118134 <== NOT EXECUTED 107c3e: f242 2260 movw r2, #8800 ; 0x2260 <== NOT EXECUTED 107c42: f242 2148 movw r1, #8776 ; 0x2248 <== NOT EXECUTED 107c46: 9001 str r0, [sp, #4] <== NOT EXECUTED 107c48: 4653 mov r3, sl <== NOT EXECUTED 107c4a: 4648 mov r0, r9 <== NOT EXECUTED 107c4c: f2c0 0212 movt r2, #18 <== NOT EXECUTED 107c50: f2c0 0112 movt r1, #18 <== NOT EXECUTED 107c54: 9600 str r6, [sp, #0] <== NOT EXECUTED 107c56: f7fd fd67 bl 105728 <== NOT EXECUTED if (ctx->linkflag == SYMTYPE) { 107c5a: f894 7078 ldrb.w r7, [r4, #120] ; 0x78 <== NOT EXECUTED retval = UNTAR_FAIL; 107c5e: 2601 movs r6, #1 <== NOT EXECUTED if (ctx->linkflag == SYMTYPE) { 107c60: 2f32 cmp r7, #50 ; 0x32 <== NOT EXECUTED 107c62: d1b4 bne.n 107bce <== NOT EXECUTED strlcpy(ctx->link_name, &bufr[157], sizeof(ctx->link_name)); 107c64: f104 0308 add.w r3, r4, #8 107c68: f105 019d add.w r1, r5, #157 ; 0x9d 107c6c: 2264 movs r2, #100 ; 0x64 107c6e: 4618 mov r0, r3 107c70: 461d mov r5, r3 107c72: f010 fa6b bl 11814c rtems_printf(ctx->printer, "untar: symlink: %s -> %s\n", 107c76: f242 2170 movw r1, #8816 ; 0x2270 107c7a: 6823 ldr r3, [r4, #0] 107c7c: f2c0 0112 movt r1, #18 107c80: 6fe0 ldr r0, [r4, #124] ; 0x7c 107c82: 462a mov r2, r5 107c84: f7fd fd50 bl 105728 r = symlink(ctx->link_name, ctx->file_path); 107c88: 6821 ldr r1, [r4, #0] 107c8a: 4628 mov r0, r5 107c8c: f7fe fbfe bl 10648c if (r != 0) { 107c90: 2800 cmp r0, #0 107c92: d0a2 beq.n 107bda <== NEVER TAKEN Print_Error(ctx->printer, "symlink", ctx->file_path); 107c94: 6827 ldr r7, [r4, #0] <== NOT EXECUTED retval = UNTAR_FAIL; 107c96: 2601 movs r6, #1 <== NOT EXECUTED Print_Error(ctx->printer, "symlink", ctx->file_path); 107c98: 6fe5 ldr r5, [r4, #124] ; 0x7c <== NOT EXECUTED message, path, errno, strerror(errno)); 107c9a: f00d fcd9 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107c9e: 6804 ldr r4, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 107ca0: f00d fcd6 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107ca4: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 107ca6: f010 fa45 bl 118134 <== NOT EXECUTED 107caa: f242 228c movw r2, #8844 ; 0x228c <== NOT EXECUTED 107cae: 4601 mov r1, r0 <== NOT EXECUTED 107cb0: 463b mov r3, r7 <== NOT EXECUTED 107cb2: f2c0 0212 movt r2, #18 <== NOT EXECUTED 107cb6: e9cd 4100 strd r4, r1, [sp] <== NOT EXECUTED 107cba: f242 2148 movw r1, #8776 ; 0x2248 <== NOT EXECUTED 107cbe: 4628 mov r0, r5 <== NOT EXECUTED 107cc0: f2c0 0112 movt r1, #18 <== NOT EXECUTED 107cc4: f7fd fd30 bl 105728 <== NOT EXECUTED } 107cc8: e787 b.n 107bda <== NOT EXECUTED rtems_printf(ctx->printer, "untar: file header checksum error\n"); 107cca: f242 211c movw r1, #8732 ; 0x221c <== NOT EXECUTED 107cce: 6fe0 ldr r0, [r4, #124] ; 0x7c <== NOT EXECUTED 107cd0: f2c0 0112 movt r1, #18 <== NOT EXECUTED return UNTAR_INVALID_CHECKSUM; 107cd4: 2602 movs r6, #2 <== NOT EXECUTED rtems_printf(ctx->printer, "untar: file header checksum error\n"); 107cd6: f7fd fd27 bl 105728 <== NOT EXECUTED } 107cda: 4630 mov r0, r6 <== NOT EXECUTED 107cdc: b01c add sp, #112 ; 0x70 <== NOT EXECUTED 107cde: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} <== NOT EXECUTED unlink(path); 107ce2: 4650 mov r0, sl <== NOT EXECUTED int retval = UNTAR_SUCCESSFUL; 107ce4: 4616 mov r6, r2 <== NOT EXECUTED unlink(path); 107ce6: f7fe fbf3 bl 1064d0 <== NOT EXECUTED if (ctx->linkflag == SYMTYPE) { 107cea: f894 7078 ldrb.w r7, [r4, #120] ; 0x78 <== NOT EXECUTED 107cee: e76c b.n 107bca <== NOT EXECUTED rtems_printf(ctx->printer, "untar: file: %s (s:%lu,m:%04lo)\n", 107cf0: 6ee2 ldr r2, [r4, #108] ; 0x6c 107cf2: f242 2194 movw r1, #8852 ; 0x2294 107cf6: 6f23 ldr r3, [r4, #112] ; 0x70 107cf8: f2c0 0112 movt r1, #18 107cfc: 9200 str r2, [sp, #0] 107cfe: 6822 ldr r2, [r4, #0] 107d00: 6fe0 ldr r0, [r4, #124] ; 0x7c 107d02: f7fd fd11 bl 105728 ctx->nblocks = (((ctx->file_size) + 511) & ~511) / 512; 107d06: 6f23 ldr r3, [r4, #112] ; 0x70 } 107d08: 4630 mov r0, r6 ctx->nblocks = (((ctx->file_size) + 511) & ~511) / 512; 107d0a: f203 13ff addw r3, r3, #511 ; 0x1ff 107d0e: 0a5b lsrs r3, r3, #9 107d10: 6763 str r3, [r4, #116] ; 0x74 } 107d12: b01c add sp, #112 ; 0x70 107d14: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} rtems_printf(ctx->printer, "untar: dir: %s\n", ctx->file_path); 107d18: f242 21b8 movw r1, #8888 ; 0x22b8 <== NOT EXECUTED 107d1c: 6822 ldr r2, [r4, #0] <== NOT EXECUTED 107d1e: f2c0 0112 movt r1, #18 <== NOT EXECUTED 107d22: 6fe0 ldr r0, [r4, #124] ; 0x7c <== NOT EXECUTED 107d24: f7fd fd00 bl 105728 <== NOT EXECUTED r = mkdir(ctx->file_path, ctx->mode); 107d28: 6ee1 ldr r1, [r4, #108] ; 0x6c <== NOT EXECUTED 107d2a: 6820 ldr r0, [r4, #0] <== NOT EXECUTED 107d2c: f7fd fa02 bl 105134 <== NOT EXECUTED if (r != 0) { 107d30: 2800 cmp r0, #0 <== NOT EXECUTED 107d32: f43f af52 beq.w 107bda <== NOT EXECUTED Print_Error(ctx->printer, "mkdir", ctx->file_path); 107d36: 6827 ldr r7, [r4, #0] <== NOT EXECUTED retval = UNTAR_FAIL; 107d38: 2601 movs r6, #1 <== NOT EXECUTED Print_Error(ctx->printer, "mkdir", ctx->file_path); 107d3a: 6fe5 ldr r5, [r4, #124] ; 0x7c <== NOT EXECUTED message, path, errno, strerror(errno)); 107d3c: f00d fc88 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107d40: 6804 ldr r4, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 107d42: f00d fc85 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107d46: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 107d48: f010 f9f4 bl 118134 <== NOT EXECUTED 107d4c: f242 22c8 movw r2, #8904 ; 0x22c8 <== NOT EXECUTED 107d50: 4601 mov r1, r0 <== NOT EXECUTED 107d52: 463b mov r3, r7 <== NOT EXECUTED 107d54: f2c0 0212 movt r2, #18 <== NOT EXECUTED 107d58: e7ad b.n 107cb6 <== NOT EXECUTED message, path, errno, strerror(errno)); 107d5a: f00d fc79 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107d5e: 6806 ldr r6, [r0, #0] <== NOT EXECUTED message, path, errno, strerror(errno)); 107d60: f00d fc76 bl 115650 <__errno> <== NOT EXECUTED rtems_printf(printer, "untar: %s: %s: (%d) %s\n", 107d64: 6800 ldr r0, [r0, #0] <== NOT EXECUTED 107d66: f010 f9e5 bl 118134 <== NOT EXECUTED 107d6a: f242 2240 movw r2, #8768 ; 0x2240 <== NOT EXECUTED 107d6e: f242 2148 movw r1, #8776 ; 0x2248 <== NOT EXECUTED 107d72: 9001 str r0, [sp, #4] <== NOT EXECUTED 107d74: 4653 mov r3, sl <== NOT EXECUTED 107d76: 4648 mov r0, r9 <== NOT EXECUTED 107d78: f2c0 0212 movt r2, #18 <== NOT EXECUTED 107d7c: f2c0 0112 movt r1, #18 <== NOT EXECUTED 107d80: 9600 str r6, [sp, #0] <== NOT EXECUTED 107d82: f7fd fcd1 bl 105728 <== NOT EXECUTED } 107d86: e768 b.n 107c5a <== NOT EXECUTED int retval = UNTAR_SUCCESSFUL; 107d88: 4606 mov r6, r0 <== NOT EXECUTED 107d8a: e71e b.n 107bca <== NOT EXECUTED