RTEMS-5
Annotated Report
Wed Aug 8 20:51:27 2018
40086124 <MSDOS_DOTDOT_NAME>:
40086124: 40 08 60 38 @.`8
40086128 <MSDOS_DOT_NAME>:
40086128: 40 08 60 28 00 00 00 00 72 74 65 6d 73 2d 72 66 @.`(....rtems-rf
40086138: 73 3a 20 62 6c 6f 63 6b 2d 6d 61 70 2d 67 72 6f s: block-map-gro
40086148: 77 3a 20 75 70 70 69 6e 67 3a 20 62 6c 6f 63 6b w: upping: block
40086158: 2d 63 6f 75 6e 74 3d 25 6c 64 0a 00 00 00 00 00 -count=%ld......
40086168: 72 74 65 6d 73 2d 72 66 73 3a 20 62 6c 6f 63 6b rtems-rfs: block
40086178: 2d 66 69 6e 64 3a 20 69 6e 76 61 6c 69 64 20 62 -find: invalid b
40086188: 6c 6f 63 6b 20 69 6e 20 74 61 62 6c 65 3a 20 62 lock in table: b
40086198: 6c 6f 63 6b 3d 25 6c 64 2c 20 69 6e 64 69 72 65 lock=%ld, indire
400861a8: 63 74 3d 25 6c 64 2f 25 64 0a 00 00 00 00 00 00 ct=%ld/%d.......
400861b8: 72 74 65 6d 73 2d 72 66 73 3a 20 62 6c 6f 63 6b rtems-rfs: block
400861c8: 2d 6d 61 70 2d 67 72 6f 77 3a 20 65 6e 74 72 79 -map-grow: entry
400861d8: 3a 20 62 6c 6f 63 6b 73 3d 25 7a 64 20 63 6f 75 : blocks=%zd cou
400861e8: 6e 74 3d 25 6c 75 0a 00 72 74 65 6d 73 2d 72 66 nt=%lu..rtems-rf
400861f8: 73 3a 20 62 6c 6f 63 6b 2d 6d 61 70 2d 73 68 72 s: block-map-shr
40086208: 69 6e 6b 3a 20 65 6e 74 72 79 3a 20 62 6c 6f 63 ink: entry: bloc
40086218: 6b 73 3d 25 7a 64 20 63 6f 75 6e 74 3d 25 6c 75 ks=%zd count=%lu
40086228: 0a 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ........rtems-rf
40086238: 73 3a 20 62 75 66 66 65 72 2d 73 63 61 6e 3a 20 s: buffer-scan:
40086248: 63 6f 75 6e 74 3d 25 6c 75 2c 20 62 6c 6f 63 6b count=%lu, block
40086258: 3d 25 6c 75 3a 20 00 00 25 69 20 00 00 00 00 00 =%lu: ..%i .....
40086268: 3a 20 66 6f 75 6e 64 20 62 6c 6f 63 6b 3d 25 69 : found block=%i
40086278: 0a 00 00 00 00 00 00 00 3a 20 6e 6f 74 20 66 6f ........: not fo
40086288: 75 6e 64 00 00 00 00 00 72 74 65 6d 73 2d 72 66 und.....rtems-rf
40086298: 73 3a 20 72 65 6c 65 61 73 65 2d 63 68 61 69 6e s: release-chain
400862a8: 3a 20 63 6f 75 6e 74 3d 25 6c 75 0a 00 00 00 00 : count=%lu.....
400862b8: 28 64 69 72 74 79 29 00 42 41 44 20 52 45 46 20 (dirty).BAD REF
400862c8: 43 4f 55 4e 54 00 00 00 72 74 65 6d 73 2d 72 66 COUNT...rtems-rf
400862d8: 73 3a 20 62 75 66 66 65 72 2d 72 65 6c 65 61 73 s: buffer-releas
400862e8: 65 3a 20 62 6c 6f 63 6b 3d 25 6c 75 20 25 73 20 e: block=%lu %s
400862f8: 72 65 66 73 3d 25 64 20 25 73 0a 00 00 00 00 00 refs=%d %s......
40086308: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086318: 72 2d 72 65 6c 65 61 73 65 3a 20 6c 6f 63 61 6c r-release: local
40086328: 20 63 61 63 68 65 20 6f 76 65 72 66 6c 6f 77 3a cache overflow:
40086338: 20 25 6c 75 0a 00 00 00 72 65 61 64 00 00 00 00 %lu....read....
40086348: 67 65 74 00 00 00 00 00 72 74 65 6d 73 2d 72 66 get.....rtems-rf
40086358: 73 3a 20 62 75 66 66 65 72 2d 72 65 71 75 65 73 s: buffer-reques
40086368: 74 3a 20 68 61 6e 64 6c 65 20 68 61 73 20 62 75 t: handle has bu
40086378: 66 66 65 72 3a 20 25 6c 75 0a 00 00 00 00 00 00 ffer: %lu.......
40086388: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086398: 72 2d 72 65 71 75 65 73 74 3a 20 62 6c 6f 63 6b r-request: block
400863a8: 3d 25 6c 75 0a 00 00 00 72 74 65 6d 73 2d 72 66 =%lu....rtems-rf
400863b8: 73 3a 20 62 75 66 66 65 72 2d 72 65 71 75 65 73 s: buffer-reques
400863c8: 74 3a 20 62 75 66 66 65 72 20 73 68 61 72 65 64 t: buffer shared
400863d8: 3a 20 72 65 66 73 3a 20 25 64 0a 00 00 00 00 00 : refs: %d......
400863e8: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
400863f8: 72 2d 72 65 71 75 65 73 74 3a 20 62 6c 6f 63 6b r-request: block
40086408: 3d 25 6c 75 3a 20 62 64 62 75 66 2d 25 73 3a 20 =%lu: bdbuf-%s:
40086418: 25 64 3a 20 25 73 0a 00 72 74 65 6d 73 2d 72 66 %d: %s..rtems-rf
40086428: 73 3a 20 62 75 66 66 65 72 2d 72 65 71 75 65 73 s: buffer-reques
40086438: 74 3a 20 62 6c 6f 63 6b 3d 25 6c 75 20 62 64 62 t: block=%lu bdb
40086448: 75 66 2d 25 73 3d 25 6c 75 20 72 65 66 73 3d 25 uf-%s=%lu refs=%
40086458: 64 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 d.......rtems-rf
40086468: 73 3a 20 62 75 66 66 65 72 2d 6f 70 65 6e 3a 20 s: buffer-open:
40086478: 6f 70 65 6e 69 6e 67 3a 20 25 73 0a 00 00 00 00 opening: %s.....
40086488: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086498: 72 2d 6f 70 65 6e 3a 20 63 61 6e 6e 6f 74 20 6f r-open: cannot o
400864a8: 70 65 6e 20 66 69 6c 65 00 00 00 00 00 00 00 00 pen file........
400864b8: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
400864c8: 72 2d 6f 70 65 6e 3a 20 73 74 61 74 20 27 25 73 r-open: stat '%s
400864d8: 27 20 66 61 69 6c 65 64 3a 20 25 73 0a 00 00 00 ' failed: %s....
400864e8: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
400864f8: 72 2d 6f 70 65 6e 3a 20 27 25 73 27 20 69 73 20 r-open: '%s' is
40086508: 6e 6f 74 20 61 20 62 6c 6f 63 6b 20 64 65 76 69 not a block devi
40086518: 63 65 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ce......rtems-rf
40086528: 73 3a 20 62 75 66 66 65 72 2d 6f 70 65 6e 3a 20 s: buffer-open:
40086538: 63 61 6e 6e 6f 74 20 6f 62 74 61 69 6e 20 74 68 cannot obtain th
40086548: 65 20 64 69 73 6b 00 00 72 74 65 6d 73 2d 72 66 e disk..rtems-rf
40086558: 73 3a 20 62 75 66 66 65 72 2d 6f 70 65 6e 3a 20 s: buffer-open:
40086568: 62 6c 6b 73 3d 25 6c 64 2c 20 62 6c 6b 2d 73 69 blks=%ld, blk-si
40086578: 7a 65 3d 25 6c 64 0a 00 72 74 65 6d 73 2d 72 66 ze=%ld..rtems-rf
40086588: 73 3a 20 62 75 66 66 65 72 2d 73 79 6e 63 3a 20 s: buffer-sync:
40086598: 73 79 6e 63 69 6e 67 00 72 74 65 6d 73 2d 72 66 syncing.rtems-rf
400865a8: 73 3a 20 62 75 66 66 65 72 2d 73 79 6e 63 3a 20 s: buffer-sync:
400865b8: 64 65 76 69 63 65 20 73 79 6e 63 20 66 61 69 6c device sync fail
400865c8: 65 64 3a 20 25 73 0a 00 72 74 65 6d 73 2d 72 66 ed: %s..rtems-rf
400865d8: 73 3a 20 62 75 66 66 65 72 73 2d 72 65 6c 65 61 s: buffers-relea
400865e8: 73 65 3a 20 61 63 74 69 76 65 3a 25 6c 75 20 72 se: active:%lu r
400865f8: 65 6c 65 61 73 65 3a 25 6c 75 20 72 65 6c 65 61 elease:%lu relea
40086608: 73 65 2d 6d 6f 64 69 66 69 65 64 3a 25 6c 75 0a se-modified:%lu.
...
40086620: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086630: 72 2d 73 65 74 62 6c 6b 73 69 7a 65 3a 20 62 6c r-setblksize: bl
40086640: 6f 63 6b 20 73 69 7a 65 3a 20 25 6c 75 0a 00 00 ock size: %lu...
40086650: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086660: 72 2d 73 65 74 62 6c 6b 73 69 7a 65 3a 20 62 75 r-setblksize: bu
40086670: 66 66 65 72 20 72 65 6c 65 61 73 65 20 66 61 69 ffer release fai
40086680: 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 led: %d: %s.....
40086690: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
400866a0: 72 2d 73 65 74 62 6c 6b 73 69 7a 65 3a 20 64 65 r-setblksize: de
400866b0: 76 69 63 65 20 73 79 6e 63 20 66 61 69 6c 65 64 vice sync failed
400866c0: 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 : %d: %s........
400866d0: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
400866e0: 72 2d 63 6c 6f 73 65 3a 20 63 6c 6f 73 69 6e 67 r-close: closing
...
400866f8: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086708: 72 2d 63 6c 6f 73 65 3a 20 73 65 74 20 6d 65 64 r-close: set med
40086718: 69 61 20 62 6c 6f 63 6b 20 73 69 7a 65 20 66 61 ia block size fa
40086728: 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 iled: %d: %s....
40086738: 72 74 65 6d 73 2d 72 66 73 3a 20 62 75 66 66 65 rtems-rfs: buffe
40086748: 72 2d 63 6c 6f 73 65 3a 20 66 69 6c 65 20 63 6c r-close: file cl
40086758: 6f 73 65 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 ose failed: %d:
40086768: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40086778: 73 3a 20 64 69 72 2d 6c 6f 6f 6b 75 70 2d 69 6e s: dir-lookup-in
40086788: 6f 3a 20 6c 6f 6f 6b 75 70 20 69 6e 6f 3a 20 72 o: lookup ino: r
40086798: 6f 6f 74 3d 25 6c 64 2c 20 70 61 74 68 3d 00 00 oot=%ld, path=..
400867a8: 2c 20 6c 65 6e 3d 25 64 0a 00 00 00 00 00 00 00 , len=%d........
400867b8: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
400867c8: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 6d 61 70 20 6f ookup-ino: map o
400867d8: 70 65 6e 20 66 61 69 6c 65 64 20 66 6f 72 20 69 pen failed for i
400867e8: 6e 6f 20 25 6c 75 3a 20 25 64 3a 20 25 73 00 00 no %lu: %d: %s..
400867f8: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
40086808: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 62 6c 6f 63 6b ookup-ino: block
40086818: 20 6d 61 70 20 66 69 6e 64 20 66 61 69 6c 65 64 map find failed
40086828: 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 : %d: %s........
40086838: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
40086848: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 62 6c 6f 63 6b ookup-ino: block
40086858: 20 72 65 61 64 2c 20 69 6e 6f 3d 25 6c 75 20 62 read, ino=%lu b
40086868: 6e 6f 3d 25 6c 64 0a 00 72 74 65 6d 73 2d 72 66 no=%ld..rtems-rf
40086878: 73 3a 20 64 69 72 2d 6c 6f 6f 6b 75 70 2d 69 6e s: dir-lookup-in
40086888: 6f 3a 20 62 6c 6f 63 6b 20 72 65 61 64 2c 20 69 o: block read, i
40086898: 6e 6f 3d 25 6c 75 20 62 6c 6f 63 6b 3d 25 6c 64 no=%lu block=%ld
400868a8: 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 : %d: %s........
400868b8: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
400868c8: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 62 61 64 20 6c ookup-ino: bad l
400868d8: 65 6e 67 74 68 20 6f 72 20 69 6e 6f 20 66 6f 72 ength or ino for
400868e8: 20 69 6e 6f 20 25 6c 75 3a 20 25 75 2f 25 6c 64 ino %lu: %u/%ld
400868f8: 20 40 20 25 30 34 6c 78 0a 00 00 00 00 00 00 00 @ %04lx........
40086908: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
40086918: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 63 68 65 63 6b ookup-ino: check
40086928: 69 6e 67 20 65 6e 74 72 79 20 66 6f 72 20 69 6e ing entry for in
40086938: 6f 20 25 6c 64 3a 20 62 6e 6f 3d 25 30 34 6c 78 o %ld: bno=%04lx
40086948: 2f 6f 66 66 3d 25 30 34 6c 78 20 6c 65 6e 67 74 /off=%04lx lengt
40086958: 68 3a 25 64 20 69 6e 6f 3a 25 6c 64 0a 00 00 00 h:%d ino:%ld....
40086968: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 6c rtems-rfs: dir-l
40086978: 6f 6f 6b 75 70 2d 69 6e 6f 3a 20 65 6e 74 72 79 ookup-ino: entry
40086988: 20 66 6f 75 6e 64 20 69 6e 20 69 6e 6f 20 25 6c found in ino %l
40086998: 75 2c 20 69 6e 6f 3d 25 6c 75 20 6f 66 66 73 65 u, ino=%lu offse
400869a8: 74 3d 25 6c 75 0a 00 00 72 74 65 6d 73 2d 72 66 t=%lu...rtems-rf
400869b8: 73 3a 20 64 69 72 2d 6c 6f 6f 6b 75 70 2d 69 6e s: dir-lookup-in
400869c8: 6f 3a 20 62 6c 6f 63 6b 20 6d 61 70 20 6e 65 78 o: block map nex
400869d8: 74 20 62 6c 6f 63 6b 20 66 61 69 6c 65 64 20 69 t block failed i
400869e8: 6e 20 69 6e 6f 20 25 6c 75 3a 20 25 64 3a 20 25 n ino %lu: %d: %
400869f8: 73 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 s.......rtems-rf
40086a08: 73 3a 20 64 69 72 2d 6c 6f 6f 6b 75 70 2d 69 6e s: dir-lookup-in
40086a18: 6f 3a 20 62 6c 6f 63 6b 20 69 73 20 30 20 69 6e o: block is 0 in
40086a28: 20 69 6e 6f 20 25 6c 75 3a 20 25 64 3a 20 25 73 ino %lu: %d: %s
40086a38: 0a 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ........rtems-rf
40086a48: 73 3a 20 64 69 72 2d 61 64 64 2d 65 6e 74 72 79 s: dir-add-entry
40086a58: 3a 20 64 69 72 3d 25 6c 64 2c 20 6e 61 6d 65 3d : dir=%ld, name=
...
40086a70: 2c 20 6c 65 6e 3d 25 7a 64 0a 00 00 00 00 00 00 , len=%zd.......
40086a80: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 61 rtems-rfs: dir-a
40086a90: 64 64 2d 65 6e 74 72 79 3a 20 62 6c 6f 63 6b 20 dd-entry: block
40086aa0: 6d 61 70 20 66 69 6e 64 20 66 61 69 6c 65 64 20 map find failed
40086ab0: 66 6f 72 20 69 6e 6f 20 25 6c 75 3a 20 25 64 3a for ino %lu: %d:
40086ac0: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40086ad0: 73 3a 20 64 69 72 2d 61 64 64 2d 65 6e 74 72 79 s: dir-add-entry
40086ae0: 3a 20 62 6c 6f 63 6b 20 6d 61 70 20 67 72 6f 77 : block map grow
40086af0: 20 66 61 69 6c 65 64 20 66 6f 72 20 69 6e 6f 20 failed for ino
40086b00: 25 6c 75 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 %lu: %d: %s.....
40086b10: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 61 rtems-rfs: dir-a
40086b20: 64 64 2d 65 6e 74 72 79 3a 20 62 6c 6f 63 6b 20 dd-entry: block
40086b30: 62 75 66 66 65 72 20 72 65 71 20 66 61 69 6c 65 buffer req faile
40086b40: 64 20 66 6f 72 20 69 6e 6f 20 25 6c 75 3a 20 25 d for ino %lu: %
40086b50: 64 3a 20 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 d: %s...rtems-rf
40086b60: 73 3a 20 64 69 72 2d 61 64 64 2d 65 6e 74 72 79 s: dir-add-entry
40086b70: 3a 20 62 61 64 20 6c 65 6e 67 74 68 20 6f 72 20 : bad length or
40086b80: 69 6e 6f 20 66 6f 72 20 69 6e 6f 20 25 6c 75 3a ino for ino %lu:
40086b90: 20 25 75 2f 25 6c 64 20 40 20 25 30 34 78 0a 00 %u/%ld @ %04x..
40086ba0: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 64 rtems-rfs: dir-d
40086bb0: 65 6c 2d 65 6e 74 72 79 3a 20 64 69 72 3d 25 6c el-entry: dir=%l
40086bc0: 64 2c 20 65 6e 74 72 79 3d 25 6c 64 20 6f 66 66 d, entry=%ld off
40086bd0: 73 65 74 3d 25 6c 75 0a 00 00 00 00 00 00 00 00 set=%lu.........
40086be0: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 64 rtems-rfs: dir-d
40086bf0: 65 6c 2d 65 6e 74 72 79 3a 20 62 6c 6f 63 6b 20 el-entry: block
40086c00: 62 75 66 66 65 72 20 72 65 71 20 66 61 69 6c 65 buffer req faile
40086c10: 64 20 66 6f 72 20 69 6e 6f 20 25 6c 75 3a 20 25 d for ino %lu: %
40086c20: 64 3a 20 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 d: %s...rtems-rf
40086c30: 73 3a 20 64 69 72 2d 64 65 6c 2d 65 6e 74 72 79 s: dir-del-entry
40086c40: 3a 20 62 61 64 20 6c 65 6e 67 74 68 20 6f 72 20 : bad length or
40086c50: 69 6e 6f 20 66 6f 72 20 69 6e 6f 20 25 6c 75 3a ino for ino %lu:
40086c60: 20 25 75 2f 25 6c 64 20 40 20 25 6c 75 2e 25 30 %u/%ld @ %lu.%0
40086c70: 34 78 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 4x......rtems-rf
40086c80: 73 3a 20 64 69 72 2d 64 65 6c 2d 65 6e 74 72 79 s: dir-del-entry
40086c90: 3a 20 6c 61 73 74 20 62 6c 6f 63 6b 20 66 72 65 : last block fre
40086ca0: 65 20 66 6f 72 20 69 6e 6f 20 25 6c 75 3a 20 65 e for ino %lu: e
40086cb0: 6c 65 6e 67 74 68 3d 25 69 20 62 6c 6f 63 6b 3d length=%i block=
40086cc0: 25 6c 75 20 6f 66 66 73 65 74 3d 25 64 20 6c 61 %lu offset=%d la
40086cd0: 73 74 3d 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 st=%s...rtems-rf
40086ce0: 73 3a 20 64 69 72 2d 64 65 6c 2d 65 6e 74 72 79 s: dir-del-entry
40086cf0: 3a 20 62 6c 6f 63 6b 20 6d 61 70 20 73 68 72 69 : block map shri
40086d00: 6e 6b 20 66 61 69 6c 65 64 20 66 6f 72 20 69 6e nk failed for in
40086d10: 6f 20 25 6c 75 3a 20 25 64 3a 20 25 73 0a 00 00 o %lu: %d: %s...
40086d20: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 72 rtems-rfs: dir-r
40086d30: 65 61 64 3a 20 64 69 72 3d 25 6c 64 20 6f 66 66 ead: dir=%ld off
40086d40: 73 65 74 3d 25 6c 6c 64 0a 00 00 00 00 00 00 00 set=%lld........
40086d50: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 72 rtems-rfs: dir-r
40086d60: 65 61 64 3a 20 62 61 64 20 6c 65 6e 67 74 68 20 ead: bad length
40086d70: 6f 72 20 69 6e 6f 20 66 6f 72 20 69 6e 6f 20 25 or ino for ino %
40086d80: 6c 75 3a 20 25 75 2f 25 6c 64 20 40 20 25 30 34 lu: %u/%ld @ %04
40086d90: 6c 78 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 lx......rtems-rf
40086da0: 73 3a 20 64 69 72 2d 72 65 61 64 3a 20 66 6f 75 s: dir-read: fou
40086db0: 6e 64 20 6f 66 66 3a 25 6c 6c 6f 20 69 6e 6f 3a nd off:%llo ino:
40086dc0: 25 6c 64 20 6e 61 6d 65 3d 25 73 0a 00 00 00 00 %ld name=%s.....
40086dd0: 72 74 65 6d 73 2d 72 66 73 3a 20 64 69 72 2d 72 rtems-rfs: dir-r
40086de0: 65 61 64 3a 20 6e 65 78 74 20 62 6c 6f 63 6b 3a ead: next block:
40086df0: 20 6f 66 66 3a 25 6c 6c 64 20 6c 65 6e 67 74 68 off:%lld length
40086e00: 3a 25 7a 64 0a 00 00 00 72 74 65 6d 73 2d 72 66 :%zd....rtems-rf
40086e10: 73 3a 20 64 69 72 2d 65 6d 70 74 79 3a 20 64 69 s: dir-empty: di
40086e20: 72 3d 25 6c 64 0a 00 00 72 74 65 6d 73 2d 72 66 r=%ld...rtems-rf
40086e30: 73 3a 20 64 69 72 2d 65 6d 70 74 79 3a 20 62 61 s: dir-empty: ba
40086e40: 64 20 6c 65 6e 67 74 68 20 6f 72 20 69 6e 6f 20 d length or ino
40086e50: 66 6f 72 20 69 6e 6f 20 25 6c 75 3a 20 25 75 2f for ino %lu: %u/
40086e60: 25 6c 75 20 40 20 25 30 34 78 0a 00 00 00 00 00 %lu @ %04x......
40086e70: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40086e80: 6f 70 65 6e 3a 20 69 6e 6f 3d 25 6c 64 0a 00 00 open: ino=%ld...
40086e90: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40086ea0: 6f 70 65 6e 3a 20 69 6e 6f 3d 25 6c 64 20 73 68 open: ino=%ld sh
40086eb0: 61 72 65 64 0a 00 00 00 72 74 65 6d 73 2d 72 66 ared....rtems-rf
40086ec0: 73 3a 20 66 69 6c 65 2d 6f 70 65 6e 3a 20 69 6e s: file-open: in
40086ed0: 6f 64 65 20 6f 70 65 6e 20 66 61 69 6c 65 64 3a ode open failed:
40086ee0: 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 00 %d: %s.........
40086ef0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40086f00: 6f 70 65 6e 3a 20 62 6c 6f 63 6b 20 6d 61 70 20 open: block map
40086f10: 6f 70 65 6e 20 66 61 69 6c 65 64 3a 20 25 64 3a open failed: %d:
40086f20: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40086f30: 73 3a 20 66 69 6c 65 2d 6f 70 65 6e 3a 20 69 6e s: file-open: in
40086f40: 6f 3d 25 6c 64 20 73 68 61 72 65 20 63 72 65 61 o=%ld share crea
40086f50: 74 65 64 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 ted.....rtems-rf
40086f60: 73 3a 20 66 69 6c 65 2d 63 6c 6f 73 65 3a 20 65 s: file-close: e
40086f70: 6e 74 72 79 3a 20 69 6e 6f 3d 25 6c 64 0a 00 00 ntry: ino=%ld...
40086f80: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40086f90: 63 6c 6f 73 65 3a 20 6d 61 70 20 63 6c 6f 73 65 close: map close
40086fa0: 20 65 72 72 6f 72 3a 20 69 6e 6f 3d 25 6c 64 3a error: ino=%ld:
40086fb0: 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 00 %d: %s.........
40086fc0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40086fd0: 63 6c 6f 73 65 3a 20 69 6e 6f 64 65 20 63 6c 6f close: inode clo
40086fe0: 73 65 20 65 72 72 6f 72 3a 20 69 6e 6f 3d 25 6c se error: ino=%l
40086ff0: 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 d: %d: %s.......
40087000: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40087010: 63 6c 6f 73 65 3a 20 72 65 73 75 6c 74 3a 20 25 close: result: %
40087020: 64 3a 20 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 d: %s...rtems-rf
40087030: 73 3a 20 66 69 6c 65 2d 69 6f 3a 20 73 74 61 72 s: file-io: star
40087040: 74 3a 20 25 73 20 70 6f 73 3d 25 6c 75 3a 25 6c t: %s pos=%lu:%l
40087050: 75 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 u.......rtems-rf
40087060: 73 3a 20 66 69 6c 65 2d 69 6f 3a 20 73 74 61 72 s: file-io: star
40087070: 74 3a 20 67 72 6f 77 00 72 74 65 6d 73 2d 72 66 t: grow.rtems-rf
40087080: 73 3a 20 66 69 6c 65 2d 69 6f 3a 20 73 74 61 72 s: file-io: star
40087090: 74 3a 20 62 6c 6f 63 6b 3d 25 6c 75 20 72 65 71 t: block=%lu req
400870a0: 75 65 73 74 2d 72 65 61 64 3d 25 73 0a 00 00 00 uest-read=%s....
400870b0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
400870c0: 69 6f 3a 20 73 74 61 72 74 3a 20 61 76 61 69 6c io: start: avail
400870d0: 61 62 6c 65 3d 25 7a 75 20 28 25 7a 75 29 0a 00 able=%zu (%zu)..
400870e0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
400870f0: 69 6f 3a 20 20 20 65 6e 64 3a 20 25 73 20 73 69 io: end: %s si
40087100: 7a 65 3d 25 7a 75 0a 00 72 74 65 6d 73 2d 72 66 ze=%zu..rtems-rf
40087110: 73 3a 20 66 69 6c 65 2d 69 6f 3a 20 20 20 65 6e s: file-io: en
40087120: 64 3a 20 65 72 72 6f 72 20 6f 6e 20 72 65 6c 65 d: error on rele
40087130: 61 73 65 3a 20 25 73 20 73 69 7a 65 3d 25 7a 75 ase: %s size=%zu
40087140: 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 : %d: %s........
40087150: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40087160: 69 6f 3a 20 20 20 65 6e 64 3a 20 70 6f 73 3d 25 io: end: pos=%
40087170: 6c 75 3a 25 6c 75 20 25 63 20 25 63 20 25 63 0a lu:%lu %c %c %c.
...
40087188: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
40087198: 73 65 65 6b 3a 20 6e 65 77 3d 25 6c 6c 75 0a 00 seek: new=%llu..
400871a8: 72 74 65 6d 73 2d 72 66 73 3a 20 66 69 6c 65 2d rtems-rfs: file-
400871b8: 73 65 74 2d 73 69 7a 65 3a 20 73 69 7a 65 3d 25 set-size: size=%
400871c8: 6c 6c 75 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 llu.....rtems-rf
400871d8: 73 3a 20 6f 70 65 6e 3a 20 25 73 0a 00 00 00 00 s: open: %s.....
400871e8: 72 74 65 6d 73 2d 72 66 73 3a 20 6f 70 65 6e 3a rtems-rfs: open:
400871f8: 20 6e 6f 20 6d 65 6d 6f 72 79 20 66 6f 72 20 66 no memory for f
40087208: 69 6c 65 20 73 79 73 74 65 6d 20 64 61 74 61 00 ile system data.
40087218: 72 74 65 6d 73 2d 72 66 73 3a 20 6f 70 65 6e 3a rtems-rfs: open:
40087228: 20 62 75 66 66 65 72 20 6f 70 65 6e 20 66 61 69 buffer open fai
40087238: 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 led: %d: %s.....
40087248: 72 74 65 6d 73 2d 72 66 73 3a 20 72 65 61 64 2d rtems-rfs: read-
40087258: 73 75 70 65 72 62 6c 6f 63 6b 3a 20 72 65 71 75 superblock: requ
40087268: 65 73 74 20 66 61 69 6c 65 64 25 64 3a 20 25 73 est failed%d: %s
40087278: 0a 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ........rtems-rf
40087288: 73 3a 20 72 65 61 64 2d 73 75 70 65 72 62 6c 6f s: read-superblo
40087298: 63 6b 3a 20 69 6e 76 61 6c 69 64 20 73 75 70 65 ck: invalid supe
400872a8: 72 62 6c 6f 63 6b 2c 20 62 61 64 20 6d 61 67 69 rblock, bad magi
400872b8: 63 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 c.......rtems-rf
400872c8: 73 3a 20 72 65 61 64 2d 73 75 70 65 72 62 6c 6f s: read-superblo
400872d8: 63 6b 3a 20 69 6e 76 61 6c 69 64 20 73 75 70 65 ck: invalid supe
400872e8: 72 62 6c 6f 63 6b 20 62 6c 6f 63 6b 2f 73 69 7a rblock block/siz
400872f8: 65 20 63 6f 75 6e 74 00 72 74 65 6d 73 2d 72 66 e count.rtems-rf
40087308: 73 3a 20 72 65 61 64 2d 73 75 70 65 72 62 6c 6f s: read-superblo
40087318: 63 6b 3a 20 69 6e 6f 64 65 20 73 69 7a 65 20 6d ck: inode size m
40087328: 69 73 6d 61 74 63 68 3a 20 66 73 3a 25 6c 64 20 ismatch: fs:%ld
40087338: 74 61 72 67 65 74 3a 25 6c 64 0a 00 00 00 00 00 target:%ld......
40087348: 72 74 65 6d 73 2d 72 66 73 3a 20 72 65 61 64 2d rtems-rfs: read-
40087358: 73 75 70 65 72 62 6c 6f 63 6b 3a 20 67 72 6f 75 superblock: grou
40087368: 70 73 20 62 6c 6f 63 6b 73 20 6c 61 72 67 65 72 ps blocks larger
40087378: 20 74 68 61 6e 20 62 6c 6f 63 6b 20 62 69 74 73 than block bits
...
40087390: 72 74 65 6d 73 2d 72 66 73 3a 20 72 65 61 64 2d rtems-rfs: read-
400873a0: 73 75 70 65 72 62 6c 6f 63 6b 3a 20 69 6e 76 61 superblock: inva
400873b0: 6c 69 64 20 73 75 70 65 72 62 6c 6f 63 6b 20 62 lid superblock b
400873c0: 6c 6f 63 6b 20 73 69 7a 65 25 64 3a 20 25 73 0a lock size%d: %s.
...
400873d8: 72 74 65 6d 73 2d 72 66 73 3a 20 72 65 61 64 2d rtems-rfs: read-
400873e8: 73 75 70 65 72 62 6c 6f 63 6b 3a 20 6e 6f 20 6d superblock: no m
400873f8: 65 6d 6f 72 79 20 66 6f 72 20 67 72 6f 75 70 20 emory for group
40087408: 74 61 62 6c 65 00 00 00 72 74 65 6d 73 2d 72 66 table...rtems-rf
40087418: 73 3a 20 72 65 61 64 2d 73 75 70 65 72 62 6c 6f s: read-superblo
40087428: 63 6b 3a 20 6e 6f 20 6d 65 6d 6f 72 79 20 66 6f ck: no memory fo
40087438: 72 20 67 72 6f 75 70 20 74 61 62 6c 65 25 64 3a r group table%d:
40087448: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40087458: 73 3a 20 6f 70 65 6e 3a 20 72 65 61 64 69 6e 67 s: open: reading
40087468: 20 73 75 70 65 72 62 6c 6f 63 6b 3a 20 25 64 3a superblock: %d:
40087478: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40087488: 73 3a 20 6f 70 65 6e 3a 20 72 65 61 64 69 6e 67 s: open: reading
40087498: 20 72 6f 6f 74 20 69 6e 6f 64 65 3a 20 25 64 3a root inode: %d:
400874a8: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
400874b8: 73 3a 20 6f 70 65 6e 3a 20 69 6e 76 61 6c 69 64 s: open: invalid
400874c8: 20 72 6f 6f 74 20 69 6e 6f 64 65 20 6d 6f 64 65 root inode mode
...
400874e0: 72 74 65 6d 73 2d 72 66 73 3a 20 6f 70 65 6e 3a rtems-rfs: open:
400874f0: 20 63 6c 6f 73 69 6e 67 20 72 6f 6f 74 20 69 6e closing root in
40087500: 6f 64 65 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 ode: %d: %s.....
40087510: 72 74 65 6d 73 2d 72 66 73 3a 20 63 6c 6f 73 65 rtems-rfs: close
...
40087528: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087538: 74 3a 20 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 t: %s...rtems-rf
40087548: 73 3a 20 66 6f 72 6d 61 74 3a 20 62 75 66 66 65 s: format: buffe
40087558: 72 20 6f 70 65 6e 20 66 61 69 6c 65 64 3a 20 25 r open failed: %
40087568: 64 3a 20 25 73 0a 00 00 72 74 65 6d 73 2d 72 66 d: %s...rtems-rf
40087578: 73 3a 20 6d 65 64 69 61 20 62 6c 6f 63 6b 20 69 s: media block i
40087588: 73 20 69 6e 76 61 6c 69 64 3a 20 25 6c 75 0a 00 s invalid: %lu..
40087598: 62 6c 6f 63 6b 20 73 69 7a 65 20 28 25 7a 64 29 block size (%zd)
400875a8: 20 69 73 20 6e 6f 74 20 61 20 6d 75 6c 74 69 70 is not a multip
400875b8: 6c 65 20 6f 66 20 6d 65 64 69 61 20 62 6c 6f 63 le of media bloc
400875c8: 6b 20 73 69 7a 65 20 28 25 6c 64 29 0a 00 00 00 k size (%ld)....
400875d8: 67 72 6f 75 70 20 62 6c 6f 63 6b 20 63 6f 75 6e group block coun
400875e8: 74 20 69 73 20 68 69 67 68 65 72 20 74 68 61 6e t is higher than
400875f8: 20 62 69 74 73 20 69 6e 20 62 6c 6f 63 6b 00 00 bits in block..
40087608: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087618: 74 3a 20 6d 65 64 69 61 20 73 69 7a 65 20 3d 20 t: media size =
40087628: 25 6c 6c 75 0a 00 00 00 72 74 65 6d 73 2d 72 66 %llu....rtems-rf
40087638: 73 3a 20 66 6f 72 6d 61 74 3a 20 6d 65 64 69 61 s: format: media
40087648: 20 62 6c 6f 63 6b 73 20 3d 20 25 6c 75 0a 00 00 blocks = %lu...
40087658: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087668: 74 3a 20 6d 65 64 69 61 20 62 6c 6f 63 6b 20 73 t: media block s
40087678: 69 7a 65 20 3d 20 25 6c 75 0a 00 00 00 00 00 00 ize = %lu.......
40087688: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087698: 74 3a 20 73 69 7a 65 20 3d 20 25 6c 6c 75 0a 00 t: size = %llu..
400876a8: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
400876b8: 74 3a 20 62 6c 6f 63 6b 73 20 3d 20 25 7a 75 0a t: blocks = %zu.
...
400876d0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
400876e0: 74 3a 20 62 6c 6f 63 6b 20 73 69 7a 65 20 3d 20 t: block size =
400876f0: 25 7a 75 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %zu.....rtems-rf
40087700: 73 3a 20 66 6f 72 6d 61 74 3a 20 62 69 74 73 20 s: format: bits
40087710: 70 65 72 20 62 6c 6f 63 6b 20 3d 20 25 75 0a 00 per block = %u..
40087720: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087730: 74 3a 20 69 6e 6f 64 65 20 73 69 7a 65 20 3d 20 t: inode size =
40087740: 25 7a 75 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %zu.....rtems-rf
40087750: 73 3a 20 66 6f 72 6d 61 74 3a 20 69 6e 6f 64 65 s: format: inode
40087760: 73 20 3d 20 25 7a 75 20 28 25 64 2e 25 64 25 25 s = %zu (%d.%d%%
40087770: 29 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ).......rtems-rf
40087780: 73 3a 20 66 6f 72 6d 61 74 3a 20 67 72 6f 75 70 s: format: group
40087790: 73 20 3d 20 25 75 0a 00 72 74 65 6d 73 2d 72 66 s = %u..rtems-rf
400877a0: 73 3a 20 66 6f 72 6d 61 74 3a 20 67 72 6f 75 70 s: format: group
400877b0: 20 62 6c 6f 63 6b 73 20 3d 20 25 7a 75 0a 00 00 blocks = %zu...
400877c0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
400877d0: 74 3a 20 67 72 6f 75 70 20 69 6e 6f 64 65 73 20 t: group inodes
400877e0: 3d 20 25 7a 75 0a 00 00 72 74 65 6d 73 2d 72 66 = %zu...rtems-rf
400877f0: 73 3a 20 66 6f 72 6d 61 74 3a 20 73 65 74 74 69 s: format: setti
40087800: 6e 67 20 62 6c 6f 63 6b 20 73 69 7a 65 20 66 61 ng block size fa
40087810: 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 iled: %d: %s....
40087820: 72 74 65 6d 73 2d 72 66 73 3a 20 77 72 69 74 65 rtems-rfs: write
40087830: 2d 73 75 70 65 72 62 6c 6f 63 6b 3a 20 72 65 71 -superblock: req
40087840: 75 65 73 74 20 66 61 69 6c 65 64 3a 20 25 64 3a uest failed: %d:
40087850: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40087860: 73 3a 20 77 72 69 74 65 2d 73 75 70 65 72 62 6c s: write-superbl
40087870: 6f 63 6b 3a 20 62 75 66 66 65 72 20 72 65 6c 65 ock: buffer rele
40087880: 61 73 65 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 ase failed: %d:
40087890: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
400878a0: 73 3a 20 66 6f 72 6d 61 74 3a 20 73 75 70 65 72 s: format: super
400878b0: 62 6c 6f 63 6b 20 77 72 69 74 65 20 66 61 69 6c block write fail
400878c0: 65 64 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ed......rtems-rf
400878d0: 73 3a 20 77 72 69 74 65 2d 67 72 6f 75 70 3a 20 s: write-group:
400878e0: 67 72 6f 75 70 20 25 64 20 62 61 73 65 20 62 65 group %d base be
400878f0: 79 6f 6e 64 20 64 69 73 6b 20 6c 69 6d 69 74 0a yond disk limit.
...
40087908: 0d 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d .rtems-rfs: form
40087918: 61 74 3a 20 67 72 6f 75 70 20 25 33 64 3a 20 62 at: group %3d: b
40087928: 61 73 65 20 3d 20 25 6c 64 2c 20 73 69 7a 65 20 ase = %ld, size
40087938: 3d 20 25 7a 64 00 00 00 2c 20 62 6c 6f 63 6b 73 = %zd..., blocks
...
40087950: 0a 72 74 65 6d 73 2d 72 66 73 3a 20 77 72 69 74 .rtems-rfs: writ
40087960: 65 2d 67 72 6f 75 70 3a 20 67 72 6f 75 70 20 25 e-group: group %
40087970: 33 64 3a 20 6f 70 65 6e 20 62 6c 6f 63 6b 20 62 3d: open block b
40087980: 69 74 6d 61 70 20 66 61 69 6c 65 64 3a 20 25 64 itmap failed: %d
40087990: 3a 20 25 73 0a 00 00 00 0a 72 74 65 6d 73 2d 72 : %s.....rtems-r
400879a0: 66 73 3a 20 77 72 69 74 65 2d 67 72 6f 75 70 3a fs: write-group:
400879b0: 20 67 72 6f 75 70 20 25 33 64 3a 20 62 6c 6f 63 group %3d: bloc
400879c0: 6b 20 62 69 74 6d 61 70 20 63 6c 65 61 72 20 61 k bitmap clear a
400879d0: 6c 6c 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 25 ll failed: %d: %
400879e0: 73 0a 00 00 00 00 00 00 0a 72 74 65 6d 73 2d 72 s........rtems-r
400879f0: 66 73 3a 20 77 72 69 74 65 2d 67 72 6f 75 70 3a fs: write-group:
40087a00: 20 67 72 6f 75 70 20 25 33 64 3a 20 63 6c 6f 73 group %3d: clos
40087a10: 65 20 62 6c 6f 63 6b 20 62 69 74 6d 61 70 20 66 e block bitmap f
40087a20: 61 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 ailed: %d: %s...
40087a30: 2c 20 69 6e 6f 64 65 73 00 00 00 00 00 00 00 00 , inodes........
40087a40: 0a 72 74 65 6d 73 2d 72 66 73 3a 20 77 72 69 74 .rtems-rfs: writ
40087a50: 65 2d 67 72 6f 75 70 3a 20 67 72 6f 75 70 20 25 e-group: group %
40087a60: 33 64 3a 20 6f 70 65 6e 20 69 6e 6f 64 65 20 62 3d: open inode b
40087a70: 69 74 6d 61 70 20 66 61 69 6c 65 64 3a 20 25 64 itmap failed: %d
40087a80: 3a 20 25 73 0a 00 00 00 0a 72 74 65 6d 73 2d 72 : %s.....rtems-r
40087a90: 66 73 3a 20 77 72 69 74 65 2d 67 72 6f 75 70 3a fs: write-group:
40087aa0: 20 67 72 6f 75 70 20 25 33 64 3a 20 69 6e 6f 64 group %3d: inod
40087ab0: 65 20 62 69 74 6d 61 70 20 63 6c 65 61 72 20 61 e bitmap clear a
40087ac0: 6c 6c 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 25 ll failed: %d: %
40087ad0: 73 0a 00 00 00 00 00 00 0a 72 74 65 6d 73 2d 72 s........rtems-r
40087ae0: 66 73 3a 20 77 72 69 74 65 2d 67 72 6f 75 70 3a fs: write-group:
40087af0: 20 67 72 6f 75 70 20 25 33 64 3a 20 63 6c 6f 73 group %3d: clos
40087b00: 65 20 69 6e 6f 64 65 20 62 69 74 6d 61 70 20 66 e inode bitmap f
40087b10: 61 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 ailed: %d: %s...
40087b20: 0a 72 74 65 6d 73 2d 72 66 73 3a 20 77 72 69 74 .rtems-rfs: writ
40087b30: 65 2d 67 72 6f 75 70 3a 20 67 72 6f 75 70 20 25 e-group: group %
40087b40: 33 64 3a 20 62 6c 6f 63 6b 20 25 6c 64 20 72 65 3d: block %ld re
40087b50: 71 75 65 73 74 20 66 61 69 6c 65 64 3a 20 25 64 quest failed: %d
40087b60: 3a 20 25 73 0a 00 00 00 72 74 65 6d 73 2d 72 66 : %s....rtems-rf
40087b70: 73 3a 20 66 6f 72 6d 61 74 3a 20 62 75 66 66 65 s: format: buffe
40087b80: 72 20 63 6c 6f 73 65 20 66 61 69 6c 65 64 3a 20 r close failed:
40087b90: 25 64 3a 20 25 73 0a 00 72 74 65 6d 73 2d 72 66 %d: %s..rtems-rf
40087ba0: 73 3a 20 66 6f 72 6d 61 74 3a 20 66 69 6c 65 20 s: format: file
40087bb0: 73 79 73 74 65 6d 20 6f 70 65 6e 20 66 61 69 6c system open fail
40087bc0: 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 ed: %d: %s......
40087bd0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087be0: 74 3a 20 69 6e 6f 64 65 20 61 6c 6c 6f 63 61 74 t: inode allocat
40087bf0: 69 6f 6e 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 ion failed: %d:
40087c00: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40087c10: 73 3a 20 66 6f 72 6d 61 74 3a 20 61 6c 6c 6f 63 s: format: alloc
40087c20: 61 74 65 64 20 69 6e 6f 64 65 20 6e 6f 74 20 72 ated inode not r
40087c30: 6f 6f 74 20 69 6e 6f 3a 20 25 6c 64 0a 00 00 00 oot ino: %ld....
40087c40: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087c50: 74 3a 20 69 6e 6f 64 65 20 6f 70 65 6e 20 66 61 t: inode open fa
40087c60: 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 iled: %d: %s....
40087c70: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087c80: 74 3a 20 69 6e 6f 64 65 20 69 6e 69 74 69 61 6c t: inode initial
40087c90: 69 73 65 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 ise failed: %d:
40087ca0: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40087cb0: 73 3a 20 66 6f 72 6d 61 74 3a 20 64 69 72 65 63 s: format: direc
40087cc0: 74 6f 72 79 20 61 64 64 20 66 61 69 6c 65 64 3a tory add failed:
40087cd0: 20 25 64 3a 20 25 73 0a 00 00 00 00 00 00 00 00 %d: %s.........
40087ce0: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087cf0: 74 3a 20 69 6e 6f 64 65 20 63 6c 6f 73 65 20 66 t: inode close f
40087d00: 61 69 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 ailed: %d: %s...
40087d10: 72 74 65 6d 73 2d 72 66 73 3a 20 66 6f 72 6d 61 rtems-rfs: forma
40087d20: 74 3a 20 66 69 6c 65 20 73 79 73 74 65 6d 20 63 t: file system c
40087d30: 6c 6f 73 65 20 66 61 69 6c 65 64 3a 20 25 64 3a lose failed: %d:
40087d40: 20 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 %s.....rtems-rf
40087d50: 73 3a 20 66 6f 72 6d 61 74 3a 20 77 72 69 74 69 s: format: writi
40087d60: 6e 67 20 72 6f 6f 74 20 64 69 72 20 66 61 69 6c ng root dir fail
40087d70: 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 ed: %d: %s......
40087d80: 72 74 65 6d 73 2d 72 66 73 3a 20 67 72 6f 75 70 rtems-rfs: group
40087d90: 2d 6f 70 65 6e 3a 20 62 61 73 65 20 6f 75 74 73 -open: base outs
40087da0: 69 64 65 20 66 69 6c 65 20 73 79 73 74 65 6d 20 ide file system
40087db0: 72 61 6e 67 65 3a 20 25 64 3a 20 25 73 0a 00 00 range: %d: %s...
40087dc0: 72 74 65 6d 73 2d 72 66 73 3a 20 67 72 6f 75 70 rtems-rfs: group
40087dd0: 2d 6f 70 65 6e 3a 20 62 61 73 65 3d 25 6c 64 2c -open: base=%ld,
40087de0: 20 62 6c 6f 63 6b 73 3d 25 7a 64 20 69 6e 6f 64 blocks=%zd inod
40087df0: 65 73 3d 25 7a 64 0a 00 72 74 65 6d 73 2d 72 66 es=%zd..rtems-rf
40087e00: 73 3a 20 67 72 6f 75 70 2d 6f 70 65 6e 3a 20 63 s: group-open: c
40087e10: 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 62 6c ould not open bl
40087e20: 6f 63 6b 20 62 69 74 6d 61 70 3a 20 25 64 3a 20 ock bitmap: %d:
40087e30: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40087e40: 73 3a 20 67 72 6f 75 70 2d 6f 70 65 6e 3a 20 63 s: group-open: c
40087e50: 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 69 6e ould not open in
40087e60: 6f 64 65 20 62 69 74 6d 61 70 3a 20 25 64 3a 20 ode bitmap: %d:
40087e70: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40087e80: 73 3a 20 67 72 6f 75 70 2d 63 6c 6f 73 65 3a 20 s: group-close:
40087e90: 62 61 73 65 3d 25 6c 64 0a 00 00 00 00 00 00 00 base=%ld........
40087ea0: 72 74 65 6d 73 2d 72 66 73 3a 20 67 72 6f 75 70 rtems-rfs: group
40087eb0: 2d 62 69 74 6d 61 70 2d 61 6c 6c 6f 63 3a 20 25 -bitmap-alloc: %
40087ec0: 73 20 61 6c 6c 6f 63 61 74 65 64 3a 20 25 6c 64 s allocated: %ld
40087ed0: 0a 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ........rtems-rf
40087ee0: 73 3a 20 67 72 6f 75 70 2d 62 69 74 6d 61 70 2d s: group-bitmap-
40087ef0: 61 6c 6c 6f 63 3a 20 6e 6f 20 62 6c 6f 63 6b 73 alloc: no blocks
40087f00: 20 61 76 61 69 6c 61 62 6c 65 00 00 00 00 00 00 available......
40087f10: 72 74 65 6d 73 2d 72 66 73 3a 20 67 72 6f 75 70 rtems-rfs: group
40087f20: 2d 62 69 74 6d 61 70 2d 66 72 65 65 3a 20 25 73 -bitmap-free: %s
40087f30: 20 66 72 65 65 3a 20 25 6c 64 0a 00 00 00 00 00 free: %ld......
40087f40: 72 74 65 6d 73 2d 72 66 73 3a 20 67 72 6f 75 70 rtems-rfs: group
40087f50: 2d 62 69 74 6d 61 70 2d 74 65 73 74 3a 20 25 73 -bitmap-test: %s
40087f60: 20 74 65 73 74 3a 20 25 6c 64 0a 00 00 00 00 00 test: %ld......
40087f70: 72 74 65 6d 73 2d 72 66 73 3a 20 69 6e 6f 64 65 rtems-rfs: inode
40087f80: 2d 6c 6f 61 64 3a 20 69 6e 6f 3d 25 6c 75 20 6c -load: ino=%lu l
40087f90: 6f 61 64 73 3d 25 69 20 6c 6f 61 64 65 64 3d 25 oads=%i loaded=%
40087fa0: 73 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 s.......rtems-rf
40087fb0: 73 3a 20 69 6e 6f 64 65 2d 6f 70 65 6e 3a 20 69 s: inode-open: i
40087fc0: 6e 6f 3a 20 25 6c 75 0a 00 00 00 00 00 00 00 00 no: %lu.........
40087fd0: 72 74 65 6d 73 2d 72 66 73 3a 20 69 6e 6f 64 65 rtems-rfs: inode
40087fe0: 2d 75 6e 6c 6f 61 64 3a 20 69 6e 6f 3d 25 6c 75 -unload: ino=%lu
40087ff0: 20 6c 6f 61 64 73 3d 25 69 20 6c 6f 61 64 65 64 loads=%i loaded
40088000: 3d 25 73 0a 00 00 00 00 72 74 65 6d 73 2d 72 66 =%s.....rtems-rf
40088010: 73 3a 20 69 6e 6f 64 65 2d 63 6c 6f 73 65 3a 20 s: inode-close:
40088020: 69 6e 6f 3a 20 25 6c 75 0a 00 00 00 00 00 00 00 ino: %lu........
40088030: 72 74 65 6d 73 2d 72 66 73 3a 20 69 6e 6f 64 65 rtems-rfs: inode
40088040: 2d 63 6c 6f 73 65 3a 20 62 61 64 20 6c 6f 61 64 -close: bad load
40088050: 73 20 6e 75 6d 62 65 72 3a 20 25 64 0a 00 00 00 s number: %d....
40088060: 72 74 65 6d 73 2d 72 66 73 3a 20 69 6e 6f 64 65 rtems-rfs: inode
40088070: 2d 64 65 6c 65 74 65 3a 20 69 6e 6f 3a 25 6c 75 -delete: ino:%lu
40088080: 20 6c 6f 61 64 65 64 3a 25 73 0a 00 00 00 00 00 loaded:%s......
40088090: 63 68 61 72 00 00 00 00 75 6e 6b 6e 6f 77 6e 00 char....unknown.
400880a0: 6c 69 6e 6b 00 00 00 00 72 74 65 6d 73 2d 72 66 link....rtems-rf
400880b0: 73 3a 20 69 6e 6f 64 65 2d 63 72 65 61 74 65 3a s: inode-create:
400880c0: 20 70 61 72 65 6e 74 3a 25 6c 75 20 6e 61 6d 65 parent:%lu name
400880d0: 3a 00 00 00 00 00 00 00 20 74 79 70 65 3a 25 73 :....... type:%s
400880e0: 20 6d 6f 64 65 3a 25 30 34 78 20 28 25 30 33 6f mode:%04x (%03o
400880f0: 29 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ).......rtems-rf
40088100: 73 3a 20 6c 69 6e 6b 3a 20 70 61 72 65 6e 74 28 s: link: parent(
40088110: 25 6c 75 29 20 2d 3e 20 00 00 00 00 00 00 00 00 %lu) -> ........
40088120: 28 25 6c 75 29 0a 00 00 72 74 65 6d 73 2d 72 66 (%lu)...rtems-rf
40088130: 73 3a 20 75 6e 6c 69 6e 6b 3a 20 70 61 72 65 6e s: unlink: paren
40088140: 74 28 25 6c 75 29 20 2d 58 2d 3e 20 28 25 6c 75 t(%lu) -X-> (%lu
40088150: 29 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ).......rtems-rf
40088160: 73 3a 20 6c 69 6e 6b 20 69 73 20 61 20 64 69 72 s: link is a dir
40088170: 65 63 74 6f 72 79 00 00 72 74 65 6d 73 2d 72 66 ectory..rtems-rf
40088180: 73 3a 20 64 69 72 2d 65 6d 70 74 79 3a 20 25 64 s: dir-empty: %d
40088190: 3a 20 25 73 0a 00 00 00 72 74 65 6d 73 2d 72 66 : %s....rtems-rf
400881a0: 73 3a 20 6c 69 6e 6b 3a 20 69 6e 6f 64 65 2d 6f s: link: inode-o
400881b0: 70 65 6e 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 pen failed: %d:
400881c0: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
400881d0: 73 3a 20 75 6e 6c 69 6e 6b 3a 20 64 69 72 2d 64 s: unlink: dir-d
400881e0: 65 6c 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 25 el failed: %d: %
400881f0: 73 0a 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 s.......rtems-rf
40088200: 73 3a 20 75 6e 6c 69 6e 6b 3a 20 74 61 72 67 65 s: unlink: targe
40088210: 74 3a 25 6c 75 20 6c 69 6e 6b 73 3a 25 75 0a 00 t:%lu links:%u..
40088220: 72 74 65 6d 73 2d 72 66 73 3a 20 75 6e 6c 69 6e rtems-rfs: unlin
40088230: 6b 3a 20 69 6e 6f 64 65 2d 64 65 6c 20 66 61 69 k: inode-del fai
40088240: 6c 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 led: %d: %s.....
40088250: 72 74 65 6d 73 2d 72 66 73 3a 20 6c 69 6e 6b 3a rtems-rfs: link:
40088260: 20 69 6e 6f 64 65 2d 74 69 6d 65 2d 73 74 61 6d inode-time-stam
40088270: 70 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 25 73 p failed: %d: %s
40088280: 0a 00 00 00 00 00 00 00 72 74 65 6d 73 2d 72 66 ........rtems-rf
40088290: 73 3a 20 6c 69 6e 6b 3a 20 70 61 72 65 6e 74 20 s: link: parent
400882a0: 69 6e 6f 64 65 2d 63 6c 6f 73 65 20 66 61 69 6c inode-close fail
400882b0: 65 64 3a 20 25 64 3a 20 25 73 0a 00 00 00 00 00 ed: %d: %s......
400882c0: 72 74 65 6d 73 2d 72 66 73 3a 20 6c 69 6e 6b 3a rtems-rfs: link:
400882d0: 20 74 61 72 67 65 74 20 69 6e 6f 64 65 2d 63 6c target inode-cl
400882e0: 6f 73 65 20 66 61 69 6c 65 64 3a 20 25 64 3a 20 ose failed: %d:
400882f0: 25 73 0a 00 00 00 00 00 72 74 65 6d 73 2d 72 66 %s......rtems-rf
40088300: 73 3a 20 73 79 6d 6c 69 6e 6b 3a 20 70 61 72 65 s: symlink: pare
40088310: 6e 74 3a 25 6c 75 20 6e 61 6d 65 3a 00 00 00 00 nt:%lu name:....
40088320: 20 6c 69 6e 6b 3a 00 00 72 74 65 6d 73 2d 72 66 link:..rtems-rf
40088330: 73 3a 20 73 79 6d 6c 69 6e 6b 2d 72 65 61 64 3a s: symlink-read:
40088340: 20 6c 69 6e 6b 3a 25 6c 75 0a 00 00 00 00 00 00 link:%lu.......
40088350: 52 46 53 00 RFS.
40040514 <_fat_block_read>:
uint32_t start,
uint32_t offset,
uint32_t count,
void *buff
)
{
40040514: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
40040518: a0 10 00 18 mov %i0, %l0
<== NOT EXECUTED
uint32_t sec_num = start;
uint32_t ofs = offset;
uint8_t *sec_buf;
uint32_t c = 0;
while (count > 0)
4004051c: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
40040520: 12 80 00 11 bne 40040564 <_fat_block_read+0x50>
<== NOT EXECUTED
40040524: b0 10 20 00 clr %i0
<== NOT EXECUTED
40040528: 30 80 00 19 b,a 4004058c <_fat_block_read+0x78>
<== NOT EXECUTED
{
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_READ, &sec_buf);
if (rc != RC_OK)
return -1;
c = MIN(count, (fs_info->vol.bps - ofs));
4004052c: fa 14 00 00 lduh [ %l0 ], %i5
<== NOT EXECUTED
40040530: ba 27 40 1a sub %i5, %i2, %i5
<== NOT EXECUTED
40040534: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
40040538: 38 80 00 02 bgu,a 40040540 <_fat_block_read+0x2c>
<== NOT EXECUTED
4004053c: ba 10 00 1b mov %i3, %i5
<== NOT EXECUTED
memcpy((buff + cmpltd), (sec_buf + ofs), c);
40040540: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
40040544: 92 02 40 1a add %o1, %i2, %o1
<== NOT EXECUTED
40040548: 40 00 82 a2 call 40060fd0 <memcpy>
<== NOT EXECUTED
4004054c: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
count -= c;
cmpltd += c;
40040550: b0 06 00 1d add %i0, %i5, %i0
<== NOT EXECUTED
sec_num++;
40040554: b2 06 60 01 inc %i1
<== NOT EXECUTED
while (count > 0)
40040558: b6 a6 c0 1d subcc %i3, %i5, %i3
<== NOT EXECUTED
4004055c: 02 80 00 0c be 4004058c <_fat_block_read+0x78>
<== NOT EXECUTED
40040560: b4 10 20 00 clr %i2
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_READ, &sec_buf);
40040564: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
40040568: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4004056c: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
40040570: 7f ff ff b0 call 40040430 <fat_buf_access>
<== NOT EXECUTED
40040574: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
40040578: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004057c: 02 bf ff ec be 4004052c <_fat_block_read+0x18>
<== NOT EXECUTED
40040580: 90 07 00 18 add %i4, %i0, %o0
<== NOT EXECUTED
ofs = 0;
}
return cmpltd;
}
40040584: 81 c7 e0 08 ret
<== NOT EXECUTED
40040588: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
4004058c: 81 c7 e0 08 ret
<== NOT EXECUTED
40040590: 81 e8 00 00 restore
<== NOT EXECUTED
40040430 <fat_buf_access>:
{
40040430: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
return sector_number >> (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
40040434: fa 0e 20 02 ldub [ %i0 + 2 ], %i5
<== NOT EXECUTED
40040438: c2 0e 20 14 ldub [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY || fs_info->c.blk_num != sec_num)
4004043c: c4 0e 20 91 ldub [ %i0 + 0x91 ], %g2
<== NOT EXECUTED
40040440: 82 20 40 1d sub %g1, %i5, %g1
<== NOT EXECUTED
{
40040444: b8 10 00 18 mov %i0, %i4
<== NOT EXECUTED
40040448: 93 36 40 01 srl %i1, %g1, %o1
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY || fs_info->c.blk_num != sec_num)
4004044c: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
return block_number << (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
40040450: 83 2a 40 01 sll %o1, %g1, %g1
<== NOT EXECUTED
((sector -
40040454: 82 26 40 01 sub %i1, %g1, %g1
<== NOT EXECUTED
40040458: 02 80 00 0a be 40040480 <fat_buf_access+0x50>
<== NOT EXECUTED
4004045c: bb 28 40 1d sll %g1, %i5, %i5
<== NOT EXECUTED
40040460: d2 27 bf fc st %o1, [ %fp + -4 ]
<== NOT EXECUTED
40040464: c2 06 20 8c ld [ %i0 + 0x8c ], %g1
<== NOT EXECUTED
40040468: 80 a0 40 19 cmp %g1, %i1
<== NOT EXECUTED
4004046c: 22 80 00 12 be,a 400404b4 <fat_buf_access+0x84>
<== NOT EXECUTED
40040470: c2 07 20 94 ld [ %i4 + 0x94 ], %g1
<== NOT EXECUTED
40040474: 7f ff ff 79 call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
40040478: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4004047c: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
40040480: d0 07 20 6c ld [ %i4 + 0x6c ], %o0
<== NOT EXECUTED
if (op_type == FAT_OP_TYPE_READ)
40040484: 80 a6 a0 01 cmp %i2, 1
<== NOT EXECUTED
40040488: 02 80 00 10 be 400404c8 <fat_buf_access+0x98>
<== NOT EXECUTED
4004048c: 94 07 20 94 add %i4, 0x94, %o2
<== NOT EXECUTED
sc = rtems_bdbuf_get(fs_info->vol.dd, blk, &fs_info->c.buf);
40040490: 7f ff 18 e6 call 40006828 <rtems_bdbuf_get>
<== NOT EXECUTED
40040494: 01 00 00 00 nop
<== NOT EXECUTED
if (sc != RTEMS_SUCCESSFUL)
40040498: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004049c: 12 80 00 0f bne 400404d8 <fat_buf_access+0xa8>
<== NOT EXECUTED
400404a0: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
fs_info->c.blk_num = sec_num;
400404a4: f2 27 20 8c st %i1, [ %i4 + 0x8c ]
<== NOT EXECUTED
fs_info->c.modified = 0;
400404a8: c0 2f 20 90 clrb [ %i4 + 0x90 ]
<== NOT EXECUTED
fs_info->c.state = FAT_CACHE_ACTUAL;
400404ac: c2 2f 20 91 stb %g1, [ %i4 + 0x91 ]
<== NOT EXECUTED
*sec_buf = &fs_info->c.buf->buffer[blk_ofs];
400404b0: c2 07 20 94 ld [ %i4 + 0x94 ], %g1
<== NOT EXECUTED
400404b4: c2 00 60 1c ld [ %g1 + 0x1c ], %g1
<== NOT EXECUTED
400404b8: 82 00 40 1d add %g1, %i5, %g1
<== NOT EXECUTED
400404bc: c2 26 c0 00 st %g1, [ %i3 ]
<== NOT EXECUTED
}
400404c0: 81 c7 e0 08 ret
<== NOT EXECUTED
400404c4: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
sc = rtems_bdbuf_read(fs_info->vol.dd, blk, &fs_info->c.buf);
400404c8: 7f ff 19 18 call 40006928 <rtems_bdbuf_read>
<== NOT EXECUTED
400404cc: 01 00 00 00 nop
<== NOT EXECUTED
400404d0: 10 bf ff f3 b 4004049c <fat_buf_access+0x6c>
<== NOT EXECUTED
400404d4: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
400404d8: 40 00 71 0f call 4005c914 <__errno>
<== NOT EXECUTED
400404dc: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
400404e0: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
400404e4: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
400404e8: 81 c7 e0 08 ret
<== NOT EXECUTED
400404ec: 81 e8 00 00 restore
<== NOT EXECUTED
400404f0 <fat_buf_release>:
if (fs_info->c.state == FAT_CACHE_EMPTY)
400404f0: c2 0a 20 91 ldub [ %o0 + 0x91 ], %g1
<== NOT EXECUTED
400404f4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400404f8: 02 80 00 05 be 4004050c <fat_buf_release+0x1c>
<== NOT EXECUTED
400404fc: 01 00 00 00 nop
<== NOT EXECUTED
40040500: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
40040504: 7f ff ff 55 call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
40040508: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
}
4004050c: 81 c3 e0 08 retl
<== NOT EXECUTED
40040510: 90 10 20 00 clr %o0
<== NOT EXECUTED
40040640 <fat_cluster_set>:
fat_fs_info_t *fs_info,
const uint32_t start_cln,
const uint32_t offset,
const uint32_t count,
const uint8_t pattern)
{
40040640: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
ssize_t rc = RC_OK;
uint32_t bytes_to_write = MIN(count, (fs_info->vol.bpc - offset));
40040644: e0 06 20 08 ld [ %i0 + 8 ], %l0
<== NOT EXECUTED
40040648: a0 24 00 1a sub %l0, %i2, %l0
<== NOT EXECUTED
4004064c: 80 a4 00 1b cmp %l0, %i3
<== NOT EXECUTED
40040650: 38 80 00 02 bgu,a 40040658 <fat_cluster_set+0x18>
<== NOT EXECUTED
40040654: a0 10 00 1b mov %i3, %l0
<== NOT EXECUTED
40040658: c2 0e 20 14 ldub [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
4004065c: c4 0e 20 02 ldub [ %i0 + 2 ], %g2
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
40040660: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
40040664: 12 80 00 06 bne 4004067c <fat_cluster_set+0x3c>
<== NOT EXECUTED
40040668: 86 20 40 02 sub %g1, %g2, %g3
<== NOT EXECUTED
4004066c: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
40040670: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
40040674: 32 80 00 4c bne,a 400407a4 <fat_cluster_set+0x164>
<== NOT EXECUTED
40040678: e4 06 20 28 ld [ %i0 + 0x28 ], %l2
<== NOT EXECUTED
blk = cln << (fs_info->vol.bpc_log2 - fs_info->vol.bytes_per_block_log2);
4004067c: e4 0e 20 0c ldub [ %i0 + 0xc ], %l2
<== NOT EXECUTED
return sector_number >> (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
40040680: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
cln -= FAT_RSRVD_CLN;
40040684: b2 06 7f fe add %i1, -2, %i1
<== NOT EXECUTED
blk = cln << (fs_info->vol.bpc_log2 - fs_info->vol.bytes_per_block_log2);
40040688: a4 24 80 01 sub %l2, %g1, %l2
<== NOT EXECUTED
4004068c: 85 30 80 03 srl %g2, %g3, %g2
<== NOT EXECUTED
40040690: b3 2e 40 12 sll %i1, %l2, %i1
<== NOT EXECUTED
blk += fat_sector_num_to_block_num(fs_info, fs_info->vol.data_fsec);
40040694: 84 00 80 19 add %g2, %i1, %g2
<== NOT EXECUTED
uint32_t cur_blk = fat_cluster_num_to_block_num(fs_info, start_cln);
uint32_t blocks_in_offset = offset >> fs_info->vol.bytes_per_block_log2;
40040698: a5 36 80 01 srl %i2, %g1, %l2
<== NOT EXECUTED
uint32_t ofs_blk = offset - (blocks_in_offset << fs_info->vol.bytes_per_block_log2);
4004069c: 83 2c 80 01 sll %l2, %g1, %g1
<== NOT EXECUTED
ssize_t bytes_written = 0;
400406a0: b2 10 20 00 clr %i1
<== NOT EXECUTED
uint32_t ofs_blk = offset - (blocks_in_offset << fs_info->vol.bytes_per_block_log2);
400406a4: b4 26 80 01 sub %i2, %g1, %i2
<== NOT EXECUTED
ssize_t ret;
cur_blk += blocks_in_offset;
400406a8: a4 04 80 02 add %l2, %g2, %l2
<== NOT EXECUTED
ssize_t rc = RC_OK;
400406ac: 82 10 20 00 clr %g1
<== NOT EXECUTED
while ( (RC_OK == rc)
400406b0: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400406b4: 12 80 00 26 bne 4004074c <fat_cluster_set+0x10c>
<== NOT EXECUTED
400406b8: a2 10 20 01 mov 1, %l1
<== NOT EXECUTED
400406bc: 80 a4 20 00 cmp %l0, 0
<== NOT EXECUTED
400406c0: 02 80 00 23 be 4004074c <fat_cluster_set+0x10c>
<== NOT EXECUTED
400406c4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
&& (0 < bytes_to_write))
{
uint32_t c = MIN(bytes_to_write, (fs_info->vol.bytes_per_block - ofs_blk));
400406c8: c2 06 20 10 ld [ %i0 + 0x10 ], %g1
<== NOT EXECUTED
400406cc: ba 20 40 1a sub %g1, %i2, %i5
<== NOT EXECUTED
400406d0: 80 a7 40 10 cmp %i5, %l0
<== NOT EXECUTED
400406d4: 08 80 00 03 bleu 400406e0 <fat_cluster_set+0xa0>
<== NOT EXECUTED
400406d8: b6 10 00 1d mov %i5, %i3
<== NOT EXECUTED
400406dc: b6 10 00 10 mov %l0, %i3
<== NOT EXECUTED
uint32_t bytes_to_write = MIN(count, (fs_info->vol.bytes_per_block - offset));
400406e0: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
400406e4: 38 80 00 02 bgu,a 400406ec <fat_cluster_set+0xac>
<== NOT EXECUTED
400406e8: ba 10 00 1b mov %i3, %i5
<== NOT EXECUTED
if (0 < bytes_to_write)
400406ec: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
400406f0: 02 80 00 0f be 4004072c <fat_cluster_set+0xec>
<== NOT EXECUTED
400406f4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
return block_number << (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
400406f8: d2 0e 20 14 ldub [ %i0 + 0x14 ], %o1
<== NOT EXECUTED
400406fc: c4 0e 20 02 ldub [ %i0 + 2 ], %g2
<== NOT EXECUTED
40040700: 92 22 40 02 sub %o1, %g2, %o1
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &blk_buf);
40040704: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
if (bytes_to_write == fs_info->vol.bytes_per_block)
40040708: 80 a0 40 1d cmp %g1, %i5
<== NOT EXECUTED
4004070c: 02 80 00 21 be 40040790 <fat_cluster_set+0x150>
<== NOT EXECUTED
40040710: 93 2c 80 09 sll %l2, %o1, %o1
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_READ, &blk_buf);
40040714: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
40040718: 7f ff ff 46 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4004071c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
40040720: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040724: 22 80 00 14 be,a 40040774 <fat_cluster_set+0x134>
<== NOT EXECUTED
40040728: d0 07 bf fc ld [ %fp + -4 ], %o0
<== NOT EXECUTED
fs_info,
cur_blk,
ofs_blk,
c,
pattern);
if (c != ret)
4004072c: 80 a2 00 1b cmp %o0, %i3
<== NOT EXECUTED
40040730: 02 80 00 0b be 4004075c <fat_cluster_set+0x11c>
<== NOT EXECUTED
40040734: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
40040738: b4 10 20 00 clr %i2
<== NOT EXECUTED
while ( (RC_OK == rc)
4004073c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40040740: 02 bf ff e0 be 400406c0 <fat_cluster_set+0x80>
<== NOT EXECUTED
40040744: 80 a4 20 00 cmp %l0, 0
<== NOT EXECUTED
bytes_written += ret;
++cur_blk;
}
ofs_blk = 0;
}
if (RC_OK != rc)
40040748: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004074c: 32 80 00 02 bne,a 40040754 <fat_cluster_set+0x114>
<== NOT EXECUTED
40040750: b2 10 3f ff mov -1, %i1
<== NOT EXECUTED
return rc;
else
return bytes_written;
}
40040754: 81 c7 e0 08 ret
<== NOT EXECUTED
40040758: 91 e8 00 19 restore %g0, %i1, %o0
<== NOT EXECUTED
bytes_to_write -= ret;
4004075c: a0 24 00 08 sub %l0, %o0, %l0
<== NOT EXECUTED
bytes_written += ret;
40040760: b2 06 40 08 add %i1, %o0, %i1
<== NOT EXECUTED
++cur_blk;
40040764: a4 04 a0 01 inc %l2
<== NOT EXECUTED
40040768: 82 10 20 00 clr %g1
<== NOT EXECUTED
4004076c: 10 bf ff f4 b 4004073c <fat_cluster_set+0xfc>
<== NOT EXECUTED
40040770: b4 10 20 00 clr %i2
<== NOT EXECUTED
memset(blk_buf + offset, pattern, bytes_to_write);
40040774: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
40040778: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004077c: 40 00 82 9f call 400611f8 <memset>
<== NOT EXECUTED
40040780: 90 02 00 1a add %o0, %i2, %o0
<== NOT EXECUTED
fs_info->c.modified = true;
40040784: e2 2e 20 90 stb %l1, [ %i0 + 0x90 ]
<== NOT EXECUTED
return bytes_to_write;
40040788: 10 bf ff e9 b 4004072c <fat_cluster_set+0xec>
<== NOT EXECUTED
4004078c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &blk_buf);
40040790: 94 10 20 02 mov 2, %o2
<== NOT EXECUTED
40040794: 7f ff ff 27 call 40040430 <fat_buf_access>
<== NOT EXECUTED
40040798: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
4004079c: 10 bf ff e2 b 40040724 <fat_cluster_set+0xe4>
<== NOT EXECUTED
400407a0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
return sector_number >> (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
400407a4: 10 bf ff bd b 40040698 <fat_cluster_set+0x58>
<== NOT EXECUTED
400407a8: 85 34 80 03 srl %l2, %g3, %g2
<== NOT EXECUTED
400407ac <fat_cluster_write>:
fat_fs_info_t *fs_info,
const uint32_t start_cln,
const uint32_t offset,
const uint32_t count,
const void *buff)
{
400407ac: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
ssize_t rc = RC_OK;
uint32_t bytes_to_write = MIN(count, (fs_info->vol.bpc - offset));
400407b0: e0 06 20 08 ld [ %i0 + 8 ], %l0
<== NOT EXECUTED
400407b4: a0 24 00 1a sub %l0, %i2, %l0
<== NOT EXECUTED
400407b8: 80 a4 00 1b cmp %l0, %i3
<== NOT EXECUTED
400407bc: 38 80 00 02 bgu,a 400407c4 <fat_cluster_write+0x18>
<== NOT EXECUTED
400407c0: a0 10 00 1b mov %i3, %l0
<== NOT EXECUTED
400407c4: c2 0e 20 14 ldub [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
400407c8: c4 0e 20 02 ldub [ %i0 + 2 ], %g2
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
400407cc: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
400407d0: 12 80 00 06 bne 400407e8 <fat_cluster_write+0x3c>
<== NOT EXECUTED
400407d4: 86 20 40 02 sub %g1, %g2, %g3
<== NOT EXECUTED
400407d8: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
400407dc: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
400407e0: 32 80 00 4c bne,a 40040910 <fat_cluster_write+0x164>
<== NOT EXECUTED
400407e4: e4 06 20 28 ld [ %i0 + 0x28 ], %l2
<== NOT EXECUTED
blk = cln << (fs_info->vol.bpc_log2 - fs_info->vol.bytes_per_block_log2);
400407e8: e4 0e 20 0c ldub [ %i0 + 0xc ], %l2
<== NOT EXECUTED
400407ec: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
cln -= FAT_RSRVD_CLN;
400407f0: b2 06 7f fe add %i1, -2, %i1
<== NOT EXECUTED
blk = cln << (fs_info->vol.bpc_log2 - fs_info->vol.bytes_per_block_log2);
400407f4: a4 24 80 01 sub %l2, %g1, %l2
<== NOT EXECUTED
400407f8: 85 30 80 03 srl %g2, %g3, %g2
<== NOT EXECUTED
400407fc: b3 2e 40 12 sll %i1, %l2, %i1
<== NOT EXECUTED
blk += fat_sector_num_to_block_num(fs_info, fs_info->vol.data_fsec);
40040800: 84 00 80 19 add %g2, %i1, %g2
<== NOT EXECUTED
uint32_t cur_blk = fat_cluster_num_to_block_num(fs_info, start_cln);
uint32_t blocks_in_offset = (offset >> fs_info->vol.bytes_per_block_log2);
40040804: a5 36 80 01 srl %i2, %g1, %l2
<== NOT EXECUTED
uint32_t ofs_blk = offset - (blocks_in_offset << fs_info->vol.bytes_per_block_log2);
40040808: 83 2c 80 01 sll %l2, %g1, %g1
<== NOT EXECUTED
ssize_t bytes_written = 0;
4004080c: b2 10 20 00 clr %i1
<== NOT EXECUTED
uint32_t ofs_blk = offset - (blocks_in_offset << fs_info->vol.bytes_per_block_log2);
40040810: b4 26 80 01 sub %i2, %g1, %i2
<== NOT EXECUTED
uint8_t *buffer = (uint8_t*)buff;
ssize_t ret;
uint32_t c;
cur_blk += blocks_in_offset;
40040814: a4 04 80 02 add %l2, %g2, %l2
<== NOT EXECUTED
ssize_t rc = RC_OK;
40040818: 82 10 20 00 clr %g1
<== NOT EXECUTED
while ( (RC_OK == rc)
4004081c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40040820: 12 80 00 26 bne 400408b8 <fat_cluster_write+0x10c>
<== NOT EXECUTED
40040824: a2 10 20 01 mov 1, %l1
<== NOT EXECUTED
40040828: 80 a4 20 00 cmp %l0, 0
<== NOT EXECUTED
4004082c: 02 80 00 23 be 400408b8 <fat_cluster_write+0x10c>
<== NOT EXECUTED
40040830: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
&& (0 < bytes_to_write))
{
c = MIN(bytes_to_write, (fs_info->vol.bytes_per_block - ofs_blk));
40040834: c2 06 20 10 ld [ %i0 + 0x10 ], %g1
<== NOT EXECUTED
40040838: ba 20 40 1a sub %g1, %i2, %i5
<== NOT EXECUTED
4004083c: 80 a7 40 10 cmp %i5, %l0
<== NOT EXECUTED
40040840: 08 80 00 03 bleu 4004084c <fat_cluster_write+0xa0>
<== NOT EXECUTED
40040844: b6 10 00 1d mov %i5, %i3
<== NOT EXECUTED
40040848: b6 10 00 10 mov %l0, %i3
<== NOT EXECUTED
uint32_t bytes_to_write = MIN(count, (fs_info->vol.bytes_per_block - offset));
4004084c: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
40040850: 38 80 00 02 bgu,a 40040858 <fat_cluster_write+0xac>
<== NOT EXECUTED
40040854: ba 10 00 1b mov %i3, %i5
<== NOT EXECUTED
if (0 < bytes_to_write)
40040858: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
4004085c: 02 80 00 0f be 40040898 <fat_cluster_write+0xec>
<== NOT EXECUTED
40040860: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
return block_number << (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
40040864: d2 0e 20 14 ldub [ %i0 + 0x14 ], %o1
<== NOT EXECUTED
40040868: c4 0e 20 02 ldub [ %i0 + 2 ], %g2
<== NOT EXECUTED
4004086c: 92 22 40 02 sub %o1, %g2, %o1
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &blk_buf);
40040870: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
if (bytes_to_write == fs_info->vol.bytes_per_block)
40040874: 80 a0 40 1d cmp %g1, %i5
<== NOT EXECUTED
40040878: 02 80 00 21 be 400408fc <fat_cluster_write+0x150>
<== NOT EXECUTED
4004087c: 93 2c 80 09 sll %l2, %o1, %o1
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_READ, &blk_buf);
40040880: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
40040884: 7f ff fe eb call 40040430 <fat_buf_access>
<== NOT EXECUTED
40040888: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
4004088c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040890: 22 80 00 14 be,a 400408e0 <fat_cluster_write+0x134>
<== NOT EXECUTED
40040894: d0 07 bf fc ld [ %fp + -4 ], %o0
<== NOT EXECUTED
fs_info,
cur_blk,
ofs_blk,
c,
&buffer[bytes_written]);
if (c != ret)
40040898: 80 a2 00 1b cmp %o0, %i3
<== NOT EXECUTED
4004089c: 02 80 00 0b be 400408c8 <fat_cluster_write+0x11c>
<== NOT EXECUTED
400408a0: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
400408a4: b4 10 20 00 clr %i2
<== NOT EXECUTED
while ( (RC_OK == rc)
400408a8: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400408ac: 02 bf ff e0 be 4004082c <fat_cluster_write+0x80>
<== NOT EXECUTED
400408b0: 80 a4 20 00 cmp %l0, 0
<== NOT EXECUTED
bytes_written += ret;
++cur_blk;
}
ofs_blk = 0;
}
if (RC_OK != rc)
400408b4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400408b8: 32 80 00 02 bne,a 400408c0 <fat_cluster_write+0x114>
<== NOT EXECUTED
400408bc: b2 10 3f ff mov -1, %i1
<== NOT EXECUTED
return rc;
else
return bytes_written;
}
400408c0: 81 c7 e0 08 ret
<== NOT EXECUTED
400408c4: 91 e8 00 19 restore %g0, %i1, %o0
<== NOT EXECUTED
bytes_to_write -= ret;
400408c8: a0 24 00 08 sub %l0, %o0, %l0
<== NOT EXECUTED
bytes_written += ret;
400408cc: b2 06 40 08 add %i1, %o0, %i1
<== NOT EXECUTED
++cur_blk;
400408d0: a4 04 a0 01 inc %l2
<== NOT EXECUTED
400408d4: 82 10 20 00 clr %g1
<== NOT EXECUTED
400408d8: 10 bf ff f4 b 400408a8 <fat_cluster_write+0xfc>
<== NOT EXECUTED
400408dc: b4 10 20 00 clr %i2
<== NOT EXECUTED
memcpy(blk_buf + offset, buf, bytes_to_write);
400408e0: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
400408e4: 92 07 00 19 add %i4, %i1, %o1
<== NOT EXECUTED
400408e8: 40 00 81 ba call 40060fd0 <memcpy>
<== NOT EXECUTED
400408ec: 90 02 00 1a add %o0, %i2, %o0
<== NOT EXECUTED
fs_info->c.modified = true;
400408f0: e2 2e 20 90 stb %l1, [ %i0 + 0x90 ]
<== NOT EXECUTED
return bytes_to_write;
400408f4: 10 bf ff e9 b 40040898 <fat_cluster_write+0xec>
<== NOT EXECUTED
400408f8: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &blk_buf);
400408fc: 94 10 20 02 mov 2, %o2
<== NOT EXECUTED
40040900: 7f ff fe cc call 40040430 <fat_buf_access>
<== NOT EXECUTED
40040904: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
40040908: 10 bf ff e2 b 40040890 <fat_cluster_write+0xe4>
<== NOT EXECUTED
4004090c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
return sector_number >> (fs_info->vol.bytes_per_block_log2 - fs_info->vol.sec_log2);
40040910: 10 bf ff bd b 40040804 <fat_cluster_write+0x58>
<== NOT EXECUTED
40040914: 85 34 80 03 srl %l2, %g3, %g2
<== NOT EXECUTED
4003fb08 <fat_file_close>:
{
4003fb08: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
if (fat_fd->links_num > 1)
4003fb0c: c2 06 60 08 ld [ %i1 + 8 ], %g1
<== NOT EXECUTED
4003fb10: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003fb14: 08 80 00 05 bleu 4003fb28 <fat_file_close+0x20>
<== NOT EXECUTED
4003fb18: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
fat_fd->links_num--;
4003fb1c: c2 26 60 08 st %g1, [ %i1 + 8 ]
<== NOT EXECUTED
rc = fat_buf_release(fs_info);
4003fb20: 40 00 02 74 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003fb24: 81 e8 00 00 restore
<== NOT EXECUTED
fat_file_update(fs_info, fat_fd);
4003fb28: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003fb2c: 7f ff ff 17 call 4003f788 <fat_file_update>
<== NOT EXECUTED
4003fb30: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (fat_fd->flags & FAT_FILE_REMOVED)
4003fb34: c2 0e 60 30 ldub [ %i1 + 0x30 ], %g1
<== NOT EXECUTED
4003fb38: 80 88 60 01 btst 1, %g1
<== NOT EXECUTED
4003fb3c: 12 80 00 0b bne 4003fb68 <fat_file_close+0x60>
<== NOT EXECUTED
4003fb40: 94 10 20 00 clr %o2
<== NOT EXECUTED
if (fat_ino_is_unique(fs_info, fat_fd->ino))
4003fb44: d2 06 60 0c ld [ %i1 + 0xc ], %o1
<== NOT EXECUTED
4003fb48: 40 00 06 7e call 40041540 <fat_ino_is_unique>
<== NOT EXECUTED
4003fb4c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003fb50: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003fb54: 22 80 00 1b be,a 4003fbc0 <fat_file_close+0xb8>
<== NOT EXECUTED
4003fb58: c4 06 40 00 ld [ %i1 ], %g2
<== NOT EXECUTED
fat_fd->links_num = 0;
4003fb5c: c0 26 60 08 clr [ %i1 + 8 ]
<== NOT EXECUTED
rc = fat_buf_release(fs_info);
4003fb60: 40 00 02 64 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003fb64: 81 e8 00 00 restore
<== NOT EXECUTED
rc = fat_file_truncate(fs_info, fat_fd, 0);
4003fb68: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003fb6c: 7f ff ff a4 call 4003f9fc <fat_file_truncate>
<== NOT EXECUTED
4003fb70: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc == RC_OK)
4003fb74: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003fb78: 12 bf ff ea bne 4003fb20 <fat_file_close+0x18>
<== NOT EXECUTED
4003fb7c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
next = the_node->next;
4003fb80: c4 06 40 00 ld [ %i1 ], %g2
<== NOT EXECUTED
previous = the_node->previous;
4003fb84: c2 06 60 04 ld [ %i1 + 4 ], %g1
<== NOT EXECUTED
_hash_delete(fs_info->rhash, key, fat_fd->ino, fat_fd);
4003fb88: d2 06 60 0c ld [ %i1 + 0xc ], %o1
<== NOT EXECUTED
next->previous = previous;
4003fb8c: c2 20 a0 04 st %g1, [ %g2 + 4 ]
<== NOT EXECUTED
if (fat_ino_is_unique(fs_info, fat_fd->ino))
4003fb90: 40 00 06 6c call 40041540 <fat_ino_is_unique>
<== NOT EXECUTED
4003fb94: c4 20 40 00 st %g2, [ %g1 ]
<== NOT EXECUTED
4003fb98: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003fb9c: 02 80 00 05 be 4003fbb0 <fat_file_close+0xa8>
<== NOT EXECUTED
4003fba0: 01 00 00 00 nop
<== NOT EXECUTED
fat_free_unique_ino(fs_info, fat_fd->ino);
4003fba4: d2 06 60 0c ld [ %i1 + 0xc ], %o1
<== NOT EXECUTED
4003fba8: 40 00 06 5b call 40041514 <fat_free_unique_ino>
<== NOT EXECUTED
4003fbac: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
free(fat_fd);
4003fbb0: 7f ff 2e b4 call 4000b680 <free>
<== NOT EXECUTED
4003fbb4: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
rc = fat_buf_release(fs_info);
4003fbb8: 40 00 02 4e call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003fbbc: 81 e8 00 00 restore
<== NOT EXECUTED
previous = the_node->previous;
4003fbc0: c2 06 60 04 ld [ %i1 + 4 ], %g1
<== NOT EXECUTED
next->previous = previous;
4003fbc4: c2 20 a0 04 st %g1, [ %g2 + 4 ]
<== NOT EXECUTED
free(fat_fd);
4003fbc8: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
4003fbcc: 7f ff 2e ad call 4000b680 <free>
<== NOT EXECUTED
4003fbd0: c4 20 40 00 st %g2, [ %g1 ]
<== NOT EXECUTED
rc = fat_buf_release(fs_info);
4003fbd4: 40 00 02 47 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003fbd8: 81 e8 00 00 restore
<== NOT EXECUTED
4003fcb0 <fat_file_extend>:
{
4003fcb0: 9d e3 bf 90 save %sp, -112, %sp
<== NOT EXECUTED
*a_length = new_length;
4003fcb4: f6 27 00 00 st %i3, [ %i4 ]
<== NOT EXECUTED
uint32_t chain = 0;
4003fcb8: c0 27 bf f0 clr [ %fp + -16 ]
<== NOT EXECUTED
uint32_t last_cl = 0;
4003fcbc: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
if (new_length <= fat_fd->fat_file_size)
4003fcc0: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
<== NOT EXECUTED
4003fcc4: 80 a0 40 1b cmp %g1, %i3
<== NOT EXECUTED
4003fcc8: 1a 80 00 54 bcc 4003fe18 <fat_file_extend+0x168>
<== NOT EXECUTED
4003fccc: a0 10 20 00 clr %l0
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4003fcd0: c4 06 60 20 ld [ %i1 + 0x20 ], %g2
<== NOT EXECUTED
4003fcd4: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
4003fcd8: 22 80 00 53 be,a 4003fe24 <fat_file_extend+0x174>
<== NOT EXECUTED
4003fcdc: c4 06 60 24 ld [ %i1 + 0x24 ], %g2
<== NOT EXECUTED
bytes_remain = (fs_info->vol.bpc -
4003fce0: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
(fat_fd->fat_file_size & (fs_info->vol.bpc - 1))) &
4003fce4: 84 07 7f ff add %i5, -1, %g2
<== NOT EXECUTED
4003fce8: a4 08 40 02 and %g1, %g2, %l2
<== NOT EXECUTED
bytes_remain = (fs_info->vol.bpc -
4003fcec: ba 27 40 12 sub %i5, %l2, %i5
<== NOT EXECUTED
4003fcf0: ba 0f 40 02 and %i5, %g2, %i5
<== NOT EXECUTED
4003fcf4: 80 a0 00 1d cmp %g0, %i5
<== NOT EXECUTED
bytes2add = new_length - fat_fd->fat_file_size;
4003fcf8: 86 26 c0 01 sub %i3, %g1, %g3
<== NOT EXECUTED
4003fcfc: 84 40 20 00 addx %g0, 0, %g2
<== NOT EXECUTED
if (bytes2add > bytes_remain)
4003fd00: 80 a7 40 03 cmp %i5, %g3
<== NOT EXECUTED
4003fd04: 1a 80 00 41 bcc 4003fe08 <fat_file_extend+0x158>
<== NOT EXECUTED
4003fd08: 84 0e 80 02 and %i2, %g2, %g2
<== NOT EXECUTED
if (zero_fill && bytes_remain > 0) {
4003fd0c: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4003fd10: 12 80 00 51 bne 4003fe54 <fat_file_extend+0x1a4>
<== NOT EXECUTED
4003fd14: a2 20 c0 1d sub %g3, %i5, %l1
<== NOT EXECUTED
if (bytes2add == 0)
4003fd18: 80 a4 60 00 cmp %l1, 0
<== NOT EXECUTED
4003fd1c: 02 80 00 3e be 4003fe14 <fat_file_extend+0x164>
<== NOT EXECUTED
4003fd20: 9a 10 00 1a mov %i2, %o5
<== NOT EXECUTED
cls2add = ((bytes2add - 1) >> fs_info->vol.bpc_log2) + 1;
4003fd24: c4 0e 20 0c ldub [ %i0 + 0xc ], %g2
<== NOT EXECUTED
4003fd28: 82 04 7f ff add %l1, -1, %g1
<== NOT EXECUTED
rc = fat_scan_fat_for_free_clusters(fs_info, &chain, cls2add,
4003fd2c: 98 07 bf f8 add %fp, -8, %o4
<== NOT EXECUTED
cls2add = ((bytes2add - 1) >> fs_info->vol.bpc_log2) + 1;
4003fd30: b5 30 40 02 srl %g1, %g2, %i2
<== NOT EXECUTED
rc = fat_scan_fat_for_free_clusters(fs_info, &chain, cls2add,
4003fd34: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
cls2add = ((bytes2add - 1) >> fs_info->vol.bpc_log2) + 1;
4003fd38: b4 06 a0 01 inc %i2
<== NOT EXECUTED
rc = fat_scan_fat_for_free_clusters(fs_info, &chain, cls2add,
4003fd3c: 92 07 bf f0 add %fp, -16, %o1
<== NOT EXECUTED
4003fd40: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4003fd44: 7f ff fd 2d call 4003f1f8 <fat_scan_fat_for_free_clusters>
<== NOT EXECUTED
4003fd48: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003fd4c: a0 92 20 00 orcc %o0, 0, %l0
<== NOT EXECUTED
4003fd50: 32 80 00 33 bne,a 4003fe1c <fat_file_extend+0x16c>
<== NOT EXECUTED
4003fd54: b0 10 00 10 mov %l0, %i0
<== NOT EXECUTED
if ((cls_added == 0) && (bytes_remain == 0))
4003fd58: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
4003fd5c: 80 90 40 1d orcc %g1, %i5, %g0
<== NOT EXECUTED
4003fd60: 02 80 00 38 be 4003fe40 <fat_file_extend+0x190>
<== NOT EXECUTED
4003fd64: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
if (cls2add != cls_added)
4003fd68: 02 80 00 08 be 4003fd88 <fat_file_extend+0xd8>
<== NOT EXECUTED
4003fd6c: b4 26 80 01 sub %i2, %g1, %i2
<== NOT EXECUTED
uint32_t missing = (cls2add - cls_added) << fs_info->vol.bpc_log2;
4003fd70: c4 0e 20 0c ldub [ %i0 + 0xc ], %g2
<== NOT EXECUTED
4003fd74: b5 2e 80 02 sll %i2, %g2, %i2
<== NOT EXECUTED
new_length -= bytes2add < missing ? bytes2add : missing;
4003fd78: 80 a6 80 11 cmp %i2, %l1
<== NOT EXECUTED
4003fd7c: 38 80 00 02 bgu,a 4003fd84 <fat_file_extend+0xd4>
<== NOT EXECUTED
4003fd80: b4 10 00 11 mov %l1, %i2
<== NOT EXECUTED
4003fd84: b6 26 c0 1a sub %i3, %i2, %i3
<== NOT EXECUTED
if (cls_added > 0)
4003fd88: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003fd8c: 22 80 00 47 be,a 4003fea8 <fat_file_extend+0x1f8>
<== NOT EXECUTED
4003fd90: f6 27 00 00 st %i3, [ %i4 ]
<== NOT EXECUTED
if ( fat_fd->fat_file_size == 0 )
4003fd94: d6 06 60 18 ld [ %i1 + 0x18 ], %o3
<== NOT EXECUTED
4003fd98: 80 a2 e0 00 cmp %o3, 0
<== NOT EXECUTED
4003fd9c: 32 80 00 48 bne,a 4003febc <fat_file_extend+0x20c>
<== NOT EXECUTED
4003fda0: d2 06 60 3c ld [ %i1 + 0x3c ], %o1
<== NOT EXECUTED
fat_fd->map.disk_cln = chain;
4003fda4: c4 07 bf f0 ld [ %fp + -16 ], %g2
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4003fda8: c2 0e 60 30 ldub [ %i1 + 0x30 ], %g1
<== NOT EXECUTED
4003fdac: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
4003fdb0: c4 26 60 38 st %g2, [ %i1 + 0x38 ]
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
4003fdb4: c0 26 60 34 clr [ %i1 + 0x34 ]
<== NOT EXECUTED
fat_fd->cln = cln;
4003fdb8: c4 26 60 1c st %g2, [ %i1 + 0x1c ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4003fdbc: c2 2e 60 30 stb %g1, [ %i1 + 0x30 ]
<== NOT EXECUTED
fat_fd->map.last_cln = last_cl;
4003fdc0: c2 07 bf f8 ld [ %fp + -8 ], %g1
<== NOT EXECUTED
4003fdc4: c2 26 60 3c st %g1, [ %i1 + 0x3c ]
<== NOT EXECUTED
if (fat_fd->fat_file_type == FAT_DIRECTORY)
4003fdc8: c2 06 60 10 ld [ %i1 + 0x10 ], %g1
<== NOT EXECUTED
4003fdcc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003fdd0: 32 80 00 36 bne,a 4003fea8 <fat_file_extend+0x1f8>
<== NOT EXECUTED
4003fdd4: f6 27 00 00 st %i3, [ %i4 ]
<== NOT EXECUTED
rc = fat_init_clusters_chain(fs_info, chain);
4003fdd8: d2 07 bf f0 ld [ %fp + -16 ], %o1
<== NOT EXECUTED
4003fddc: 40 00 05 71 call 400413a0 <fat_init_clusters_chain>
<== NOT EXECUTED
4003fde0: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4003fde4: 82 92 20 00 orcc %o0, 0, %g1
<== NOT EXECUTED
4003fde8: 22 80 00 30 be,a 4003fea8 <fat_file_extend+0x1f8>
<== NOT EXECUTED
4003fdec: f6 27 00 00 st %i3, [ %i4 ]
<== NOT EXECUTED
fat_free_fat_clusters_chain(fs_info, chain);
4003fdf0: d2 07 bf f0 ld [ %fp + -16 ], %o1
<== NOT EXECUTED
4003fdf4: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003fdf8: 7f ff fc c8 call 4003f118 <fat_free_fat_clusters_chain>
<== NOT EXECUTED
4003fdfc: a0 10 00 01 mov %g1, %l0
<== NOT EXECUTED
return rc;
4003fe00: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fe04: 91 e8 00 10 restore %g0, %l0, %o0
<== NOT EXECUTED
if (zero_fill && bytes_remain > 0) {
4003fe08: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4003fe0c: 12 80 00 12 bne 4003fe54 <fat_file_extend+0x1a4>
<== NOT EXECUTED
4003fe10: a2 10 20 00 clr %l1
<== NOT EXECUTED
return RC_OK;
4003fe14: a0 10 20 00 clr %l0
<== NOT EXECUTED
}
4003fe18: b0 10 00 10 mov %l0, %i0
<== NOT EXECUTED
4003fe1c: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fe20: 81 e8 00 00 restore
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4003fe24: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4003fe28: 32 bf ff af bne,a 4003fce4 <fat_file_extend+0x34>
<== NOT EXECUTED
4003fe2c: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
4003fe30: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4003fe34: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4003fe38: 22 bf ff ab be,a 4003fce4 <fat_file_extend+0x34>
<== NOT EXECUTED
4003fe3c: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENOSPC);
4003fe40: 40 00 72 b5 call 4005c914 <__errno>
<== NOT EXECUTED
4003fe44: a0 10 3f ff mov -1, %l0
<== NOT EXECUTED
4003fe48: 82 10 20 1c mov 0x1c, %g1
<== NOT EXECUTED
4003fe4c: 10 bf ff f3 b 4003fe18 <fat_file_extend+0x168>
<== NOT EXECUTED
4003fe50: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
uint32_t cl_start = start >> fs_info->vol.bpc_log2;
4003fe54: d4 0e 20 0c ldub [ %i0 + 0xc ], %o2
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, cl_start, &cur_cln);
4003fe58: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003fe5c: 95 30 40 0a srl %g1, %o2, %o2
<== NOT EXECUTED
4003fe60: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003fe64: 7f ff fd 5a call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003fe68: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003fe6c: a0 92 60 00 orcc %o1, 0, %l0
<== NOT EXECUTED
4003fe70: 32 bf ff eb bne,a 4003fe1c <fat_file_extend+0x16c>
<== NOT EXECUTED
4003fe74: b0 10 00 10 mov %l0, %i0
<== NOT EXECUTED
bytes_written = fat_cluster_set (fs_info, cur_cln, ofs, bytes_remain, 0);
4003fe78: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
4003fe7c: 98 10 20 00 clr %o4
<== NOT EXECUTED
4003fe80: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
4003fe84: 94 10 00 12 mov %l2, %o2
<== NOT EXECUTED
4003fe88: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003fe8c: 40 00 01 ed call 40040640 <fat_cluster_set>
<== NOT EXECUTED
4003fe90: a0 10 3f ff mov -1, %l0
<== NOT EXECUTED
if (bytes_remain != bytes_written)
4003fe94: 80 a2 00 1d cmp %o0, %i5
<== NOT EXECUTED
4003fe98: 32 bf ff e1 bne,a 4003fe1c <fat_file_extend+0x16c>
<== NOT EXECUTED
4003fe9c: b0 10 00 10 mov %l0, %i0
<== NOT EXECUTED
4003fea0: 10 bf ff 9f b 4003fd1c <fat_file_extend+0x6c>
<== NOT EXECUTED
4003fea4: 80 a4 60 00 cmp %l1, 0
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4003fea8: c2 0e 60 30 ldub [ %i1 + 0x30 ], %g1
<== NOT EXECUTED
4003feac: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->fat_file_size = s;
4003feb0: f6 26 60 18 st %i3, [ %i1 + 0x18 ]
<== NOT EXECUTED
return RC_OK;
4003feb4: 10 bf ff d9 b 4003fe18 <fat_file_extend+0x168>
<== NOT EXECUTED
4003feb8: c2 2e 60 30 stb %g1, [ %i1 + 0x30 ]
<== NOT EXECUTED
if (fat_fd->map.last_cln != FAT_UNDEFINED_VALUE)
4003febc: 80 a2 7f ff cmp %o1, -1
<== NOT EXECUTED
4003fec0: 22 80 00 0d be,a 4003fef4 <fat_file_extend+0x244>
<== NOT EXECUTED
4003fec4: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
old_last_cl = fat_fd->map.last_cln;
4003fec8: d2 27 bf f4 st %o1, [ %fp + -12 ]
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, old_last_cl, chain);
4003fecc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003fed0: 7f ff fb f0 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003fed4: d4 07 bf f0 ld [ %fp + -16 ], %o2
<== NOT EXECUTED
if ( rc != RC_OK )
4003fed8: 82 92 20 00 orcc %o0, 0, %g1
<== NOT EXECUTED
4003fedc: 12 bf ff c6 bne 4003fdf4 <fat_file_extend+0x144>
<== NOT EXECUTED
4003fee0: d2 07 bf f0 ld [ %fp + -16 ], %o1
<== NOT EXECUTED
fat_buf_release(fs_info);
4003fee4: 40 00 01 83 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003fee8: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
fat_fd->map.last_cln = last_cl;
4003feec: 10 bf ff b6 b 4003fdc4 <fat_file_extend+0x114>
<== NOT EXECUTED
4003fef0: c2 07 bf f8 ld [ %fp + -8 ], %g1
<== NOT EXECUTED
rc = fat_file_ioctl(fs_info, fat_fd, F_CLU_NUM,
4003fef4: 98 07 bf f4 add %fp, -12, %o4
<== NOT EXECUTED
4003fef8: 96 02 ff ff add %o3, -1, %o3
<== NOT EXECUTED
4003fefc: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003ff00: 7f ff ff 37 call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4003ff04: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003ff08: d2 07 bf f4 ld [ %fp + -12 ], %o1
<== NOT EXECUTED
if ( rc != RC_OK )
4003ff0c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003ff10: 02 bf ff ef be 4003fecc <fat_file_extend+0x21c>
<== NOT EXECUTED
4003ff14: 82 10 00 08 mov %o0, %g1
<== NOT EXECUTED
4003ff18: 10 bf ff b7 b 4003fdf4 <fat_file_extend+0x144>
<== NOT EXECUTED
4003ff1c: d2 07 bf f0 ld [ %fp + -16 ], %o1
<== NOT EXECUTED
4003fbdc <fat_file_ioctl>:
{
4003fbdc: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
va_start(ap, cmd);
4003fbe0: 82 07 a0 50 add %fp, 0x50, %g1
<== NOT EXECUTED
4003fbe4: f6 27 a0 50 st %i3, [ %fp + 0x50 ]
<== NOT EXECUTED
switch (cmd)
4003fbe8: 80 a6 a0 01 cmp %i2, 1
<== NOT EXECUTED
va_start(ap, cmd);
4003fbec: f8 27 a0 54 st %i4, [ %fp + 0x54 ]
<== NOT EXECUTED
4003fbf0: fa 27 a0 58 st %i5, [ %fp + 0x58 ]
<== NOT EXECUTED
uint32_t cur_cln = 0;
4003fbf4: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
switch (cmd)
4003fbf8: 12 80 00 22 bne 4003fc80 <fat_file_ioctl+0xa4>
<== NOT EXECUTED
4003fbfc: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
ret = va_arg(ap, uint32_t *);
4003fc00: 84 07 a0 58 add %fp, 0x58, %g2
<== NOT EXECUTED
4003fc04: c4 27 bf fc st %g2, [ %fp + -4 ]
<== NOT EXECUTED
if ( pos >= fat_fd->fat_file_size ) {
4003fc08: c4 06 60 18 ld [ %i1 + 0x18 ], %g2
<== NOT EXECUTED
4003fc0c: 80 a0 80 1b cmp %g2, %i3
<== NOT EXECUTED
4003fc10: 08 80 00 22 bleu 4003fc98 <fat_file_ioctl+0xbc>
<== NOT EXECUTED
4003fc14: ba 10 00 1c mov %i4, %i5
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4003fc18: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4003fc1c: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003fc20: 32 80 00 0d bne,a 4003fc54 <fat_file_ioctl+0x78>
<== NOT EXECUTED
4003fc24: d4 0e 20 0c ldub [ %i0 + 0xc ], %o2
<== NOT EXECUTED
4003fc28: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
4003fc2c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003fc30: 32 80 00 09 bne,a 4003fc54 <fat_file_ioctl+0x78>
<== NOT EXECUTED
4003fc34: d4 0e 20 0c ldub [ %i0 + 0xc ], %o2
<== NOT EXECUTED
4003fc38: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
4003fc3c: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4003fc40: 22 80 00 05 be,a 4003fc54 <fat_file_ioctl+0x78>
<== NOT EXECUTED
4003fc44: d4 0e 20 0c ldub [ %i0 + 0xc ], %o2
<== NOT EXECUTED
*ret = 0;
4003fc48: c0 27 00 00 clr [ %i4 ]
<== NOT EXECUTED
break;
4003fc4c: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fc50: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, cl_start, &cur_cln);
4003fc54: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003fc58: 96 07 bf f8 add %fp, -8, %o3
<== NOT EXECUTED
4003fc5c: 95 36 c0 0a srl %i3, %o2, %o2
<== NOT EXECUTED
4003fc60: 7f ff fd db call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003fc64: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
if ( rc != RC_OK )
4003fc68: b0 92 60 00 orcc %o1, 0, %i0
<== NOT EXECUTED
4003fc6c: 12 80 00 03 bne 4003fc78 <fat_file_ioctl+0x9c>
<== NOT EXECUTED
4003fc70: c2 07 bf f8 ld [ %fp + -8 ], %g1
<== NOT EXECUTED
*ret = cur_cln;
4003fc74: c2 27 40 00 st %g1, [ %i5 ]
<== NOT EXECUTED
break;
4003fc78: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fc7c: 81 e8 00 00 restore
<== NOT EXECUTED
errno = EINVAL;
4003fc80: 40 00 73 25 call 4005c914 <__errno>
<== NOT EXECUTED
4003fc84: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003fc88: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
4003fc8c: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
}
4003fc90: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fc94: 81 e8 00 00 restore
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( EIO );
4003fc98: 40 00 73 1f call 4005c914 <__errno>
<== NOT EXECUTED
4003fc9c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003fca0: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4003fca4: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4003fca8: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fcac: 81 e8 00 00 restore
<== NOT EXECUTED
40040130 <fat_file_mark_removed>:
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
40040130: c2 02 60 20 ld [ %o1 + 0x20 ], %g1
<== NOT EXECUTED
if (cln == 1)
40040134: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
40040138: c6 02 40 00 ld [ %o1 ], %g3
<== NOT EXECUTED
previous = the_node->previous;
4004013c: c4 02 60 04 ld [ %o1 + 4 ], %g2
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
40040140: c2 02 60 24 ld [ %o1 + 0x24 ], %g1
<== NOT EXECUTED
next->previous = previous;
40040144: c4 20 e0 04 st %g2, [ %g3 + 4 ]
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
40040148: 83 30 60 05 srl %g1, 5, %g1
<== NOT EXECUTED
previous->next = next;
4004014c: c6 20 80 00 st %g3, [ %g2 ]
<== NOT EXECUTED
rtems_chain_append_unprotected((hash) + ((key1) % FAT_HASH_MODULE), &(el)->link);
40040150: 82 08 60 01 and %g1, 1, %g1
<== NOT EXECUTED
40040154: c4 02 20 78 ld [ %o0 + 0x78 ], %g2
<== NOT EXECUTED
40040158: 87 28 60 01 sll %g1, 1, %g3
<== NOT EXECUTED
4004015c: 82 00 c0 01 add %g3, %g1, %g1
<== NOT EXECUTED
40040160: 83 28 60 02 sll %g1, 2, %g1
<== NOT EXECUTED
40040164: 82 00 80 01 add %g2, %g1, %g1
<== NOT EXECUTED
old_last = tail->previous;
40040168: c4 00 60 08 ld [ %g1 + 8 ], %g2
<== NOT EXECUTED
return &the_chain->Tail.Node;
4004016c: 86 00 60 04 add %g1, 4, %g3
<== NOT EXECUTED
the_node->next = tail;
40040170: c6 22 40 00 st %g3, [ %o1 ]
<== NOT EXECUTED
tail->previous = the_node;
40040174: d2 20 60 08 st %o1, [ %g1 + 8 ]
<== NOT EXECUTED
old_last->next = the_node;
40040178: d2 20 80 00 st %o1, [ %g2 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_REMOVED;
4004017c: c2 0a 60 30 ldub [ %o1 + 0x30 ], %g1
<== NOT EXECUTED
40040180: 82 10 60 01 or %g1, 1, %g1
<== NOT EXECUTED
the_node->previous = old_last;
40040184: c4 22 60 04 st %g2, [ %o1 + 4 ]
<== NOT EXECUTED
}
40040188: 81 c3 e0 08 retl
<== NOT EXECUTED
4004018c: c2 2a 60 30 stb %g1, [ %o1 + 0x30 ]
<== NOT EXECUTED
4003f468 <fat_file_open>:
{
4003f468: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f46c: c2 06 40 00 ld [ %i1 ], %g1
<== NOT EXECUTED
if (cln == 1)
4003f470: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003f474: 02 80 00 0b be 4003f4a0 <fat_file_open+0x38>
<== NOT EXECUTED
4003f478: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f47c: 32 80 00 76 bne,a 4003f654 <fat_file_open+0x1ec>
<== NOT EXECUTED
4003f480: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4003f484: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4003f488: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4003f48c: 22 80 00 72 be,a 4003f654 <fat_file_open+0x1ec>
<== NOT EXECUTED
4003f490: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4003f494: c2 06 20 28 ld [ %i0 + 0x28 ], %g1
<== NOT EXECUTED
fs_info->vol.sec_mul);
4003f498: fa 0e 20 03 ldub [ %i0 + 3 ], %i5
<== NOT EXECUTED
return (fat_cluster_num_to_sector_num(fs_info, cln) <<
4003f49c: 83 28 40 1d sll %g1, %i5, %g1
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f4a0: c4 06 60 04 ld [ %i1 + 4 ], %g2
<== NOT EXECUTED
rtems_chain_node *the_node = rtems_chain_first(hash + mod);
4003f4a4: e0 06 20 74 ld [ %i0 + 0x74 ], %l0
<== NOT EXECUTED
4003f4a8: bb 30 a0 09 srl %g2, 9, %i5
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f4ac: 85 30 a0 05 srl %g2, 5, %g2
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f4b0: ba 07 40 01 add %i5, %g1, %i5
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f4b4: 84 08 a0 0f and %g2, 0xf, %g2
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f4b8: bb 2f 60 04 sll %i5, 4, %i5
<== NOT EXECUTED
4003f4bc: ba 07 40 02 add %i5, %g2, %i5
<== NOT EXECUTED
uint32_t mod = (key1) % FAT_HASH_MODULE;
4003f4c0: 82 0f 60 01 and %i5, 1, %g1
<== NOT EXECUTED
rtems_chain_node *the_node = rtems_chain_first(hash + mod);
4003f4c4: b7 28 60 01 sll %g1, 1, %i3
<== NOT EXECUTED
4003f4c8: b6 06 c0 01 add %i3, %g1, %i3
<== NOT EXECUTED
4003f4cc: b7 2e e0 02 sll %i3, 2, %i3
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
4003f4d0: c8 04 00 1b ld [ %l0 + %i3 ], %g4
<== NOT EXECUTED
4003f4d4: a0 04 00 1b add %l0, %i3, %l0
<== NOT EXECUTED
return &the_chain->Tail.Node;
4003f4d8: b8 04 20 04 add %l0, 4, %i4
<== NOT EXECUTED
for ( ; !rtems_chain_is_tail((hash) + mod, the_node) ; )
4003f4dc: 80 a1 00 1c cmp %g4, %i4
<== NOT EXECUTED
4003f4e0: 22 80 00 1e be,a 4003f558 <fat_file_open+0xf0>
<== NOT EXECUTED
4003f4e4: de 06 20 78 ld [ %i0 + 0x78 ], %o7
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f4e8: c2 01 20 20 ld [ %g4 + 0x20 ], %g1
<== NOT EXECUTED
if (cln == 1)
4003f4ec: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003f4f0: 02 80 00 0b be 4003f51c <fat_file_open+0xb4>
<== NOT EXECUTED
4003f4f4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f4f8: 32 80 00 5c bne,a 4003f668 <fat_file_open+0x200>
<== NOT EXECUTED
4003f4fc: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4003f500: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4003f504: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4003f508: 22 80 00 58 be,a 4003f668 <fat_file_open+0x200>
<== NOT EXECUTED
4003f50c: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4003f510: c2 06 20 28 ld [ %i0 + 0x28 ], %g1
<== NOT EXECUTED
fs_info->vol.sec_mul);
4003f514: c4 0e 20 03 ldub [ %i0 + 3 ], %g2
<== NOT EXECUTED
return (fat_cluster_num_to_sector_num(fs_info, cln) <<
4003f518: 83 28 40 02 sll %g1, %g2, %g1
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f51c: c6 01 20 24 ld [ %g4 + 0x24 ], %g3
<== NOT EXECUTED
4003f520: 85 30 e0 09 srl %g3, 9, %g2
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f524: 87 30 e0 05 srl %g3, 5, %g3
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f528: 82 00 80 01 add %g2, %g1, %g1
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f52c: 86 08 e0 0f and %g3, 0xf, %g3
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f530: 83 28 60 04 sll %g1, 4, %g1
<== NOT EXECUTED
4003f534: 82 00 40 03 add %g1, %g3, %g1
<== NOT EXECUTED
if ( (key1) == ck)
4003f538: 80 a7 40 01 cmp %i5, %g1
<== NOT EXECUTED
4003f53c: 22 80 00 80 be,a 4003f73c <fat_file_open+0x2d4>
<== NOT EXECUTED
4003f540: c2 01 20 08 ld [ %g4 + 8 ], %g1
<== NOT EXECUTED
the_node = the_node->next;
4003f544: c8 01 00 00 ld [ %g4 ], %g4
<== NOT EXECUTED
for ( ; !rtems_chain_is_tail((hash) + mod, the_node) ; )
4003f548: 80 a1 00 1c cmp %g4, %i4
<== NOT EXECUTED
4003f54c: 32 bf ff e8 bne,a 4003f4ec <fat_file_open+0x84>
<== NOT EXECUTED
4003f550: c2 01 20 20 ld [ %g4 + 0x20 ], %g1
<== NOT EXECUTED
rtems_chain_node *the_node = rtems_chain_first(hash + mod);
4003f554: de 06 20 78 ld [ %i0 + 0x78 ], %o7
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
4003f558: c8 03 c0 1b ld [ %o7 + %i3 ], %g4
<== NOT EXECUTED
4003f55c: 9e 03 c0 1b add %o7, %i3, %o7
<== NOT EXECUTED
return &the_chain->Tail.Node;
4003f560: 9e 03 e0 04 add %o7, 4, %o7
<== NOT EXECUTED
for ( ; !rtems_chain_is_tail((hash) + mod, the_node) ; )
4003f564: 80 a1 00 0f cmp %g4, %o7
<== NOT EXECUTED
4003f568: 02 80 00 1e be 4003f5e0 <fat_file_open+0x178>
<== NOT EXECUTED
4003f56c: 92 10 20 50 mov 0x50, %o1
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f570: c2 01 20 20 ld [ %g4 + 0x20 ], %g1
<== NOT EXECUTED
if (cln == 1)
4003f574: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003f578: 02 80 00 0b be 4003f5a4 <fat_file_open+0x13c>
<== NOT EXECUTED
4003f57c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f580: 32 80 00 3f bne,a 4003f67c <fat_file_open+0x214>
<== NOT EXECUTED
4003f584: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4003f588: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4003f58c: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4003f590: 22 80 00 3b be,a 4003f67c <fat_file_open+0x214>
<== NOT EXECUTED
4003f594: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4003f598: c2 06 20 28 ld [ %i0 + 0x28 ], %g1
<== NOT EXECUTED
fs_info->vol.sec_mul);
4003f59c: c4 0e 20 03 ldub [ %i0 + 3 ], %g2
<== NOT EXECUTED
return (fat_cluster_num_to_sector_num(fs_info, cln) <<
4003f5a0: 83 28 40 02 sll %g1, %g2, %g1
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f5a4: c6 01 20 24 ld [ %g4 + 0x24 ], %g3
<== NOT EXECUTED
4003f5a8: 85 30 e0 09 srl %g3, 9, %g2
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f5ac: 87 30 e0 05 srl %g3, 5, %g3
<== NOT EXECUTED
return ( ((fat_cluster_num_to_sector512_num(fs_info, pos->cln) +
4003f5b0: 82 00 80 01 add %g2, %g1, %g1
<== NOT EXECUTED
((pos->ofs >> 5) & (FAT_DIRENTRIES_PER_SEC512 - 1)) );
4003f5b4: 86 08 e0 0f and %g3, 0xf, %g3
<== NOT EXECUTED
(pos->ofs >> FAT_SECTOR512_BITS)) << 4) +
4003f5b8: 83 28 60 04 sll %g1, 4, %g1
<== NOT EXECUTED
4003f5bc: 82 00 40 03 add %g1, %g3, %g1
<== NOT EXECUTED
if ( (key1) == ck)
4003f5c0: 80 a7 40 01 cmp %i5, %g1
<== NOT EXECUTED
4003f5c4: 02 80 00 33 be 4003f690 <fat_file_open+0x228>
<== NOT EXECUTED
4003f5c8: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
the_node = the_node->next;
4003f5cc: c8 01 00 00 ld [ %g4 ], %g4
<== NOT EXECUTED
for ( ; !rtems_chain_is_tail((hash) + mod, the_node) ; )
4003f5d0: 80 a1 00 0f cmp %g4, %o7
<== NOT EXECUTED
4003f5d4: 32 bf ff e8 bne,a 4003f574 <fat_file_open+0x10c>
<== NOT EXECUTED
4003f5d8: c2 01 20 20 ld [ %g4 + 0x20 ], %g1
<== NOT EXECUTED
lfat_fd = (*fat_fd) = (fat_file_fd_t*)calloc(1, sizeof(fat_file_fd_t));
4003f5dc: 92 10 20 50 mov 0x50, %o1
<== NOT EXECUTED
4003f5e0: 7f ff 2b 88 call 4000a400 <calloc>
<== NOT EXECUTED
4003f5e4: 90 10 20 01 mov 1, %o0
<== NOT EXECUTED
4003f5e8: d0 26 80 00 st %o0, [ %i2 ]
<== NOT EXECUTED
if ( lfat_fd == NULL )
4003f5ec: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f5f0: 02 80 00 5a be 4003f758 <fat_file_open+0x2f0>
<== NOT EXECUTED
4003f5f4: a2 10 00 08 mov %o0, %l1
<== NOT EXECUTED
lfat_fd->flags &= ~FAT_FILE_REMOVED;
4003f5f8: c2 0c 60 30 ldub [ %l1 + 0x30 ], %g1
<== NOT EXECUTED
4003f5fc: 82 08 7f fe and %g1, -2, %g1
<== NOT EXECUTED
4003f600: c2 2c 60 30 stb %g1, [ %l1 + 0x30 ]
<== NOT EXECUTED
lfat_fd->map.last_cln = FAT_UNDEFINED_VALUE;
4003f604: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f608: f6 06 40 00 ld [ %i1 ], %i3
<== NOT EXECUTED
4003f60c: c8 06 60 04 ld [ %i1 + 4 ], %g4
<== NOT EXECUTED
4003f610: c6 06 60 08 ld [ %i1 + 8 ], %g3
<== NOT EXECUTED
4003f614: c4 06 60 0c ld [ %i1 + 0xc ], %g2
<== NOT EXECUTED
lfat_fd->map.last_cln = FAT_UNDEFINED_VALUE;
4003f618: c2 24 60 3c st %g1, [ %l1 + 0x3c ]
<== NOT EXECUTED
lfat_fd->links_num = 1;
4003f61c: b4 10 20 01 mov 1, %i2
<== NOT EXECUTED
old_last = tail->previous;
4003f620: c2 04 20 08 ld [ %l0 + 8 ], %g1
<== NOT EXECUTED
4003f624: f4 24 60 08 st %i2, [ %l1 + 8 ]
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f628: f6 24 60 20 st %i3, [ %l1 + 0x20 ]
<== NOT EXECUTED
4003f62c: c8 24 60 24 st %g4, [ %l1 + 0x24 ]
<== NOT EXECUTED
4003f630: c6 24 60 28 st %g3, [ %l1 + 0x28 ]
<== NOT EXECUTED
4003f634: c4 24 60 2c st %g2, [ %l1 + 0x2c ]
<== NOT EXECUTED
lfat_fd->ino = key;
4003f638: fa 24 60 0c st %i5, [ %l1 + 0xc ]
<== NOT EXECUTED
the_node->next = tail;
4003f63c: f8 24 40 00 st %i4, [ %l1 ]
<== NOT EXECUTED
tail->previous = the_node;
4003f640: e2 24 20 08 st %l1, [ %l0 + 8 ]
<== NOT EXECUTED
old_last->next = the_node;
4003f644: e2 20 40 00 st %l1, [ %g1 ]
<== NOT EXECUTED
the_node->previous = old_last;
4003f648: c2 24 60 04 st %g1, [ %l1 + 4 ]
<== NOT EXECUTED
}
4003f64c: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f650: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4003f654: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
4003f658: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4003f65c: 83 28 40 03 sll %g1, %g3, %g1
<== NOT EXECUTED
4003f660: 10 bf ff 8e b 4003f498 <fat_file_open+0x30>
<== NOT EXECUTED
4003f664: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
4003f668: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
4003f66c: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4003f670: 83 28 40 03 sll %g1, %g3, %g1
<== NOT EXECUTED
4003f674: 10 bf ff a8 b 4003f514 <fat_file_open+0xac>
<== NOT EXECUTED
4003f678: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
4003f67c: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
4003f680: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4003f684: 83 28 40 03 sll %g1, %g3, %g1
<== NOT EXECUTED
4003f688: 10 bf ff c5 b 4003f59c <fat_file_open+0x134>
<== NOT EXECUTED
4003f68c: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
if ( ((key2) == 0) || ((key2) == ffd->ino) )
4003f690: 02 80 00 07 be 4003f6ac <fat_file_open+0x244>
<== NOT EXECUTED
4003f694: 92 10 20 50 mov 0x50, %o1
<== NOT EXECUTED
4003f698: c2 01 20 0c ld [ %g4 + 0xc ], %g1
<== NOT EXECUTED
4003f69c: 80 a7 40 01 cmp %i5, %g1
<== NOT EXECUTED
4003f6a0: 32 bf ff cc bne,a 4003f5d0 <fat_file_open+0x168>
<== NOT EXECUTED
4003f6a4: c8 01 00 00 ld [ %g4 ], %g4
<== NOT EXECUTED
lfat_fd = (*fat_fd) = (fat_file_fd_t*)calloc(1, sizeof(fat_file_fd_t));
4003f6a8: 92 10 20 50 mov 0x50, %o1
<== NOT EXECUTED
4003f6ac: 7f ff 2b 55 call 4000a400 <calloc>
<== NOT EXECUTED
4003f6b0: 90 10 20 01 mov 1, %o0
<== NOT EXECUTED
4003f6b4: d0 26 80 00 st %o0, [ %i2 ]
<== NOT EXECUTED
if ( lfat_fd == NULL )
4003f6b8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f6bc: 02 80 00 27 be 4003f758 <fat_file_open+0x2f0>
<== NOT EXECUTED
4003f6c0: a2 10 00 08 mov %o0, %l1
<== NOT EXECUTED
lfat_fd->flags &= ~FAT_FILE_REMOVED;
4003f6c4: c2 0c 60 30 ldub [ %l1 + 0x30 ], %g1
<== NOT EXECUTED
4003f6c8: 82 08 7f fe and %g1, -2, %g1
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f6cc: fa 06 40 00 ld [ %i1 ], %i5
<== NOT EXECUTED
4003f6d0: c8 06 60 04 ld [ %i1 + 4 ], %g4
<== NOT EXECUTED
4003f6d4: c6 06 60 08 ld [ %i1 + 8 ], %g3
<== NOT EXECUTED
4003f6d8: c4 06 60 0c ld [ %i1 + 0xc ], %g2
<== NOT EXECUTED
lfat_fd->flags &= ~FAT_FILE_REMOVED;
4003f6dc: c2 2c 60 30 stb %g1, [ %l1 + 0x30 ]
<== NOT EXECUTED
lfat_fd->links_num = 1;
4003f6e0: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f6e4: fa 24 60 20 st %i5, [ %l1 + 0x20 ]
<== NOT EXECUTED
lfat_fd->ino = fat_get_unique_ino(fs_info);
4003f6e8: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
lfat_fd->links_num = 1;
4003f6ec: c2 24 60 08 st %g1, [ %l1 + 8 ]
<== NOT EXECUTED
lfat_fd->map.last_cln = FAT_UNDEFINED_VALUE;
4003f6f0: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f6f4: c8 24 60 24 st %g4, [ %l1 + 0x24 ]
<== NOT EXECUTED
lfat_fd->map.last_cln = FAT_UNDEFINED_VALUE;
4003f6f8: c2 24 60 3c st %g1, [ %l1 + 0x3c ]
<== NOT EXECUTED
lfat_fd->dir_pos = *dir_pos;
4003f6fc: c6 24 60 28 st %g3, [ %l1 + 0x28 ]
<== NOT EXECUTED
lfat_fd->ino = fat_get_unique_ino(fs_info);
4003f700: 40 00 07 46 call 40041418 <fat_get_unique_ino>
<== NOT EXECUTED
4003f704: c4 24 60 2c st %g2, [ %l1 + 0x2c ]
<== NOT EXECUTED
if ( lfat_fd->ino == 0 )
4003f708: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f70c: 02 80 00 11 be 4003f750 <fat_file_open+0x2e8>
<== NOT EXECUTED
4003f710: d0 24 60 0c st %o0, [ %l1 + 0xc ]
<== NOT EXECUTED
4003f714: e0 06 20 74 ld [ %i0 + 0x74 ], %l0
<== NOT EXECUTED
4003f718: a0 04 00 1b add %l0, %i3, %l0
<== NOT EXECUTED
old_last = tail->previous;
4003f71c: c2 04 20 08 ld [ %l0 + 8 ], %g1
<== NOT EXECUTED
4003f720: b8 04 20 04 add %l0, 4, %i4
<== NOT EXECUTED
the_node->next = tail;
4003f724: f8 24 40 00 st %i4, [ %l1 ]
<== NOT EXECUTED
tail->previous = the_node;
4003f728: e2 24 20 08 st %l1, [ %l0 + 8 ]
<== NOT EXECUTED
old_last->next = the_node;
4003f72c: e2 20 40 00 st %l1, [ %g1 ]
<== NOT EXECUTED
the_node->previous = old_last;
4003f730: c2 24 60 04 st %g1, [ %l1 + 4 ]
<== NOT EXECUTED
}
4003f734: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f738: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
(*fat_fd) = lfat_fd;
4003f73c: c8 26 80 00 st %g4, [ %i2 ]
<== NOT EXECUTED
lfat_fd->links_num++;
4003f740: 82 00 60 01 inc %g1
<== NOT EXECUTED
4003f744: c2 21 20 08 st %g1, [ %g4 + 8 ]
<== NOT EXECUTED
return rc;
4003f748: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f74c: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
free((*fat_fd));
4003f750: 7f ff 2f cc call 4000b680 <free>
<== NOT EXECUTED
4003f754: d0 06 80 00 ld [ %i2 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( ENOMEM );
4003f758: 40 00 74 6f call 4005c914 <__errno>
<== NOT EXECUTED
4003f75c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003f760: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
4003f764: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4003f768: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f76c: 81 e8 00 00 restore
<== NOT EXECUTED
4003f80c <fat_file_read>:
{
4003f80c: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t cur_cln = 0;
4003f810: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
{
4003f814: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
if (count == 0)
4003f818: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
4003f81c: 02 80 00 27 be 4003f8b8 <fat_file_read+0xac>
<== NOT EXECUTED
4003f820: b0 10 20 00 clr %i0
<== NOT EXECUTED
if ( start >= fat_fd->fat_file_size )
4003f824: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
<== NOT EXECUTED
4003f828: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
4003f82c: 08 80 00 23 bleu 4003f8b8 <fat_file_read+0xac>
<== NOT EXECUTED
4003f830: 80 a0 40 1b cmp %g1, %i3
<== NOT EXECUTED
if ((count > fat_fd->fat_file_size) ||
4003f834: 1a 80 00 5d bcc 4003f9a8 <fat_file_read+0x19c>
<== NOT EXECUTED
4003f838: 84 20 40 1b sub %g1, %i3, %g2
<== NOT EXECUTED
count = fat_fd->fat_file_size - start;
4003f83c: b6 20 40 1a sub %g1, %i2, %i3
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4003f840: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4003f844: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003f848: 32 80 00 1e bne,a 4003f8c0 <fat_file_read+0xb4>
<== NOT EXECUTED
4003f84c: e4 0f 60 0c ldub [ %i5 + 0xc ], %l2
<== NOT EXECUTED
4003f850: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
4003f854: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f858: 32 80 00 1a bne,a 4003f8c0 <fat_file_read+0xb4>
<== NOT EXECUTED
4003f85c: e4 0f 60 0c ldub [ %i5 + 0xc ], %l2
<== NOT EXECUTED
4003f860: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
4003f864: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4003f868: 22 80 00 16 be,a 4003f8c0 <fat_file_read+0xb4>
<== NOT EXECUTED
4003f86c: e4 0f 60 0c ldub [ %i5 + 0xc ], %l2
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(fs_info, fat_fd->cln);
4003f870: c2 06 60 1c ld [ %i1 + 0x1c ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f874: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f878: 32 80 00 5c bne,a 4003f9e8 <fat_file_read+0x1dc>
<== NOT EXECUTED
4003f87c: c4 0f 60 05 ldub [ %i5 + 5 ], %g2
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4003f880: c2 07 60 28 ld [ %i5 + 0x28 ], %g1
<== NOT EXECUTED
byte = start & (fs_info->vol.bps - 1);
4003f884: d4 17 40 00 lduh [ %i5 ], %o2
<== NOT EXECUTED
sec += (start >> fs_info->vol.sec_log2);
4003f888: d2 0f 60 02 ldub [ %i5 + 2 ], %o1
<== NOT EXECUTED
byte = start & (fs_info->vol.bps - 1);
4003f88c: 94 02 bf ff add %o2, -1, %o2
<== NOT EXECUTED
sec += (start >> fs_info->vol.sec_log2);
4003f890: 93 36 80 09 srl %i2, %o1, %o1
<== NOT EXECUTED
ret = _fat_block_read(fs_info, sec, byte, count, buf);
4003f894: 98 10 00 1c mov %i4, %o4
<== NOT EXECUTED
4003f898: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4003f89c: 94 0a 80 1a and %o2, %i2, %o2
<== NOT EXECUTED
4003f8a0: 92 02 40 01 add %o1, %g1, %o1
<== NOT EXECUTED
4003f8a4: 40 00 03 1c call 40040514 <_fat_block_read>
<== NOT EXECUTED
4003f8a8: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
4003f8ac: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f8b0: 06 80 00 43 bl 4003f9bc <fat_file_read+0x1b0>
<== NOT EXECUTED
4003f8b4: 01 00 00 00 nop
<== NOT EXECUTED
}
4003f8b8: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f8bc: 81 e8 00 00 restore
<== NOT EXECUTED
cl_start = start >> fs_info->vol.bpc_log2;
4003f8c0: a5 36 80 12 srl %i2, %l2, %l2
<== NOT EXECUTED
save_ofs = ofs = start & (fs_info->vol.bpc - 1);
4003f8c4: e0 07 60 08 ld [ %i5 + 8 ], %l0
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, cl_start, &cur_cln);
4003f8c8: 94 10 00 12 mov %l2, %o2
<== NOT EXECUTED
4003f8cc: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003f8d0: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003f8d4: 7f ff fe be call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003f8d8: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003f8dc: b0 92 60 00 orcc %o1, 0, %i0
<== NOT EXECUTED
4003f8e0: 12 bf ff f6 bne 4003f8b8 <fat_file_read+0xac>
<== NOT EXECUTED
4003f8e4: a0 04 3f ff add %l0, -1, %l0
<== NOT EXECUTED
uint32_t cmpltd = 0;
4003f8e8: a2 10 20 00 clr %l1
<== NOT EXECUTED
save_ofs = ofs = start & (fs_info->vol.bpc - 1);
4003f8ec: b4 0c 00 1a and %l0, %i2, %i2
<== NOT EXECUTED
4003f8f0: 10 80 00 1f b 4003f96c <fat_file_read+0x160>
<== NOT EXECUTED
4003f8f4: 84 10 00 1a mov %i2, %g2
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f8f8: 80 88 e0 03 btst 3, %g3
<== NOT EXECUTED
4003f8fc: 22 80 00 26 be,a 4003f994 <fat_file_read+0x188>
<== NOT EXECUTED
4003f900: c6 0f 60 05 ldub [ %i5 + 5 ], %g3
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4003f904: c2 07 60 28 ld [ %i5 + 0x28 ], %g1
<== NOT EXECUTED
byte = ofs & (fs_info->vol.bps - 1);
4003f908: d4 17 40 00 lduh [ %i5 ], %o2
<== NOT EXECUTED
sec += (ofs >> fs_info->vol.sec_log2);
4003f90c: d2 0f 60 02 ldub [ %i5 + 2 ], %o1
<== NOT EXECUTED
4003f910: 93 30 80 09 srl %g2, %o1, %o1
<== NOT EXECUTED
ret = _fat_block_read(fs_info, sec, byte, c, buf + cmpltd);
4003f914: 98 07 00 11 add %i4, %l1, %o4
<== NOT EXECUTED
byte = ofs & (fs_info->vol.bps - 1);
4003f918: 94 02 bf ff add %o2, -1, %o2
<== NOT EXECUTED
ret = _fat_block_read(fs_info, sec, byte, c, buf + cmpltd);
4003f91c: 96 10 00 10 mov %l0, %o3
<== NOT EXECUTED
4003f920: 94 0a 80 02 and %o2, %g2, %o2
<== NOT EXECUTED
4003f924: 92 02 40 01 add %o1, %g1, %o1
<== NOT EXECUTED
4003f928: 40 00 02 fb call 40040514 <_fat_block_read>
<== NOT EXECUTED
4003f92c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
4003f930: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
if ( ret < 0 )
4003f934: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f938: 06 80 00 21 bl 4003f9bc <fat_file_read+0x1b0>
<== NOT EXECUTED
4003f93c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
save_cln = cur_cln;
4003f940: e6 07 bf fc ld [ %fp + -4 ], %l3
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
4003f944: 92 10 00 13 mov %l3, %o1
<== NOT EXECUTED
4003f948: 7f ff fc df call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
4003f94c: b6 26 c0 10 sub %i3, %l0, %i3
<== NOT EXECUTED
cmpltd += c;
4003f950: a2 04 40 10 add %l1, %l0, %l1
<== NOT EXECUTED
if ( rc != RC_OK )
4003f954: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f958: 12 bf ff d8 bne 4003f8b8 <fat_file_read+0xac>
<== NOT EXECUTED
4003f95c: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
while (count > 0)
4003f960: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
4003f964: 02 80 00 18 be 4003f9c4 <fat_file_read+0x1b8>
<== NOT EXECUTED
4003f968: 84 10 20 00 clr %g2
<== NOT EXECUTED
c = MIN(count, (fs_info->vol.bpc - ofs));
4003f96c: e0 07 60 08 ld [ %i5 + 8 ], %l0
<== NOT EXECUTED
4003f970: a0 24 00 02 sub %l0, %g2, %l0
<== NOT EXECUTED
4003f974: 80 a4 00 1b cmp %l0, %i3
<== NOT EXECUTED
4003f978: 38 80 00 02 bgu,a 4003f980 <fat_file_read+0x174>
<== NOT EXECUTED
4003f97c: a0 10 00 1b mov %i3, %l0
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(fs_info, cur_cln);
4003f980: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4003f984: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f988: 22 bf ff dc be,a 4003f8f8 <fat_file_read+0xec>
<== NOT EXECUTED
4003f98c: c6 0f 60 16 ldub [ %i5 + 0x16 ], %g3
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4003f990: c6 0f 60 05 ldub [ %i5 + 5 ], %g3
<== NOT EXECUTED
4003f994: d2 07 60 3c ld [ %i5 + 0x3c ], %o1
<== NOT EXECUTED
4003f998: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4003f99c: 83 28 40 03 sll %g1, %g3, %g1
<== NOT EXECUTED
4003f9a0: 10 bf ff da b 4003f908 <fat_file_read+0xfc>
<== NOT EXECUTED
4003f9a4: 82 00 40 09 add %g1, %o1, %g1
<== NOT EXECUTED
if ((count > fat_fd->fat_file_size) ||
4003f9a8: 80 a0 80 1a cmp %g2, %i2
<== NOT EXECUTED
4003f9ac: 3a bf ff a6 bcc,a 4003f844 <fat_file_read+0x38>
<== NOT EXECUTED
4003f9b0: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4003f9b4: 10 bf ff a3 b 4003f840 <fat_file_read+0x34>
<== NOT EXECUTED
4003f9b8: b6 20 40 1a sub %g1, %i2, %i3
<== NOT EXECUTED
}
4003f9bc: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f9c0: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
((save_ofs + cmpltd - 1) >> fs_info->vol.bpc_log2);
4003f9c4: c4 0f 60 0c ldub [ %i5 + 0xc ], %g2
<== NOT EXECUTED
4003f9c8: 82 06 bf ff add %i2, -1, %g1
<== NOT EXECUTED
fat_fd->map.disk_cln = save_cln;
4003f9cc: e6 26 60 38 st %l3, [ %i1 + 0x38 ]
<== NOT EXECUTED
((save_ofs + cmpltd - 1) >> fs_info->vol.bpc_log2);
4003f9d0: 82 00 40 11 add %g1, %l1, %g1
<== NOT EXECUTED
4003f9d4: 83 30 40 02 srl %g1, %g2, %g1
<== NOT EXECUTED
fat_fd->map.file_cln = cl_start +
4003f9d8: a4 00 40 12 add %g1, %l2, %l2
<== NOT EXECUTED
4003f9dc: e4 26 60 34 st %l2, [ %i1 + 0x34 ]
<== NOT EXECUTED
return cmpltd;
4003f9e0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f9e4: 91 e8 00 11 restore %g0, %l1, %o0
<== NOT EXECUTED
4003f9e8: d2 07 60 3c ld [ %i5 + 0x3c ], %o1
<== NOT EXECUTED
4003f9ec: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4003f9f0: 83 28 40 02 sll %g1, %g2, %g1
<== NOT EXECUTED
4003f9f4: 10 bf ff a4 b 4003f884 <fat_file_read+0x78>
<== NOT EXECUTED
4003f9f8: 82 00 40 09 add %g1, %o1, %g1
<== NOT EXECUTED
4003f770 <fat_file_reopen>:
fat_fd->links_num++;
4003f770: c2 02 20 08 ld [ %o0 + 8 ], %g1
<== NOT EXECUTED
{
4003f774: 84 10 00 08 mov %o0, %g2
<== NOT EXECUTED
fat_fd->links_num++;
4003f778: 82 00 60 01 inc %g1
<== NOT EXECUTED
}
4003f77c: 90 10 20 00 clr %o0
<== NOT EXECUTED
4003f780: 81 c3 e0 08 retl
<== NOT EXECUTED
4003f784: c2 20 a0 08 st %g1, [ %g2 + 8 ]
<== NOT EXECUTED
40040190 <fat_file_size>:
{
40040190: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t cur_cln = fat_fd->cln;
40040194: f8 06 60 1c ld [ %i1 + 0x1c ], %i4
<== NOT EXECUTED
40040198: f8 27 bf fc st %i4, [ %fp + -4 ]
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4004019c: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
400401a0: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
400401a4: 22 80 00 22 be,a 4004022c <fat_file_size+0x9c>
<== NOT EXECUTED
400401a8: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
fat_fd->fat_file_size = 0;
400401ac: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400401b0: c2 06 20 18 ld [ %i0 + 0x18 ], %g1
<== NOT EXECUTED
400401b4: c4 06 20 1c ld [ %i0 + 0x1c ], %g2
<== NOT EXECUTED
400401b8: 82 0f 00 01 and %i4, %g1, %g1
<== NOT EXECUTED
400401bc: 80 a0 80 01 cmp %g2, %g1
<== NOT EXECUTED
400401c0: 18 80 00 0f bgu 400401fc <fat_file_size+0x6c>
<== NOT EXECUTED
400401c4: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
uint32_t save_cln = 0;
400401c8: 10 80 00 15 b 4004021c <fat_file_size+0x8c>
<== NOT EXECUTED
400401cc: b8 10 20 00 clr %i4
<== NOT EXECUTED
fat_fd->fat_file_size += fs_info->vol.bpc;
400401d0: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
<== NOT EXECUTED
400401d4: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
400401d8: c2 26 60 18 st %g1, [ %i1 + 0x18 ]
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400401dc: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
400401e0: c2 06 20 18 ld [ %i0 + 0x18 ], %g1
<== NOT EXECUTED
400401e4: c6 06 20 1c ld [ %i0 + 0x1c ], %g3
<== NOT EXECUTED
400401e8: 82 08 80 01 and %g2, %g1, %g1
<== NOT EXECUTED
400401ec: 80 a0 40 03 cmp %g1, %g3
<== NOT EXECUTED
400401f0: 1a 80 00 0b bcc 4004021c <fat_file_size+0x8c>
<== NOT EXECUTED
400401f4: 92 10 00 02 mov %g2, %o1
<== NOT EXECUTED
400401f8: b8 10 00 02 mov %g2, %i4
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
400401fc: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
40040200: 7f ff fa b1 call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
40040204: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
40040208: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004020c: 22 bf ff f1 be,a 400401d0 <fat_file_size+0x40>
<== NOT EXECUTED
40040210: c4 06 20 08 ld [ %i0 + 8 ], %g2
<== NOT EXECUTED
}
40040214: 81 c7 e0 08 ret
<== NOT EXECUTED
40040218: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
return rc;
4004021c: 90 10 20 00 clr %o0
<== NOT EXECUTED
fat_fd->map.last_cln = save_cln;
40040220: f8 26 60 3c st %i4, [ %i1 + 0x3c ]
<== NOT EXECUTED
}
40040224: 81 c7 e0 08 ret
<== NOT EXECUTED
40040228: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(fat_fd)) &&
4004022c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40040230: 32 bf ff e0 bne,a 400401b0 <fat_file_size+0x20>
<== NOT EXECUTED
40040234: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
40040238: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
4004023c: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
40040240: 22 bf ff dc be,a 400401b0 <fat_file_size+0x20>
<== NOT EXECUTED
40040244: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
fat_fd->fat_file_size = fs_info->vol.rdir_size;
40040248: c2 06 20 34 ld [ %i0 + 0x34 ], %g1
<== NOT EXECUTED
4004024c: c2 26 60 18 st %g1, [ %i1 + 0x18 ]
<== NOT EXECUTED
return rc;
40040250: 10 bf ff f1 b 40040214 <fat_file_size+0x84>
<== NOT EXECUTED
40040254: 90 10 20 00 clr %o0
<== NOT EXECUTED
4003f9fc <fat_file_truncate>:
{
4003f9fc: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t new_last_cln = FAT_UNDEFINED_VALUE;
4003fa00: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
uint32_t cur_cln = 0;
4003fa04: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
uint32_t new_last_cln = FAT_UNDEFINED_VALUE;
4003fa08: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
if ( new_length >= fat_fd->fat_file_size )
4003fa0c: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
<== NOT EXECUTED
4003fa10: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
4003fa14: 08 80 00 32 bleu 4003fadc <fat_file_truncate+0xe0>
<== NOT EXECUTED
4003fa18: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
assert(fat_fd->fat_file_size);
4003fa1c: 02 80 00 33 be 4003fae8 <fat_file_truncate+0xec>
<== NOT EXECUTED
4003fa20: 17 10 02 0d sethi %hi(0x40083400), %o3
<== NOT EXECUTED
cl_start = (new_length + fs_info->vol.bpc - 1) >> fs_info->vol.bpc_log2;
4003fa24: c4 0e 20 0c ldub [ %i0 + 0xc ], %g2
<== NOT EXECUTED
4003fa28: c6 06 20 08 ld [ %i0 + 8 ], %g3
<== NOT EXECUTED
4003fa2c: b4 06 80 03 add %i2, %g3, %i2
<== NOT EXECUTED
4003fa30: b4 06 bf ff add %i2, -1, %i2
<== NOT EXECUTED
4003fa34: b5 36 80 02 srl %i2, %g2, %i2
<== NOT EXECUTED
if ((cl_start << fs_info->vol.bpc_log2) >= fat_fd->fat_file_size)
4003fa38: 85 2e 80 02 sll %i2, %g2, %g2
<== NOT EXECUTED
4003fa3c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
4003fa40: 08 80 00 27 bleu 4003fadc <fat_file_truncate+0xe0>
<== NOT EXECUTED
4003fa44: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
if (cl_start != 0)
4003fa48: 02 80 00 0a be 4003fa70 <fat_file_truncate+0x74>
<== NOT EXECUTED
4003fa4c: 96 07 bf f8 add %fp, -8, %o3
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, cl_start - 1, &new_last_cln);
4003fa50: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003fa54: 94 06 bf ff add %i2, -1, %o2
<== NOT EXECUTED
4003fa58: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003fa5c: 7f ff fe 5c call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003fa60: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003fa64: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4003fa68: 12 80 00 1e bne 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003fa6c: 96 07 bf f8 add %fp, -8, %o3
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, cl_start, &cur_cln);
4003fa70: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4003fa74: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003fa78: 7f ff fe 55 call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003fa7c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003fa80: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4003fa84: 12 80 00 17 bne 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003fa88: 01 00 00 00 nop
<== NOT EXECUTED
rc = fat_free_fat_clusters_chain(fs_info, cur_cln);
4003fa8c: d2 07 bf f8 ld [ %fp + -8 ], %o1
<== NOT EXECUTED
4003fa90: 7f ff fd a2 call 4003f118 <fat_free_fat_clusters_chain>
<== NOT EXECUTED
4003fa94: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003fa98: 92 92 20 00 orcc %o0, 0, %o1
<== NOT EXECUTED
4003fa9c: 12 80 00 11 bne 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003faa0: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
if (cl_start != 0)
4003faa4: 02 80 00 0f be 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003faa8: 92 10 20 00 clr %o1
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, new_last_cln, FAT_GENFAT_EOC);
4003faac: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
4003fab0: 94 10 3f ff mov -1, %o2
<== NOT EXECUTED
4003fab4: 7f ff fc f7 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003fab8: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4003fabc: 92 92 20 00 orcc %o0, 0, %o1
<== NOT EXECUTED
4003fac0: 12 80 00 08 bne 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003fac4: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
fat_fd->map.file_cln = cl_start - 1;
4003fac8: b4 06 bf ff add %i2, -1, %i2
<== NOT EXECUTED
fat_fd->map.disk_cln = new_last_cln;
4003facc: c2 26 60 38 st %g1, [ %i1 + 0x38 ]
<== NOT EXECUTED
fat_fd->map.file_cln = cl_start - 1;
4003fad0: f4 26 60 34 st %i2, [ %i1 + 0x34 ]
<== NOT EXECUTED
fat_fd->map.last_cln = new_last_cln;
4003fad4: 10 80 00 03 b 4003fae0 <fat_file_truncate+0xe4>
<== NOT EXECUTED
4003fad8: c2 26 60 3c st %g1, [ %i1 + 0x3c ]
<== NOT EXECUTED
return rc;
4003fadc: 92 10 20 00 clr %o1
<== NOT EXECUTED
}
4003fae0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003fae4: 91 e8 00 09 restore %g0, %o1, %o0
<== NOT EXECUTED
assert(fat_fd->fat_file_size);
4003fae8: 15 10 02 0d sethi %hi(0x40083400), %o2
<== NOT EXECUTED
4003faec: 11 10 02 0d sethi %hi(0x40083400), %o0
<== NOT EXECUTED
4003faf0: 96 12 e2 f0 or %o3, 0x2f0, %o3
<== NOT EXECUTED
4003faf4: 94 12 a3 68 or %o2, 0x368, %o2
<== NOT EXECUTED
4003faf8: 92 10 22 e3 mov 0x2e3, %o1
<== NOT EXECUTED
4003fafc: 40 00 06 da call 40041664 <__assert_func>
<== NOT EXECUTED
4003fb00: 90 12 23 08 or %o0, 0x308, %o0
<== NOT EXECUTED
4003fb04: 01 00 00 00 nop
<== NOT EXECUTED
4003f788 <fat_file_update>:
{
4003f788: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
4003f78c: c2 0e 60 30 ldub [ %i1 + 0x30 ], %g1
<== NOT EXECUTED
if (!FAT_FILE_IS_REMOVED(fat_fd) &&
4003f790: 80 88 60 01 btst 1, %g1
<== NOT EXECUTED
4003f794: 12 80 00 1c bne 4003f804 <fat_file_update+0x7c>
<== NOT EXECUTED
4003f798: ba 10 20 00 clr %i5
<== NOT EXECUTED
4003f79c: 80 88 60 02 btst 2, %g1
<== NOT EXECUTED
4003f7a0: 02 80 00 19 be 4003f804 <fat_file_update+0x7c>
<== NOT EXECUTED
4003f7a4: 01 00 00 00 nop
<== NOT EXECUTED
FAT_FILE_HAS_META_DATA_CHANGED(fat_fd) &&
4003f7a8: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4003f7ac: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003f7b0: 12 80 00 06 bne 4003f7c8 <fat_file_update+0x40>
<== NOT EXECUTED
4003f7b4: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
!FAT_FD_OF_ROOT_DIR(fat_fd))
4003f7b8: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
4003f7bc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f7c0: 02 80 00 11 be 4003f804 <fat_file_update+0x7c>
<== NOT EXECUTED
4003f7c4: 01 00 00 00 nop
<== NOT EXECUTED
rc = fat_file_write_first_cluster_num(fs_info, fat_fd);
4003f7c8: 40 00 3c 2a call 4004e870 <fat_file_write_first_cluster_num>
<== NOT EXECUTED
4003f7cc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
rc = fat_file_write_file_size(fs_info, fat_fd);
4003f7d0: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
rc = fat_file_write_first_cluster_num(fs_info, fat_fd);
4003f7d4: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
rc = fat_file_write_file_size(fs_info, fat_fd);
4003f7d8: 40 00 3c 57 call 4004e934 <fat_file_write_file_size>
<== NOT EXECUTED
4003f7dc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003f7e0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f7e4: 32 80 00 02 bne,a 4003f7ec <fat_file_update+0x64>
<== NOT EXECUTED
4003f7e8: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
rc = fat_file_write_time_and_date(fs_info, fat_fd);
4003f7ec: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003f7f0: 40 00 3b bf call 4004e6ec <fat_file_write_time_and_date>
<== NOT EXECUTED
4003f7f4: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003f7f8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f7fc: 32 80 00 02 bne,a 4003f804 <fat_file_update+0x7c>
<== NOT EXECUTED
4003f800: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
}
4003f804: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f808: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
4003ff20 <fat_file_write>:
{
4003ff20: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t c = 0;
4003ff24: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
if ( count == 0 )
4003ff28: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
4003ff2c: 02 80 00 4c be 4004005c <fat_file_write+0x13c>
<== NOT EXECUTED
4003ff30: 92 10 20 00 clr %o1
<== NOT EXECUTED
if (start >= fat_fd->size_limit)
4003ff34: fa 06 60 14 ld [ %i1 + 0x14 ], %i5
<== NOT EXECUTED
4003ff38: 80 a7 40 1a cmp %i5, %i2
<== NOT EXECUTED
4003ff3c: 08 80 00 43 bleu 40040048 <fat_file_write+0x128>
<== NOT EXECUTED
4003ff40: ba 27 40 1a sub %i5, %i2, %i5
<== NOT EXECUTED
4003ff44: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
bool zero_fill = start > fat_fd->fat_file_size;
4003ff48: 18 80 00 47 bgu 40040064 <fat_file_write+0x144>
<== NOT EXECUTED
4003ff4c: c2 06 60 18 ld [ %i1 + 0x18 ], %g1
<== NOT EXECUTED
4003ff50: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
rc = fat_file_extend(fs_info, fat_fd, zero_fill, start + count, &c);
4003ff54: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003ff58: 94 40 20 00 addx %g0, 0, %o2
<== NOT EXECUTED
4003ff5c: b6 06 80 1d add %i2, %i5, %i3
<== NOT EXECUTED
4003ff60: 98 07 bf f8 add %fp, -8, %o4
<== NOT EXECUTED
4003ff64: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4003ff68: 7f ff ff 52 call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
4003ff6c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
4003ff70: 92 92 20 00 orcc %o0, 0, %o1
<== NOT EXECUTED
4003ff74: 12 80 00 3a bne 4004005c <fat_file_write+0x13c>
<== NOT EXECUTED
4003ff78: c2 07 bf f8 ld [ %fp + -8 ], %g1
<== NOT EXECUTED
if (c != (start + count))
4003ff7c: 80 a6 c0 01 cmp %i3, %g1
<== NOT EXECUTED
4003ff80: 32 80 00 02 bne,a 4003ff88 <fat_file_write+0x68>
<== NOT EXECUTED
4003ff84: ba 20 40 1a sub %g1, %i2, %i5
<== NOT EXECUTED
4003ff88: f6 0e 20 0c ldub [ %i0 + 0xc ], %i3
<== NOT EXECUTED
return (FAT_FD_OF_ROOT_DIR(fat_fd)) && (volume_type & (FAT_FAT12 | FAT_FAT16));
4003ff8c: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4003ff90: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003ff94: 02 80 00 51 be 400400d8 <fat_file_write+0x1b8>
<== NOT EXECUTED
4003ff98: a1 36 80 1b srl %i2, %i3, %l0
<== NOT EXECUTED
uint32_t cur_cln = 0;
4003ff9c: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
rc = fat_file_lseek(fs_info, fat_fd, start_cln, &cur_cln);
4003ffa0: 94 10 00 10 mov %l0, %o2
<== NOT EXECUTED
4003ffa4: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003ffa8: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4003ffac: 7f ff fd 08 call 4003f3cc <fat_file_lseek>
<== NOT EXECUTED
4003ffb0: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (RC_OK == rc)
4003ffb4: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4003ffb8: 12 80 00 44 bne 400400c8 <fat_file_write+0x1a8>
<== NOT EXECUTED
4003ffbc: b7 2c 00 1b sll %l0, %i3, %i3
<== NOT EXECUTED
uint32_t save_cln = 0; /* FIXME: This might be incorrect, cf. below */
4003ffc0: a4 10 20 00 clr %l2
<== NOT EXECUTED
uint32_t ofs_cln = start - (start_cln << fs_info->vol.bpc_log2);
4003ffc4: b4 26 80 1b sub %i2, %i3, %i2
<== NOT EXECUTED
uint32_t cmpltd = 0;
4003ffc8: a2 10 20 00 clr %l1
<== NOT EXECUTED
uint32_t ofs_cln = start - (start_cln << fs_info->vol.bpc_log2);
4003ffcc: b6 10 00 1a mov %i2, %i3
<== NOT EXECUTED
ret = fat_cluster_write(fs_info,
4003ffd0: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
while ( (RC_OK == rc)
4003ffd4: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4003ffd8: 12 80 00 31 bne 4004009c <fat_file_write+0x17c>
<== NOT EXECUTED
4003ffdc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4003ffe0: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
4003ffe4: 22 80 00 2f be,a 400400a0 <fat_file_write+0x180>
<== NOT EXECUTED
4003ffe8: c2 0e 20 0c ldub [ %i0 + 0xc ], %g1
<== NOT EXECUTED
c = MIN(bytes_to_write, (fs_info->vol.bpc - ofs_cln));
4003ffec: d6 06 20 08 ld [ %i0 + 8 ], %o3
<== NOT EXECUTED
4003fff0: 96 22 c0 1b sub %o3, %i3, %o3
<== NOT EXECUTED
4003fff4: 80 a2 c0 1d cmp %o3, %i5
<== NOT EXECUTED
4003fff8: 08 80 00 03 bleu 40040004 <fat_file_write+0xe4>
<== NOT EXECUTED
4003fffc: 98 07 00 11 add %i4, %l1, %o4
<== NOT EXECUTED
40040000: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
ret = fat_cluster_write(fs_info,
40040004: 40 00 01 ea call 400407ac <fat_cluster_write>
<== NOT EXECUTED
40040008: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
if (0 > ret)
4004000c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040010: 06 bf ff f0 bl 4003ffd0 <fat_file_write+0xb0>
<== NOT EXECUTED
40040014: 92 10 3f ff mov -1, %o1
<== NOT EXECUTED
save_cln = cur_cln;
40040018: e4 07 bf fc ld [ %fp + -4 ], %l2
<== NOT EXECUTED
cmpltd += ret;
4004001c: a2 04 40 08 add %l1, %o0, %l1
<== NOT EXECUTED
if (0 < bytes_to_write)
40040020: 92 10 20 00 clr %o1
<== NOT EXECUTED
40040024: ba a7 40 08 subcc %i5, %o0, %i5
<== NOT EXECUTED
40040028: 02 bf ff ea be 4003ffd0 <fat_file_write+0xb0>
<== NOT EXECUTED
4004002c: b6 10 20 00 clr %i3
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
40040030: 92 10 00 12 mov %l2, %o1
<== NOT EXECUTED
40040034: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
40040038: 7f ff fb 23 call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
4004003c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
40040040: 10 bf ff e4 b 4003ffd0 <fat_file_write+0xb0>
<== NOT EXECUTED
40040044: 92 10 00 08 mov %o0, %o1
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EFBIG);
40040048: 40 00 72 33 call 4005c914 <__errno>
<== NOT EXECUTED
4004004c: 01 00 00 00 nop
<== NOT EXECUTED
40040050: 82 10 20 1b mov 0x1b, %g1 ! 1b <_TLS_Alignment+0x1a>
<== NOT EXECUTED
40040054: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40040058: 92 10 3f ff mov -1, %o1
<== NOT EXECUTED
}
4004005c: 81 c7 e0 08 ret
<== NOT EXECUTED
40040060: 91 e8 00 09 restore %g0, %o1, %o0
<== NOT EXECUTED
bool zero_fill = start > fat_fd->fat_file_size;
40040064: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
rc = fat_file_extend(fs_info, fat_fd, zero_fill, start + count, &c);
40040068: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004006c: 94 40 20 00 addx %g0, 0, %o2
<== NOT EXECUTED
40040070: ba 10 00 1b mov %i3, %i5
<== NOT EXECUTED
40040074: 98 07 bf f8 add %fp, -8, %o4
<== NOT EXECUTED
40040078: b6 06 80 1d add %i2, %i5, %i3
<== NOT EXECUTED
4004007c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
40040080: 7f ff ff 0c call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
40040084: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
if (RC_OK == rc)
40040088: 92 92 20 00 orcc %o0, 0, %o1
<== NOT EXECUTED
4004008c: 12 bf ff f4 bne 4004005c <fat_file_write+0x13c>
<== NOT EXECUTED
40040090: c2 07 bf f8 ld [ %fp + -8 ], %g1
<== NOT EXECUTED
if (c != (start + count))
40040094: 10 bf ff bb b 4003ff80 <fat_file_write+0x60>
<== NOT EXECUTED
40040098: 80 a6 c0 01 cmp %i3, %g1
<== NOT EXECUTED
((ofs_cln_save + cmpltd - 1) >> fs_info->vol.bpc_log2);
4004009c: c2 0e 20 0c ldub [ %i0 + 0xc ], %g1
<== NOT EXECUTED
400400a0: b4 06 bf ff add %i2, -1, %i2
<== NOT EXECUTED
fat_fd->map.disk_cln = save_cln;
400400a4: e4 26 60 38 st %l2, [ %i1 + 0x38 ]
<== NOT EXECUTED
((ofs_cln_save + cmpltd - 1) >> fs_info->vol.bpc_log2);
400400a8: b4 06 80 11 add %i2, %l1, %i2
<== NOT EXECUTED
400400ac: b5 36 80 01 srl %i2, %g1, %i2
<== NOT EXECUTED
fat_fd->map.file_cln = start_cln +
400400b0: a0 06 80 10 add %i2, %l0, %l0
<== NOT EXECUTED
if (RC_OK != rc)
400400b4: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
400400b8: 12 80 00 04 bne 400400c8 <fat_file_write+0x1a8>
<== NOT EXECUTED
400400bc: e0 26 60 34 st %l0, [ %i1 + 0x34 ]
<== NOT EXECUTED
return cmpltd;
400400c0: 92 10 00 11 mov %l1, %o1
<== NOT EXECUTED
if (0 > ret)
400400c4: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
400400c8: 16 bf ff e5 bge 4004005c <fat_file_write+0x13c>
<== NOT EXECUTED
400400cc: 01 00 00 00 nop
<== NOT EXECUTED
rc = -1;
400400d0: 10 bf ff e3 b 4004005c <fat_file_write+0x13c>
<== NOT EXECUTED
400400d4: 92 10 3f ff mov -1, %o1 ! ffffffff <RAM_END+0xbfbfffff>
<== NOT EXECUTED
return (FAT_FD_OF_ROOT_DIR(fat_fd)) && (volume_type & (FAT_FAT12 | FAT_FAT16));
400400d8: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
400400dc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400400e0: 32 bf ff b0 bne,a 4003ffa0 <fat_file_write+0x80>
<== NOT EXECUTED
400400e4: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
400400e8: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
400400ec: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
400400f0: 22 bf ff ac be,a 4003ffa0 <fat_file_write+0x80>
<== NOT EXECUTED
400400f4: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
cln = fat_fd->cln;
400400f8: d2 06 60 1c ld [ %i1 + 0x1c ], %o1
<== NOT EXECUTED
byte = start & (fs_info->vol.bpc -1);
400400fc: d4 06 20 08 ld [ %i0 + 8 ], %o2
<== NOT EXECUTED
ret = fat_cluster_write(fs_info,
40040100: 92 02 40 10 add %o1, %l0, %o1
<== NOT EXECUTED
byte = start & (fs_info->vol.bpc -1);
40040104: 94 02 bf ff add %o2, -1, %o2
<== NOT EXECUTED
ret = fat_cluster_write(fs_info,
40040108: 98 10 00 1c mov %i4, %o4
<== NOT EXECUTED
4004010c: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
40040110: 94 0a 80 1a and %o2, %i2, %o2
<== NOT EXECUTED
40040114: 40 00 01 a6 call 400407ac <fat_cluster_write>
<== NOT EXECUTED
40040118: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (0 > ret)
4004011c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040120: 06 bf ff ec bl 400400d0 <fat_file_write+0x1b0>
<== NOT EXECUTED
40040124: 92 10 00 08 mov %o0, %o1
<== NOT EXECUTED
}
40040128: 81 c7 e0 08 ret
<== NOT EXECUTED
4004012c: 91 e8 00 09 restore %g0, %o1, %o0
<== NOT EXECUTED
4004e934 <fat_file_write_file_size>:
{
4004e934: 9d e3 bf 90 save %sp, -112, %sp
<== NOT EXECUTED
uint32_t le_new_length = 0;
4004e938: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(fs_info, fat_fd->dir_pos.sname.cln);
4004e93c: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004e940: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004e944: 32 80 00 07 bne,a 4004e960 <fat_file_write_file_size+0x2c>
<== NOT EXECUTED
4004e948: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4004e94c: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4004e950: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4004e954: 32 80 00 07 bne,a 4004e970 <fat_file_write_file_size+0x3c>
<== NOT EXECUTED
4004e958: d2 06 20 28 ld [ %i0 + 0x28 ], %o1
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4004e95c: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4004e960: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
4004e964: 92 00 7f fe add %g1, -2, %o1
<== NOT EXECUTED
4004e968: 93 2a 40 03 sll %o1, %g3, %o1
<== NOT EXECUTED
4004e96c: 92 02 40 02 add %o1, %g2, %o1
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e970: d4 06 60 24 ld [ %i1 + 0x24 ], %o2
<== NOT EXECUTED
4004e974: c2 0e 20 02 ldub [ %i0 + 2 ], %g1
<== NOT EXECUTED
byte = (fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1));
4004e978: fa 16 00 00 lduh [ %i0 ], %i5
<== NOT EXECUTED
if (fat_fd->fat_file_type == FAT_DIRECTORY) {
4004e97c: c4 06 60 10 ld [ %i1 + 0x10 ], %g2
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e980: 83 32 80 01 srl %o2, %g1, %g1
<== NOT EXECUTED
byte = (fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1));
4004e984: ba 07 7f ff add %i5, -1, %i5
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e988: 92 00 40 09 add %g1, %o1, %o1
<== NOT EXECUTED
if (fat_fd->fat_file_type == FAT_DIRECTORY) {
4004e98c: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4004e990: 02 80 00 07 be 4004e9ac <fat_file_write_file_size+0x78>
<== NOT EXECUTED
4004e994: ba 0f 40 0a and %i5, %o2, %i5
<== NOT EXECUTED
le_new_length = CT_LE_L(fat_fd->fat_file_size);
4004e998: d0 06 60 18 ld [ %i1 + 0x18 ], %o0
<== NOT EXECUTED
4004e99c: 40 00 ac 39 call 40079a80 <__bswapsi2>
<== NOT EXECUTED
4004e9a0: d2 27 bf f4 st %o1, [ %fp + -12 ]
<== NOT EXECUTED
4004e9a4: d0 27 bf fc st %o0, [ %fp + -4 ]
<== NOT EXECUTED
4004e9a8: d2 07 bf f4 ld [ %fp + -12 ], %o1
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_SIZE_OFFSET, 4,
4004e9ac: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004e9b0: 96 10 20 04 mov 4, %o3
<== NOT EXECUTED
4004e9b4: 94 07 60 1c add %i5, 0x1c, %o2
<== NOT EXECUTED
4004e9b8: 7f ff c6 f7 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e9bc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
}
4004e9c0: b1 3a 20 1f sra %o0, 0x1f, %i0
<== NOT EXECUTED
4004e9c4: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e9c8: 81 e8 00 00 restore
<== NOT EXECUTED
4004e870 <fat_file_write_first_cluster_num>:
{
4004e870: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint16_t le_cl_hi = 0;
4004e874: c0 37 bf fe clrh [ %fp + -2 ]
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(fs_info, fat_fd->dir_pos.sname.cln);
4004e878: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004e87c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004e880: 12 80 00 06 bne 4004e898 <fat_file_write_first_cluster_num+0x28>
<== NOT EXECUTED
4004e884: fa 06 60 1c ld [ %i1 + 0x1c ], %i5
<== NOT EXECUTED
4004e888: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4004e88c: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4004e890: 32 80 00 07 bne,a 4004e8ac <fat_file_write_first_cluster_num+0x3c>
<== NOT EXECUTED
4004e894: c2 06 20 28 ld [ %i0 + 0x28 ], %g1
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4004e898: c6 0e 20 05 ldub [ %i0 + 5 ], %g3
<== NOT EXECUTED
4004e89c: c4 06 20 3c ld [ %i0 + 0x3c ], %g2
<== NOT EXECUTED
4004e8a0: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4004e8a4: 83 28 40 03 sll %g1, %g3, %g1
<== NOT EXECUTED
4004e8a8: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e8ac: c4 06 60 24 ld [ %i1 + 0x24 ], %g2
<== NOT EXECUTED
4004e8b0: f8 0e 20 02 ldub [ %i0 + 2 ], %i4
<== NOT EXECUTED
byte = fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1);
4004e8b4: f6 16 00 00 lduh [ %i0 ], %i3
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e8b8: b9 30 80 1c srl %g2, %i4, %i4
<== NOT EXECUTED
byte = fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1);
4004e8bc: b6 06 ff ff add %i3, -1, %i3
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e8c0: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
byte = fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1);
4004e8c4: b6 0e c0 02 and %i3, %g2, %i3
<== NOT EXECUTED
le_cl_low = CT_LE_W((uint16_t )(new_cln & 0x0000FFFF));
4004e8c8: 83 2f 60 08 sll %i5, 8, %g1
<== NOT EXECUTED
4004e8cc: 85 2f 60 10 sll %i5, 0x10, %g2
<== NOT EXECUTED
4004e8d0: 85 30 a0 18 srl %g2, 0x18, %g2
<== NOT EXECUTED
4004e8d4: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
ret1 = fat_sector_write(fs_info, sec,
4004e8d8: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004e8dc: 94 06 e0 1a add %i3, 0x1a, %o2
<== NOT EXECUTED
4004e8e0: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
le_cl_low = CT_LE_W((uint16_t )(new_cln & 0x0000FFFF));
4004e8e4: c2 37 bf fc sth %g1, [ %fp + -4 ]
<== NOT EXECUTED
ret1 = fat_sector_write(fs_info, sec,
4004e8e8: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
4004e8ec: 7f ff c7 2a call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e8f0: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
le_cl_hi = CT_LE_W((uint16_t )((new_cln & 0xFFFF0000) >> 16));
4004e8f4: bb 37 60 10 srl %i5, 0x10, %i5
<== NOT EXECUTED
4004e8f8: 83 2f 60 08 sll %i5, 8, %g1
<== NOT EXECUTED
ret1 = fat_sector_write(fs_info, sec,
4004e8fc: b4 10 00 08 mov %o0, %i2
<== NOT EXECUTED
ret2 = fat_sector_write(fs_info, sec,
4004e900: 98 07 bf fe add %fp, -2, %o4
<== NOT EXECUTED
4004e904: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
4004e908: 94 06 e0 14 add %i3, 0x14, %o2
<== NOT EXECUTED
4004e90c: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004e910: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
le_cl_hi = CT_LE_W((uint16_t )((new_cln & 0xFFFF0000) >> 16));
4004e914: bb 37 60 08 srl %i5, 8, %i5
<== NOT EXECUTED
4004e918: ba 10 40 1d or %g1, %i5, %i5
<== NOT EXECUTED
ret2 = fat_sector_write(fs_info, sec,
4004e91c: 7f ff c7 1e call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e920: fa 37 bf fe sth %i5, [ %fp + -2 ]
<== NOT EXECUTED
if ( (ret1 < 0) || (ret2 < 0) )
4004e924: b0 12 00 1a or %o0, %i2, %i0
<== NOT EXECUTED
}
4004e928: b1 3e 20 1f sra %i0, 0x1f, %i0
<== NOT EXECUTED
4004e92c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e930: 81 e8 00 00 restore
<== NOT EXECUTED
4004e6ec <fat_file_write_time_and_date>:
{
4004e6ec: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(fs_info, fat_fd->dir_pos.sname.cln);
4004e6f0: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004e6f4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004e6f8: 12 80 00 06 bne 4004e710 <fat_file_write_time_and_date+0x24>
<== NOT EXECUTED
4004e6fc: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
4004e700: c4 0e 20 16 ldub [ %i0 + 0x16 ], %g2
<== NOT EXECUTED
4004e704: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4004e708: 32 80 00 07 bne,a 4004e724 <fat_file_write_time_and_date+0x38>
<== NOT EXECUTED
4004e70c: c2 06 20 28 ld [ %i0 + 0x28 ], %g1
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4004e710: c4 0f 60 05 ldub [ %i5 + 5 ], %g2
<== NOT EXECUTED
4004e714: f8 07 60 3c ld [ %i5 + 0x3c ], %i4
<== NOT EXECUTED
4004e718: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4004e71c: 83 28 40 02 sll %g1, %g2, %g1
<== NOT EXECUTED
4004e720: 82 00 40 1c add %g1, %i4, %g1
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e724: c4 06 60 24 ld [ %i1 + 0x24 ], %g2
<== NOT EXECUTED
4004e728: f8 0f 60 02 ldub [ %i5 + 2 ], %i4
<== NOT EXECUTED
byte = fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1);
4004e72c: f6 17 40 00 lduh [ %i5 ], %i3
<== NOT EXECUTED
msdos_date_unix2dos(fat_fd->mtime, &date, &time_val);
4004e730: d0 06 60 4c ld [ %i1 + 0x4c ], %o0
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e734: b9 30 80 1c srl %g2, %i4, %i4
<== NOT EXECUTED
msdos_date_unix2dos(fat_fd->mtime, &date, &time_val);
4004e738: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2);
4004e73c: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
msdos_date_unix2dos(fat_fd->mtime, &date, &time_val);
4004e740: 92 07 bf fe add %fp, -2, %o1
<== NOT EXECUTED
byte = fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1);
4004e744: b6 06 ff ff add %i3, -1, %i3
<== NOT EXECUTED
msdos_date_unix2dos(fat_fd->mtime, &date, &time_val);
4004e748: 40 00 2f 76 call 4005a520 <msdos_date_unix2dos>
<== NOT EXECUTED
4004e74c: b6 0e c0 02 and %i3, %g2, %i3
<== NOT EXECUTED
time_val = CT_LE_W(time_val);
4004e750: c2 17 bf fc lduh [ %fp + -4 ], %g1
<== NOT EXECUTED
4004e754: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004e758: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004e75c: 82 10 80 01 or %g2, %g1, %g1
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_WTIME_OFFSET,
4004e760: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004e764: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
4004e768: 94 06 e0 16 add %i3, 0x16, %o2
<== NOT EXECUTED
4004e76c: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
time_val = CT_LE_W(time_val);
4004e770: c2 37 bf fc sth %g1, [ %fp + -4 ]
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_WTIME_OFFSET,
4004e774: 7f ff c7 88 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e778: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
date = CT_LE_W(date);
4004e77c: c2 17 bf fe lduh [ %fp + -2 ], %g1
<== NOT EXECUTED
4004e780: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004e784: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004e788: 82 10 80 01 or %g2, %g1, %g1
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_WTIME_OFFSET,
4004e78c: b4 10 00 08 mov %o0, %i2
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_WDATE_OFFSET,
4004e790: 98 07 bf fe add %fp, -2, %o4
<== NOT EXECUTED
4004e794: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
date = CT_LE_W(date);
4004e798: c2 37 bf fe sth %g1, [ %fp + -2 ]
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_WDATE_OFFSET,
4004e79c: 94 06 e0 18 add %i3, 0x18, %o2
<== NOT EXECUTED
4004e7a0: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004e7a4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
4004e7a8: 7f ff c7 7b call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e7ac: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
if ( ret < 0 )
4004e7b0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e7b4: 36 80 00 02 bge,a 4004e7bc <fat_file_write_time_and_date+0xd0>
<== NOT EXECUTED
4004e7b8: b1 3e a0 1f sra %i2, 0x1f, %i0
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_ADATE_OFFSET,
4004e7bc: 98 07 bf fe add %fp, -2, %o4
<== NOT EXECUTED
4004e7c0: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
4004e7c4: 94 06 e0 12 add %i3, 0x12, %o2
<== NOT EXECUTED
4004e7c8: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004e7cc: 7f ff c7 72 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e7d0: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if ( ret < 0 )
4004e7d4: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e7d8: 26 80 00 02 bl,a 4004e7e0 <fat_file_write_time_and_date+0xf4>
<== NOT EXECUTED
4004e7dc: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
msdos_date_unix2dos(fat_fd->ctime, &date, &time_val);
4004e7e0: d0 06 60 44 ld [ %i1 + 0x44 ], %o0
<== NOT EXECUTED
4004e7e4: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
4004e7e8: 40 00 2f 4e call 4005a520 <msdos_date_unix2dos>
<== NOT EXECUTED
4004e7ec: 92 07 bf fe add %fp, -2, %o1
<== NOT EXECUTED
time_val = CT_LE_W(time_val);
4004e7f0: c2 17 bf fc lduh [ %fp + -4 ], %g1
<== NOT EXECUTED
4004e7f4: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004e7f8: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004e7fc: 82 10 80 01 or %g2, %g1, %g1
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_CTIME_OFFSET,
4004e800: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004e804: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
time_val = CT_LE_W(time_val);
4004e808: c2 37 bf fc sth %g1, [ %fp + -4 ]
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_CTIME_OFFSET,
4004e80c: 94 06 e0 0e add %i3, 0xe, %o2
<== NOT EXECUTED
4004e810: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004e814: 7f ff c7 60 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e818: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if ( ret < 0 )
4004e81c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e820: 26 80 00 02 bl,a 4004e828 <fat_file_write_time_and_date+0x13c>
<== NOT EXECUTED
4004e824: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
date = CT_LE_W(date);
4004e828: c2 17 bf fe lduh [ %fp + -2 ], %g1
<== NOT EXECUTED
4004e82c: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004e830: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004e834: 82 10 80 01 or %g2, %g1, %g1
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_CDATE_OFFSET,
4004e838: 98 07 bf fe add %fp, -2, %o4
<== NOT EXECUTED
4004e83c: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
date = CT_LE_W(date);
4004e840: c2 37 bf fe sth %g1, [ %fp + -2 ]
<== NOT EXECUTED
ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_CDATE_OFFSET,
4004e844: 94 06 e0 10 add %i3, 0x10, %o2
<== NOT EXECUTED
4004e848: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4004e84c: 7f ff c7 52 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004e850: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if ( ret < 0 )
4004e854: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e858: 06 80 00 04 bl 4004e868 <fat_file_write_time_and_date+0x17c>
<== NOT EXECUTED
4004e85c: 01 00 00 00 nop
<== NOT EXECUTED
}
4004e860: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e864: 81 e8 00 00 restore
<== NOT EXECUTED
4004e868: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e86c: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
4003f118 <fat_free_fat_clusters_chain>:
{
4003f118: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t next_cln = 0;
4003f11c: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
4003f120: c2 06 20 18 ld [ %i0 + 0x18 ], %g1
<== NOT EXECUTED
4003f124: c4 06 20 1c ld [ %i0 + 0x1c ], %g2
<== NOT EXECUTED
4003f128: 82 0e 40 01 and %i1, %g1, %g1
<== NOT EXECUTED
4003f12c: 80 a0 80 01 cmp %g2, %g1
<== NOT EXECUTED
4003f130: 08 80 00 26 bleu 4003f1c8 <fat_free_fat_clusters_chain+0xb0>
<== NOT EXECUTED
4003f134: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
uint32_t cur_cln = chain;
4003f138: b8 10 00 19 mov %i1, %i4
<== NOT EXECUTED
uint32_t freed_cls_cnt = 0;
4003f13c: b6 10 20 00 clr %i3
<== NOT EXECUTED
int rc = RC_OK, rc1 = RC_OK;
4003f140: 10 80 00 0e b 4003f178 <fat_free_fat_clusters_chain+0x60>
<== NOT EXECUTED
4003f144: b0 10 20 00 clr %i0
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, cur_cln, FAT_GENFAT_FREE);
4003f148: 7f ff ff 52 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003f14c: 01 00 00 00 nop
<== NOT EXECUTED
if ( rc != RC_OK )
4003f150: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f154: 32 80 00 02 bne,a 4003f15c <fat_free_fat_clusters_chain+0x44>
<== NOT EXECUTED
4003f158: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
cur_cln = next_cln;
4003f15c: f8 07 bf fc ld [ %fp + -4 ], %i4
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
4003f160: c2 07 60 18 ld [ %i5 + 0x18 ], %g1
<== NOT EXECUTED
4003f164: c4 07 60 1c ld [ %i5 + 0x1c ], %g2
<== NOT EXECUTED
4003f168: 82 0f 00 01 and %i4, %g1, %g1
<== NOT EXECUTED
4003f16c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
4003f170: 1a 80 00 18 bcc 4003f1d0 <fat_free_fat_clusters_chain+0xb8>
<== NOT EXECUTED
4003f174: b6 06 e0 01 inc %i3
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &next_cln);
4003f178: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4003f17c: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
4003f180: 7f ff fe d1 call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
4003f184: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, cur_cln, FAT_GENFAT_FREE);
4003f188: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &next_cln);
4003f18c: 82 10 00 08 mov %o0, %g1
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, cur_cln, FAT_GENFAT_FREE);
4003f190: 94 10 20 00 clr %o2
<== NOT EXECUTED
if ( rc != RC_OK )
4003f194: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f198: 02 bf ff ec be 4003f148 <fat_free_fat_clusters_chain+0x30>
<== NOT EXECUTED
4003f19c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if(fs_info->vol.free_cls != FAT_UNDEFINED_VALUE)
4003f1a0: c4 07 60 4c ld [ %i5 + 0x4c ], %g2
<== NOT EXECUTED
4003f1a4: 80 a0 bf ff cmp %g2, -1
<== NOT EXECUTED
4003f1a8: 02 80 00 03 be 4003f1b4 <fat_free_fat_clusters_chain+0x9c>
<== NOT EXECUTED
4003f1ac: b6 00 80 1b add %g2, %i3, %i3
<== NOT EXECUTED
fs_info->vol.free_cls += freed_cls_cnt;
4003f1b0: f6 27 60 4c st %i3, [ %i5 + 0x4c ]
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &next_cln);
4003f1b4: b0 10 00 01 mov %g1, %i0
<== NOT EXECUTED
fat_buf_release(fs_info);
4003f1b8: 40 00 04 ce call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003f1bc: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
return rc;
4003f1c0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f1c4: 81 e8 00 00 restore
<== NOT EXECUTED
uint32_t freed_cls_cnt = 0;
4003f1c8: b6 10 20 00 clr %i3
<== NOT EXECUTED
int rc = RC_OK, rc1 = RC_OK;
4003f1cc: b0 10 20 00 clr %i0
<== NOT EXECUTED
fs_info->vol.next_cl = chain;
4003f1d0: f2 27 60 54 st %i1, [ %i5 + 0x54 ]
<== NOT EXECUTED
if (fs_info->vol.free_cls != FAT_UNDEFINED_VALUE)
4003f1d4: c2 07 60 4c ld [ %i5 + 0x4c ], %g1
<== NOT EXECUTED
4003f1d8: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
4003f1dc: 02 80 00 03 be 4003f1e8 <fat_free_fat_clusters_chain+0xd0>
<== NOT EXECUTED
4003f1e0: b6 00 40 1b add %g1, %i3, %i3
<== NOT EXECUTED
fs_info->vol.free_cls += freed_cls_cnt;
4003f1e4: f6 27 60 4c st %i3, [ %i5 + 0x4c ]
<== NOT EXECUTED
fat_buf_release(fs_info);
4003f1e8: 40 00 04 c2 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003f1ec: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
}
4003f1f0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f1f4: 81 e8 00 00 restore
<== NOT EXECUTED
40041514 <fat_free_unique_ino>:
fat_free_unique_ino(
fat_fs_info_t *fs_info,
uint32_t ino
)
{
FAT_SET_UNIQ_INO_FREE((ino - fs_info->uino_base), fs_info->uino);
40041514: c2 02 20 88 ld [ %o0 + 0x88 ], %g1
<== NOT EXECUTED
40041518: c6 02 20 7c ld [ %o0 + 0x7c ], %g3
<== NOT EXECUTED
4004151c: 92 22 40 01 sub %o1, %g1, %o1
<== NOT EXECUTED
40041520: 85 32 60 03 srl %o1, 3, %g2
<== NOT EXECUTED
40041524: c8 08 c0 02 ldub [ %g3 + %g2 ], %g4
<== NOT EXECUTED
40041528: 92 0a 60 07 and %o1, 7, %o1
<== NOT EXECUTED
4004152c: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
40041530: 93 28 40 09 sll %g1, %o1, %o1
<== NOT EXECUTED
40041534: 92 29 00 09 andn %g4, %o1, %o1
<== NOT EXECUTED
}
40041538: 81 c3 e0 08 retl
<== NOT EXECUTED
4004153c: d2 28 c0 02 stb %o1, [ %g3 + %g2 ]
<== NOT EXECUTED
4003ecc4 <fat_get_fat_cluster>:
fat_get_fat_cluster(
fat_fs_info_t *fs_info,
uint32_t cln,
uint32_t *ret_val
)
{
4003ecc4: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint8_t *sec_buf;
uint32_t sec = 0;
uint32_t ofs = 0;
/* sanity check */
if ( (cln < 2) || (cln > (fs_info->vol.data_cls + 1)) )
4003ecc8: 80 a6 60 01 cmp %i1, 1
<== NOT EXECUTED
4003eccc: 08 80 00 26 bleu 4003ed64 <fat_get_fat_cluster+0xa0>
<== NOT EXECUTED
4003ecd0: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
4003ecd4: c2 06 20 40 ld [ %i0 + 0x40 ], %g1
<== NOT EXECUTED
4003ecd8: 82 00 60 01 inc %g1
<== NOT EXECUTED
4003ecdc: 80 a0 40 19 cmp %g1, %i1
<== NOT EXECUTED
4003ece0: 0a 80 00 21 bcs 4003ed64 <fat_get_fat_cluster+0xa0>
<== NOT EXECUTED
4003ece4: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003ece8: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
4003ecec: 80 88 60 01 btst 1, %g1
<== NOT EXECUTED
4003ecf0: 12 80 00 23 bne 4003ed7c <fat_get_fat_cluster+0xb8>
<== NOT EXECUTED
4003ecf4: b7 36 60 01 srl %i1, 1, %i3
<== NOT EXECUTED
4003ecf8: 80 88 60 02 btst 2, %g1
<== NOT EXECUTED
4003ecfc: 02 80 00 03 be 4003ed08 <fat_get_fat_cluster+0x44>
<== NOT EXECUTED
4003ed00: a1 2e 60 02 sll %i1, 2, %l0
<== NOT EXECUTED
4003ed04: a1 2e 60 01 sll %i1, 1, %l0
<== NOT EXECUTED
4003ed08: f8 0f 60 02 ldub [ %i5 + 2 ], %i4
<== NOT EXECUTED
4003ed0c: c2 07 60 60 ld [ %i5 + 0x60 ], %g1
<== NOT EXECUTED
4003ed10: b9 34 00 1c srl %l0, %i4, %i4
<== NOT EXECUTED
fs_info->vol.afat_loc;
ofs = FAT_FAT_OFFSET(fs_info->vol.type, cln) & (fs_info->vol.bps - 1);
4003ed14: f6 17 40 00 lduh [ %i5 ], %i3
<== NOT EXECUTED
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003ed18: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec, FAT_OP_TYPE_READ, &sec_buf);
4003ed1c: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003ed20: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003ed24: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4003ed28: 40 00 05 c2 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003ed2c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003ed30: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003ed34: 12 80 00 45 bne 4003ee48 <fat_get_fat_cluster+0x184>
<== NOT EXECUTED
4003ed38: 01 00 00 00 nop
<== NOT EXECUTED
return rc;
switch ( fs_info->vol.type )
4003ed3c: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
ofs = FAT_FAT_OFFSET(fs_info->vol.type, cln) & (fs_info->vol.bps - 1);
4003ed40: b6 06 ff ff add %i3, -1, %i3
<== NOT EXECUTED
switch ( fs_info->vol.type )
4003ed44: 80 a0 60 02 cmp %g1, 2
<== NOT EXECUTED
4003ed48: 02 80 00 35 be 4003ee1c <fat_get_fat_cluster+0x158>
<== NOT EXECUTED
4003ed4c: b6 0e c0 10 and %i3, %l0, %i3
<== NOT EXECUTED
4003ed50: 80 a0 60 04 cmp %g1, 4
<== NOT EXECUTED
4003ed54: 02 80 00 2c be 4003ee04 <fat_get_fat_cluster+0x140>
<== NOT EXECUTED
4003ed58: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003ed5c: 02 80 00 18 be 4003edbc <fat_get_fat_cluster+0xf8>
<== NOT EXECUTED
4003ed60: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
*ret_val = *((uint32_t *)(sec_buf + ofs));
*ret_val = CF_LE_L(*ret_val);
break;
default:
rtems_set_errno_and_return_minus_one(EIO);
4003ed64: 40 00 76 ec call 4005c914 <__errno>
<== NOT EXECUTED
4003ed68: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003ed6c: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4003ed70: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4003ed74: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ed78: 81 e8 00 00 restore
<== NOT EXECUTED
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003ed7c: f8 0f 60 02 ldub [ %i5 + 2 ], %i4
<== NOT EXECUTED
4003ed80: c2 07 60 60 ld [ %i5 + 0x60 ], %g1
<== NOT EXECUTED
4003ed84: a0 06 c0 19 add %i3, %i1, %l0
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec, FAT_OP_TYPE_READ, &sec_buf);
4003ed88: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003ed8c: b9 34 00 1c srl %l0, %i4, %i4
<== NOT EXECUTED
ofs = FAT_FAT_OFFSET(fs_info->vol.type, cln) & (fs_info->vol.bps - 1);
4003ed90: f6 17 40 00 lduh [ %i5 ], %i3
<== NOT EXECUTED
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003ed94: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec, FAT_OP_TYPE_READ, &sec_buf);
4003ed98: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003ed9c: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4003eda0: 40 00 05 a4 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003eda4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003eda8: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003edac: 22 bf ff e5 be,a 4003ed40 <fat_get_fat_cluster+0x7c>
<== NOT EXECUTED
4003edb0: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
break;
}
return RC_OK;
}
4003edb4: 81 c7 e0 08 ret
<== NOT EXECUTED
4003edb8: 81 e8 00 00 restore
<== NOT EXECUTED
*ret_val = (*(sec_buf + ofs));
4003edbc: c8 08 80 1b ldub [ %g2 + %i3 ], %g4
<== NOT EXECUTED
4003edc0: c8 26 80 00 st %g4, [ %i2 ]
<== NOT EXECUTED
if ( ofs == (fs_info->vol.bps - 1) )
4003edc4: c6 17 40 00 lduh [ %i5 ], %g3
<== NOT EXECUTED
4003edc8: 86 00 ff ff add %g3, -1, %g3
<== NOT EXECUTED
4003edcc: 80 a0 c0 1b cmp %g3, %i3
<== NOT EXECUTED
4003edd0: 02 80 00 20 be 4003ee50 <fat_get_fat_cluster+0x18c>
<== NOT EXECUTED
4003edd4: b6 00 80 1b add %g2, %i3, %i3
<== NOT EXECUTED
*ret_val |= *(sec_buf + ofs + 1) << 8;
4003edd8: c2 0e e0 01 ldub [ %i3 + 1 ], %g1
<== NOT EXECUTED
4003eddc: 83 28 60 08 sll %g1, 8, %g1
<== NOT EXECUTED
4003ede0: 82 10 40 04 or %g1, %g4, %g1
<== NOT EXECUTED
4003ede4: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
if ( FAT_CLUSTER_IS_ODD(cln) )
4003ede8: 80 8e 60 01 btst 1, %i1
<== NOT EXECUTED
4003edec: 22 80 00 16 be,a 4003ee44 <fat_get_fat_cluster+0x180>
<== NOT EXECUTED
4003edf0: 82 08 6f ff and %g1, 0xfff, %g1
<== NOT EXECUTED
*ret_val = (*ret_val) >> FAT12_SHIFT;
4003edf4: 83 30 60 04 srl %g1, 4, %g1
<== NOT EXECUTED
4003edf8: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
4003edfc: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ee00: 81 e8 00 00 restore
<== NOT EXECUTED
*ret_val = *((uint32_t *)(sec_buf + ofs));
4003ee04: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*ret_val = CF_LE_L(*ret_val);
4003ee08: 40 00 eb 1e call 40079a80 <__bswapsi2>
<== NOT EXECUTED
4003ee0c: d0 00 40 1b ld [ %g1 + %i3 ], %o0
<== NOT EXECUTED
4003ee10: d0 26 80 00 st %o0, [ %i2 ]
<== NOT EXECUTED
break;
4003ee14: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ee18: 81 e8 00 00 restore
<== NOT EXECUTED
*ret_val = *((uint16_t *)(sec_buf + ofs));
4003ee1c: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*ret_val = CF_LE_W(*ret_val);
4003ee20: c4 10 40 1b lduh [ %g1 + %i3 ], %g2
<== NOT EXECUTED
4003ee24: 83 28 a0 08 sll %g2, 8, %g1
<== NOT EXECUTED
4003ee28: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4003ee2c: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
4003ee30: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
4003ee34: 83 30 60 10 srl %g1, 0x10, %g1
<== NOT EXECUTED
4003ee38: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
break;
4003ee3c: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ee40: 81 e8 00 00 restore
<== NOT EXECUTED
*ret_val = (*ret_val) & FAT_FAT12_MASK;
4003ee44: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
4003ee48: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ee4c: 81 e8 00 00 restore
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec + 1, FAT_OP_TYPE_READ,
4003ee50: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003ee54: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003ee58: 92 07 20 01 add %i4, 1, %o1
<== NOT EXECUTED
4003ee5c: 40 00 05 75 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003ee60: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003ee64: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003ee68: 12 80 00 08 bne 4003ee88 <fat_get_fat_cluster+0x1c4>
<== NOT EXECUTED
4003ee6c: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*ret_val |= *sec_buf << 8;
4003ee70: c2 08 40 00 ldub [ %g1 ], %g1
<== NOT EXECUTED
4003ee74: c4 06 80 00 ld [ %i2 ], %g2
<== NOT EXECUTED
4003ee78: 83 28 60 08 sll %g1, 8, %g1
<== NOT EXECUTED
4003ee7c: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
4003ee80: 10 bf ff da b 4003ede8 <fat_get_fat_cluster+0x124>
<== NOT EXECUTED
4003ee84: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
}
4003ee88: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ee8c: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
40041418 <fat_get_unique_ino>:
* 0 means FAILED !!!
*
*/
uint32_t
fat_get_unique_ino(fat_fs_info_t *fs_info)
{
40041418: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
4004141c: d2 06 20 84 ld [ %i0 + 0x84 ], %o1
<== NOT EXECUTED
fs_info->index++;
if (fs_info->index >= fs_info->uino_pool_size)
fs_info->index = 0;
}
if ((fs_info->uino_pool_size << 1) < (0x0FFFFFFF - fs_info->uino_base))
40041420: 03 03 ff ff sethi %hi(0xffffc00), %g1
<== NOT EXECUTED
40041424: b4 10 63 ff or %g1, 0x3ff, %i2 ! fffffff <RAM_SIZE+0xfbfffff>
<== NOT EXECUTED
for (j = 0; j < fs_info->uino_pool_size; j++)
40041428: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4004142c: 22 80 00 23 be,a 400414b8 <fat_get_unique_ino+0xa0>
<== NOT EXECUTED
40041430: c2 06 20 88 ld [ %i0 + 0x88 ], %g1
<== NOT EXECUTED
if (!FAT_UNIQ_INO_IS_BUSY(fs_info->index, fs_info->uino))
40041434: c8 06 20 7c ld [ %i0 + 0x7c ], %g4
<== NOT EXECUTED
40041438: c2 06 20 80 ld [ %i0 + 0x80 ], %g1
<== NOT EXECUTED
4004143c: 87 30 60 03 srl %g1, 3, %g3
<== NOT EXECUTED
40041440: c4 49 00 03 ldsb [ %g4 + %g3 ], %g2
<== NOT EXECUTED
40041444: b8 08 60 07 and %g1, 7, %i4
<== NOT EXECUTED
40041448: b6 01 00 03 add %g4, %g3, %i3
<== NOT EXECUTED
4004144c: 85 38 80 1c sra %g2, %i4, %g2
<== NOT EXECUTED
40041450: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40041454: 02 80 00 26 be 400414ec <fat_get_unique_ino+0xd4>
<== NOT EXECUTED
40041458: c6 09 00 03 ldub [ %g4 + %g3 ], %g3
<== NOT EXECUTED
for (j = 0; j < fs_info->uino_pool_size; j++)
4004145c: 10 80 00 0e b 40041494 <fat_get_unique_ino+0x7c>
<== NOT EXECUTED
40041460: ba 10 20 00 clr %i5
<== NOT EXECUTED
40041464: 80 a7 40 09 cmp %i5, %o1
<== NOT EXECUTED
40041468: 02 80 00 12 be 400414b0 <fat_get_unique_ino+0x98>
<== NOT EXECUTED
4004146c: c2 26 20 80 st %g1, [ %i0 + 0x80 ]
<== NOT EXECUTED
if (!FAT_UNIQ_INO_IS_BUSY(fs_info->index, fs_info->uino))
40041470: c2 06 20 80 ld [ %i0 + 0x80 ], %g1
<== NOT EXECUTED
40041474: 87 30 60 03 srl %g1, 3, %g3
<== NOT EXECUTED
40041478: c4 49 00 03 ldsb [ %g4 + %g3 ], %g2
<== NOT EXECUTED
4004147c: b8 08 60 07 and %g1, 7, %i4
<== NOT EXECUTED
40041480: b6 01 00 03 add %g4, %g3, %i3
<== NOT EXECUTED
40041484: 85 38 80 1c sra %g2, %i4, %g2
<== NOT EXECUTED
40041488: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
4004148c: 02 80 00 18 be 400414ec <fat_get_unique_ino+0xd4>
<== NOT EXECUTED
40041490: c6 09 00 03 ldub [ %g4 + %g3 ], %g3
<== NOT EXECUTED
fs_info->index++;
40041494: 82 00 60 01 inc %g1
<== NOT EXECUTED
if (fs_info->index >= fs_info->uino_pool_size)
40041498: 80 a0 40 09 cmp %g1, %o1
<== NOT EXECUTED
4004149c: 0a bf ff f2 bcs 40041464 <fat_get_unique_ino+0x4c>
<== NOT EXECUTED
400414a0: ba 07 60 01 inc %i5
<== NOT EXECUTED
for (j = 0; j < fs_info->uino_pool_size; j++)
400414a4: 80 a7 40 09 cmp %i5, %o1
<== NOT EXECUTED
400414a8: 12 bf ff f2 bne 40041470 <fat_get_unique_ino+0x58>
<== NOT EXECUTED
400414ac: c0 26 20 80 clr [ %i0 + 0x80 ]
<== NOT EXECUTED
400414b0: 93 2a 60 01 sll %o1, 1, %o1
<== NOT EXECUTED
if ((fs_info->uino_pool_size << 1) < (0x0FFFFFFF - fs_info->uino_base))
400414b4: c2 06 20 88 ld [ %i0 + 0x88 ], %g1
<== NOT EXECUTED
400414b8: 82 26 80 01 sub %i2, %g1, %g1
<== NOT EXECUTED
400414bc: 80 a0 40 09 cmp %g1, %o1
<== NOT EXECUTED
400414c0: 08 80 00 13 bleu 4004150c <fat_get_unique_ino+0xf4>
<== NOT EXECUTED
400414c4: 01 00 00 00 nop
<== NOT EXECUTED
{
fs_info->uino_pool_size <<= 1;
400414c8: d2 26 20 84 st %o1, [ %i0 + 0x84 ]
<== NOT EXECUTED
fs_info->uino = realloc(fs_info->uino, fs_info->uino_pool_size);
400414cc: 7f ff 2c f1 call 4000c890 <realloc>
<== NOT EXECUTED
400414d0: d0 06 20 7c ld [ %i0 + 0x7c ], %o0
<== NOT EXECUTED
if (fs_info->uino != NULL)
400414d4: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
400414d8: 02 80 00 0d be 4004150c <fat_get_unique_ino+0xf4>
<== NOT EXECUTED
400414dc: d0 26 20 7c st %o0, [ %i0 + 0x7c ]
<== NOT EXECUTED
fs_info->index = fs_info->uino_pool_size;
400414e0: d2 06 20 84 ld [ %i0 + 0x84 ], %o1
<== NOT EXECUTED
400414e4: 10 bf ff d1 b 40041428 <fat_get_unique_ino+0x10>
<== NOT EXECUTED
400414e8: d2 26 20 80 st %o1, [ %i0 + 0x80 ]
<== NOT EXECUTED
FAT_SET_UNIQ_INO_BUSY(fs_info->index, fs_info->uino);
400414ec: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
400414f0: b9 28 40 1c sll %g1, %i4, %i4
<== NOT EXECUTED
400414f4: 86 17 00 03 or %i4, %g3, %g3
<== NOT EXECUTED
400414f8: c6 2e c0 00 stb %g3, [ %i3 ]
<== NOT EXECUTED
return (fs_info->uino_base + fs_info->index);
400414fc: c2 06 20 88 ld [ %i0 + 0x88 ], %g1
<== NOT EXECUTED
40041500: f0 06 20 80 ld [ %i0 + 0x80 ], %i0
<== NOT EXECUTED
40041504: 81 c7 e0 08 ret
<== NOT EXECUTED
40041508: 91 e8 40 18 restore %g1, %i0, %o0
<== NOT EXECUTED
}
else
resrc_unsuff = true;
}
return 0;
}
4004150c: 81 c7 e0 08 ret
<== NOT EXECUTED
40041510: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
400413a0 <fat_init_clusters_chain>:
int
fat_init_clusters_chain(
fat_fs_info_t *fs_info,
uint32_t start_cln
)
{
400413a0: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
int rc = RC_OK;
ssize_t ret = 0;
uint32_t cur_cln = start_cln;
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400413a4: 10 80 00 0e b 400413dc <fat_init_clusters_chain+0x3c>
<== NOT EXECUTED
400413a8: f2 27 bf fc st %i1, [ %fp + -4 ]
<== NOT EXECUTED
{
ret = fat_cluster_set(fs_info, cur_cln, 0, fs_info->vol.bpc, 0);
400413ac: 7f ff fc a5 call 40040640 <fat_cluster_set>
<== NOT EXECUTED
400413b0: d6 06 20 08 ld [ %i0 + 8 ], %o3
<== NOT EXECUTED
if ( ret != fs_info->vol.bpc )
400413b4: c2 06 20 08 ld [ %i0 + 8 ], %g1
<== NOT EXECUTED
400413b8: 80 a0 40 08 cmp %g1, %o0
<== NOT EXECUTED
{
return -1;
}
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
400413bc: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
if ( ret != fs_info->vol.bpc )
400413c0: 12 80 00 13 bne 4004140c <fat_init_clusters_chain+0x6c>
<== NOT EXECUTED
400413c4: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cur_cln, &cur_cln);
400413c8: 7f ff f6 3f call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
400413cc: d2 07 bf fc ld [ %fp + -4 ], %o1
<== NOT EXECUTED
if ( rc != RC_OK )
400413d0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
400413d4: 12 80 00 0c bne 40041404 <fat_init_clusters_chain+0x64>
<== NOT EXECUTED
400413d8: f2 07 bf fc ld [ %fp + -4 ], %i1
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400413dc: c4 06 20 18 ld [ %i0 + 0x18 ], %g2
<== NOT EXECUTED
400413e0: c2 06 20 1c ld [ %i0 + 0x1c ], %g1
<== NOT EXECUTED
ret = fat_cluster_set(fs_info, cur_cln, 0, fs_info->vol.bpc, 0);
400413e4: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
400413e8: 98 10 20 00 clr %o4
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400413ec: b2 0e 40 02 and %i1, %g2, %i1
<== NOT EXECUTED
ret = fat_cluster_set(fs_info, cur_cln, 0, fs_info->vol.bpc, 0);
400413f0: 94 10 20 00 clr %o2
<== NOT EXECUTED
while ((cur_cln & fs_info->vol.mask) < fs_info->vol.eoc_val)
400413f4: 80 a6 40 01 cmp %i1, %g1
<== NOT EXECUTED
400413f8: 0a bf ff ed bcs 400413ac <fat_init_clusters_chain+0xc>
<== NOT EXECUTED
400413fc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
return rc;
}
}
return rc;
40041400: 90 10 20 00 clr %o0
<== NOT EXECUTED
}
40041404: 81 c7 e0 08 ret
<== NOT EXECUTED
40041408: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
return -1;
4004140c: 90 10 3f ff mov -1, %o0
<== NOT EXECUTED
}
40041410: 81 c7 e0 08 ret
<== NOT EXECUTED
40041414: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
40040918 <fat_init_volume_info>:
* RC_OK on success, or -1 if error occured
* and errno set appropriately
*/
int
fat_init_volume_info(fat_fs_info_t *fs_info, const char *device)
{
40040918: 9d e3 be e8 save %sp, -280, %sp
<== NOT EXECUTED
ssize_t ret = 0;
struct stat stat_buf;
int i = 0;
rtems_bdbuf_buffer *block = NULL;
vol->fd = open(device, O_RDWR);
4004091c: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
{
40040920: a4 10 00 18 mov %i0, %l2
<== NOT EXECUTED
rtems_bdbuf_buffer *block = NULL;
40040924: c0 27 bf 8c clr [ %fp + -116 ]
<== NOT EXECUTED
vol->fd = open(device, O_RDWR);
40040928: 7f ff 2e 7d call 4000c31c <open>
<== NOT EXECUTED
4004092c: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (vol->fd < 0)
40040930: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040934: 06 80 01 cb bl 40041060 <fat_init_volume_info+0x748>
<== NOT EXECUTED
40040938: d0 24 a0 68 st %o0, [ %l2 + 0x68 ]
<== NOT EXECUTED
{
rtems_set_errno_and_return_minus_one(ENXIO);
}
rc = fstat(vol->fd, &stat_buf);
4004093c: 7f ff 2b 67 call 4000b6d8 <fstat>
<== NOT EXECUTED
40040940: 92 07 bf a0 add %fp, -96, %o1
<== NOT EXECUTED
if (rc != 0)
40040944: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040948: 12 80 01 c3 bne 40041054 <fat_init_volume_info+0x73c>
<== NOT EXECUTED
4004094c: 07 00 00 3c sethi %hi(0xf000), %g3
<== NOT EXECUTED
close(vol->fd);
rtems_set_errno_and_return_minus_one(ENXIO);
}
/* Must be a block device. */
if (!S_ISBLK(stat_buf.st_mode))
40040950: c4 07 bf ac ld [ %fp + -84 ], %g2
<== NOT EXECUTED
40040954: 84 08 80 03 and %g2, %g3, %g2
<== NOT EXECUTED
40040958: 07 00 00 18 sethi %hi(0x6000), %g3
<== NOT EXECUTED
4004095c: 80 a0 80 03 cmp %g2, %g3
<== NOT EXECUTED
40040960: 12 80 01 be bne 40041058 <fat_init_volume_info+0x740>
<== NOT EXECUTED
40040964: d0 06 20 68 ld [ %i0 + 0x68 ], %o0
<== NOT EXECUTED
return ioctl(fd, RTEMS_BLKIO_GETDISKDEV, dd_ptr);
40040968: 94 06 20 6c add %i0, 0x6c, %o2
<== NOT EXECUTED
4004096c: 13 10 01 10 sethi %hi(0x40044000), %o1
<== NOT EXECUTED
40040970: 7f ff 2b c1 call 4000b874 <ioctl>
<== NOT EXECUTED
40040974: 92 12 62 09 or %o1, 0x209, %o1 ! 40044209 <rtems_rate_monotonic_report_statistics_with_plugin+0x125>
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENXIO);
}
/* check that device is registred as block device and lock it */
rc = rtems_disk_fd_get_disk_device(vol->fd, &vol->dd);
if (rc != 0) {
40040978: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004097c: 12 80 01 b6 bne 40041054 <fat_init_volume_info+0x73c>
<== NOT EXECUTED
40040980: 94 07 bf 8c add %fp, -116, %o2
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENXIO);
}
/* Read boot record */
/* FIXME: Asserts FAT_MAX_BPB_SIZE < bdbuf block size */
sc = rtems_bdbuf_read( vol->dd, 0, &block);
40040984: d0 04 a0 6c ld [ %l2 + 0x6c ], %o0
<== NOT EXECUTED
40040988: 7f ff 17 e8 call 40006928 <rtems_bdbuf_read>
<== NOT EXECUTED
4004098c: 92 10 20 00 clr %o1
<== NOT EXECUTED
if (sc != RTEMS_SUCCESSFUL)
40040990: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040994: 12 80 01 b9 bne 40041078 <fat_init_volume_info+0x760>
<== NOT EXECUTED
40040998: d0 07 bf 8c ld [ %fp + -116 ], %o0
<== NOT EXECUTED
{
close(vol->fd);
rtems_set_errno_and_return_minus_one( EIO);
}
memcpy( boot_rec, block->buffer, FAT_MAX_BPB_SIZE);
4004099c: c4 02 20 1c ld [ %o0 + 0x1c ], %g2
<== NOT EXECUTED
400409a0: c2 08 a0 20 ldub [ %g2 + 0x20 ], %g1
<== NOT EXECUTED
400409a4: c2 2f bf 87 stb %g1, [ %fp + -121 ]
<== NOT EXECUTED
400409a8: c2 08 a0 21 ldub [ %g2 + 0x21 ], %g1
<== NOT EXECUTED
400409ac: c2 2f bf 83 stb %g1, [ %fp + -125 ]
<== NOT EXECUTED
400409b0: c2 08 a0 22 ldub [ %g2 + 0x22 ], %g1
<== NOT EXECUTED
400409b4: c2 2f bf 7f stb %g1, [ %fp + -129 ]
<== NOT EXECUTED
400409b8: c2 08 a0 23 ldub [ %g2 + 0x23 ], %g1
<== NOT EXECUTED
400409bc: c2 2f bf 7b stb %g1, [ %fp + -133 ]
<== NOT EXECUTED
400409c0: c2 08 a0 24 ldub [ %g2 + 0x24 ], %g1
<== NOT EXECUTED
400409c4: c2 2f bf 77 stb %g1, [ %fp + -137 ]
<== NOT EXECUTED
400409c8: c2 08 a0 25 ldub [ %g2 + 0x25 ], %g1
<== NOT EXECUTED
400409cc: c2 2f bf 73 stb %g1, [ %fp + -141 ]
<== NOT EXECUTED
400409d0: c2 08 a0 26 ldub [ %g2 + 0x26 ], %g1
<== NOT EXECUTED
400409d4: c2 2f bf 6f stb %g1, [ %fp + -145 ]
<== NOT EXECUTED
400409d8: c2 08 a0 27 ldub [ %g2 + 0x27 ], %g1
<== NOT EXECUTED
400409dc: c2 2f bf 6b stb %g1, [ %fp + -149 ]
<== NOT EXECUTED
400409e0: c2 08 a0 28 ldub [ %g2 + 0x28 ], %g1
<== NOT EXECUTED
400409e4: e6 08 a0 0b ldub [ %g2 + 0xb ], %l3
<== NOT EXECUTED
400409e8: fa 08 a0 0c ldub [ %g2 + 0xc ], %i5
<== NOT EXECUTED
400409ec: e0 08 a0 0d ldub [ %g2 + 0xd ], %l0
<== NOT EXECUTED
400409f0: ee 08 a0 0e ldub [ %g2 + 0xe ], %l7
<== NOT EXECUTED
400409f4: f4 08 a0 0f ldub [ %g2 + 0xf ], %i2
<== NOT EXECUTED
400409f8: e2 08 a0 10 ldub [ %g2 + 0x10 ], %l1
<== NOT EXECUTED
400409fc: ec 08 a0 11 ldub [ %g2 + 0x11 ], %l6
<== NOT EXECUTED
40040a00: f2 08 a0 12 ldub [ %g2 + 0x12 ], %i1
<== NOT EXECUTED
40040a04: e8 08 a0 13 ldub [ %g2 + 0x13 ], %l4
<== NOT EXECUTED
40040a08: f8 08 a0 14 ldub [ %g2 + 0x14 ], %i4
<== NOT EXECUTED
40040a0c: ea 08 a0 16 ldub [ %g2 + 0x16 ], %l5
<== NOT EXECUTED
40040a10: f6 08 a0 17 ldub [ %g2 + 0x17 ], %i3
<== NOT EXECUTED
40040a14: c2 2f bf 67 stb %g1, [ %fp + -153 ]
<== NOT EXECUTED
40040a18: c2 08 a0 2c ldub [ %g2 + 0x2c ], %g1
<== NOT EXECUTED
40040a1c: c2 2f bf 5b stb %g1, [ %fp + -165 ]
<== NOT EXECUTED
40040a20: c2 08 a0 2d ldub [ %g2 + 0x2d ], %g1
<== NOT EXECUTED
40040a24: c2 2f bf 57 stb %g1, [ %fp + -169 ]
<== NOT EXECUTED
40040a28: c2 08 a0 2e ldub [ %g2 + 0x2e ], %g1
<== NOT EXECUTED
40040a2c: c2 2f bf 63 stb %g1, [ %fp + -157 ]
<== NOT EXECUTED
40040a30: c2 08 a0 2f ldub [ %g2 + 0x2f ], %g1
<== NOT EXECUTED
40040a34: c2 2f bf 5f stb %g1, [ %fp + -161 ]
<== NOT EXECUTED
40040a38: c2 08 a0 30 ldub [ %g2 + 0x30 ], %g1
<== NOT EXECUTED
40040a3c: c2 2f bf 53 stb %g1, [ %fp + -173 ]
<== NOT EXECUTED
40040a40: c2 08 a0 31 ldub [ %g2 + 0x31 ], %g1
<== NOT EXECUTED
sc = rtems_bdbuf_release( block);
40040a44: 7f ff 18 42 call 40006b4c <rtems_bdbuf_release>
<== NOT EXECUTED
40040a48: c2 2f bf 4f stb %g1, [ %fp + -177 ]
<== NOT EXECUTED
if (sc != RTEMS_SUCCESSFUL)
40040a4c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040a50: 12 80 01 8a bne 40041078 <fat_init_volume_info+0x760>
<== NOT EXECUTED
40040a54: bb 2f 60 08 sll %i5, 8, %i5
<== NOT EXECUTED
close(vol->fd);
rtems_set_errno_and_return_minus_one( EIO );
}
/* Evaluate boot record */
vol->bps = FAT_GET_BR_BYTES_PER_SECTOR(boot_rec);
40040a58: a6 17 40 13 or %i5, %l3, %l3
<== NOT EXECUTED
if ( (vol->bps != 512) &&
40040a5c: 84 04 fe 00 add %l3, -512, %g2
<== NOT EXECUTED
40040a60: 84 08 bd ff and %g2, -513, %g2
<== NOT EXECUTED
40040a64: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
(vol->bps != 1024) &&
(vol->bps != 2048) &&
40040a68: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40040a6c: 02 80 00 07 be 40040a88 <fat_init_volume_info+0x170>
<== NOT EXECUTED
40040a70: e6 34 80 00 sth %l3, [ %l2 ]
<== NOT EXECUTED
(vol->bps != 1024) &&
40040a74: 84 04 f8 00 add %l3, -2048, %g2
<== NOT EXECUTED
40040a78: 07 3f ff c2 sethi %hi(0xffff0800), %g3
<== NOT EXECUTED
(vol->bps != 2048) &&
40040a7c: 80 a8 80 03 andncc %g2, %g3, %g0
<== NOT EXECUTED
40040a80: 12 80 00 41 bne 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040a84: 01 00 00 00 nop
<== NOT EXECUTED
(vol->bps != 4096))
{
close(vol->fd);
rtems_set_errno_and_return_minus_one( EINVAL );
}
for (vol->sec_mul = 0, i = (vol->bps >> FAT_SECTOR512_BITS); (i & 1) == 0;
40040a88: 93 2c e0 10 sll %l3, 0x10, %o1
<== NOT EXECUTED
40040a8c: 85 32 60 19 srl %o1, 0x19, %g2
<== NOT EXECUTED
40040a90: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40040a94: 12 80 00 09 bne 40040ab8 <fat_init_volume_info+0x1a0>
<== NOT EXECUTED
40040a98: c0 2c a0 03 clrb [ %l2 + 3 ]
<== NOT EXECUTED
40040a9c: 86 10 20 00 clr %g3
<== NOT EXECUTED
i >>= 1, vol->sec_mul++);
40040aa0: 85 38 a0 01 sra %g2, 1, %g2
<== NOT EXECUTED
40040aa4: 88 00 e0 01 add %g3, 1, %g4
<== NOT EXECUTED
for (vol->sec_mul = 0, i = (vol->bps >> FAT_SECTOR512_BITS); (i & 1) == 0;
40040aa8: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40040aac: 02 bf ff fd be 40040aa0 <fat_init_volume_info+0x188>
<== NOT EXECUTED
40040ab0: 86 10 00 04 mov %g4, %g3
<== NOT EXECUTED
40040ab4: c8 2c a0 03 stb %g4, [ %l2 + 3 ]
<== NOT EXECUTED
for (vol->sec_log2 = 0, i = vol->bps; (i & 1) == 0;
40040ab8: 85 32 60 10 srl %o1, 0x10, %g2
<== NOT EXECUTED
40040abc: 80 8c e0 01 btst 1, %l3
<== NOT EXECUTED
40040ac0: 12 80 00 0a bne 40040ae8 <fat_init_volume_info+0x1d0>
<== NOT EXECUTED
40040ac4: c0 2c a0 02 clrb [ %l2 + 2 ]
<== NOT EXECUTED
40040ac8: 10 80 00 03 b 40040ad4 <fat_init_volume_info+0x1bc>
<== NOT EXECUTED
40040acc: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
40040ad0: 86 10 00 01 mov %g1, %g3
<== NOT EXECUTED
i >>= 1, vol->sec_log2++);
40040ad4: 85 38 a0 01 sra %g2, 1, %g2
<== NOT EXECUTED
for (vol->sec_log2 = 0, i = vol->bps; (i & 1) == 0;
40040ad8: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40040adc: 02 bf ff fd be 40040ad0 <fat_init_volume_info+0x1b8>
<== NOT EXECUTED
40040ae0: 82 00 e0 01 add %g3, 1, %g1
<== NOT EXECUTED
40040ae4: c6 2c a0 02 stb %g3, [ %l2 + 2 ]
<== NOT EXECUTED
/* Assign the sector size as bdbuf block size for now.
* If possible the bdbuf block size will get increased to the cluster
* size at the end of this method for better performance */
sc = rtems_bdbuf_set_block_size (vol->dd, vol->bps, true);
40040ae8: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
40040aec: d0 04 a0 6c ld [ %l2 + 0x6c ], %o0
<== NOT EXECUTED
40040af0: 7f ff 19 02 call 40006ef8 <rtems_bdbuf_set_block_size>
<== NOT EXECUTED
40040af4: 93 32 60 10 srl %o1, 0x10, %o1
<== NOT EXECUTED
if (sc != RTEMS_SUCCESSFUL)
40040af8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040afc: 12 80 00 22 bne 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040b00: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
{
close(vol->fd);
rtems_set_errno_and_return_minus_one( EINVAL );
}
vol->bytes_per_block = vol->bps;
40040b04: c8 14 80 00 lduh [ %l2 ], %g4
<== NOT EXECUTED
vol->bytes_per_block_log2 = vol->sec_log2;
40040b08: de 0c a0 02 ldub [ %l2 + 2 ], %o7
<== NOT EXECUTED
vol->bytes_per_block = vol->bps;
40040b0c: 89 29 20 10 sll %g4, 0x10, %g4
<== NOT EXECUTED
40040b10: bb 31 20 10 srl %g4, 0x10, %i5
<== NOT EXECUTED
vol->bytes_per_block_log2 = vol->sec_log2;
40040b14: de 2c a0 14 stb %o7, [ %l2 + 0x14 ]
<== NOT EXECUTED
vol->spc = FAT_GET_BR_SECTORS_PER_CLUSTER(boot_rec);
/*
* "sectors per cluster" of zero is invalid
* (and would hang the following loop)
*/
if (vol->spc == 0)
40040b18: 9a 8c 20 ff andcc %l0, 0xff, %o5
<== NOT EXECUTED
vol->bytes_per_block = vol->bps;
40040b1c: fa 24 a0 10 st %i5, [ %l2 + 0x10 ]
<== NOT EXECUTED
vol->sectors_per_block = 1;
40040b20: c4 2c a0 0d stb %g2, [ %l2 + 0xd ]
<== NOT EXECUTED
if (vol->spc == 0)
40040b24: 02 80 00 18 be 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040b28: e0 2c a0 04 stb %l0, [ %l2 + 4 ]
<== NOT EXECUTED
{
close(vol->fd);
rtems_set_errno_and_return_minus_one(EINVAL);
}
for (vol->spc_log2 = 0, i = vol->spc; (i & 1) == 0;
40040b2c: c0 2c a0 05 clrb [ %l2 + 5 ]
<== NOT EXECUTED
40040b30: 80 8c 20 01 btst 1, %l0
<== NOT EXECUTED
40040b34: 12 80 00 1c bne 40040ba4 <fat_init_volume_info+0x28c>
<== NOT EXECUTED
40040b38: 84 10 00 0d mov %o5, %g2
<== NOT EXECUTED
40040b3c: 10 80 00 03 b 40040b48 <fat_init_volume_info+0x230>
<== NOT EXECUTED
40040b40: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
40040b44: 86 10 00 01 mov %g1, %g3
<== NOT EXECUTED
i >>= 1, vol->spc_log2++);
40040b48: 85 38 a0 01 sra %g2, 1, %g2
<== NOT EXECUTED
for (vol->spc_log2 = 0, i = vol->spc; (i & 1) == 0;
40040b4c: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40040b50: 02 bf ff fd be 40040b44 <fat_init_volume_info+0x22c>
<== NOT EXECUTED
40040b54: 82 00 e0 01 add %g3, 1, %g1
<== NOT EXECUTED
40040b58: 84 08 e0 ff and %g3, 0xff, %g2
<== NOT EXECUTED
40040b5c: c6 2c a0 05 stb %g3, [ %l2 + 5 ]
<== NOT EXECUTED
40040b60: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
40040b64: 10 80 00 12 b 40040bac <fat_init_volume_info+0x294>
<== NOT EXECUTED
40040b68: 87 28 c0 02 sll %g3, %g2, %g3
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY)
40040b6c: c4 0c a0 91 ldub [ %l2 + 0x91 ], %g2
<== NOT EXECUTED
40040b70: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40040b74: 02 80 00 04 be 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040b78: 01 00 00 00 nop
<== NOT EXECUTED
40040b7c: 7f ff fd b7 call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
40040b80: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if (FAT_GET_FSINFO_LEAD_SIGNATURE(fs_info_sector) !=
FAT_FSINFO_LEAD_SIGNATURE_VALUE)
{
_fat_block_release(fs_info);
close(vol->fd);
40040b84: 7f ff 29 fa call 4000b36c <close>
<== NOT EXECUTED
40040b88: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( EINVAL );
40040b8c: 40 00 6f 62 call 4005c914 <__errno>
<== NOT EXECUTED
40040b90: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
40040b94: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
40040b98: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40040b9c: 81 c7 e0 08 ret
<== NOT EXECUTED
40040ba0: 81 e8 00 00 restore
<== NOT EXECUTED
for (vol->spc_log2 = 0, i = vol->spc; (i & 1) == 0;
40040ba4: 84 10 20 00 clr %g2
<== NOT EXECUTED
40040ba8: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
if (vol->spc != UINT32_C(1) << vol->spc_log2)
40040bac: 80 a3 40 03 cmp %o5, %g3
<== NOT EXECUTED
40040bb0: 12 bf ff f5 bne 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040bb4: bb 2f 40 02 sll %i5, %g2, %i5
<== NOT EXECUTED
for (vol->bpc_log2 = 0, i = vol->bpc; (i & 1) == 0;
40040bb8: c0 2c a0 0c clrb [ %l2 + 0xc ]
<== NOT EXECUTED
40040bbc: 84 10 00 1d mov %i5, %g2
<== NOT EXECUTED
40040bc0: 80 8f 60 01 btst 1, %i5
<== NOT EXECUTED
40040bc4: 12 80 00 0a bne 40040bec <fat_init_volume_info+0x2d4>
<== NOT EXECUTED
40040bc8: fa 24 a0 08 st %i5, [ %l2 + 8 ]
<== NOT EXECUTED
40040bcc: 10 80 00 03 b 40040bd8 <fat_init_volume_info+0x2c0>
<== NOT EXECUTED
40040bd0: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
40040bd4: 86 10 00 01 mov %g1, %g3
<== NOT EXECUTED
i >>= 1, vol->bpc_log2++);
40040bd8: 85 38 a0 01 sra %g2, 1, %g2
<== NOT EXECUTED
for (vol->bpc_log2 = 0, i = vol->bpc; (i & 1) == 0;
40040bdc: 80 88 a0 01 btst 1, %g2
<== NOT EXECUTED
40040be0: 02 bf ff fd be 40040bd4 <fat_init_volume_info+0x2bc>
<== NOT EXECUTED
40040be4: 82 00 e0 01 add %g3, 1, %g1
<== NOT EXECUTED
40040be8: c6 2c a0 0c stb %g3, [ %l2 + 0xc ]
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040bec: 89 31 20 10 srl %g4, 0x10, %g4
<== NOT EXECUTED
vol->fat_loc = FAT_GET_BR_RESERVED_SECTORS_NUM(boot_rec);
40040bf0: b5 2e a0 08 sll %i2, 8, %i2
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040bf4: 86 01 3f ff add %g4, -1, %g3
<== NOT EXECUTED
vol->rdir_entrs = FAT_GET_BR_FILES_PER_ROOT_DIR(boot_rec);
40040bf8: b3 2e 60 08 sll %i1, 8, %i1
<== NOT EXECUTED
vol->fat_loc = FAT_GET_BR_RESERVED_SECTORS_NUM(boot_rec);
40040bfc: ae 16 80 17 or %i2, %l7, %l7
<== NOT EXECUTED
vol->rdir_entrs = FAT_GET_BR_FILES_PER_ROOT_DIR(boot_rec);
40040c00: ac 16 40 16 or %i1, %l6, %l6
<== NOT EXECUTED
vol->fats = FAT_GET_BR_FAT_NUM(boot_rec);
40040c04: e2 2c a0 15 stb %l1, [ %l2 + 0x15 ]
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040c08: 85 2d a0 05 sll %l6, 5, %g2
<== NOT EXECUTED
vol->fat_loc = FAT_GET_BR_RESERVED_SECTORS_NUM(boot_rec);
40040c0c: ee 34 a0 20 sth %l7, [ %l2 + 0x20 ]
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040c10: 84 00 80 03 add %g2, %g3, %g2
<== NOT EXECUTED
vol->rdir_entrs = FAT_GET_BR_FILES_PER_ROOT_DIR(boot_rec);
40040c14: ec 34 a0 2c sth %l6, [ %l2 + 0x2c ]
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040c18: 83 38 a0 1f sra %g2, 0x1f, %g1
<== NOT EXECUTED
40040c1c: 81 80 60 00 wr %g1, %y
<== NOT EXECUTED
40040c20: 01 00 00 00 nop
<== NOT EXECUTED
40040c24: 01 00 00 00 nop
<== NOT EXECUTED
40040c28: 01 00 00 00 nop
<== NOT EXECUTED
40040c2c: 88 78 80 04 sdiv %g2, %g4, %g4
<== NOT EXECUTED
vol->rdir_size = vol->rdir_secs << vol->sec_log2;
40040c30: 9f 29 00 0f sll %g4, %o7, %o7
<== NOT EXECUTED
vol->rdir_secs = ((vol->rdir_entrs * FAT_DIRENTRY_SIZE) + (vol->bps - 1)) /
40040c34: c8 24 a0 30 st %g4, [ %l2 + 0x30 ]
<== NOT EXECUTED
if ( (FAT_GET_BR_SECTORS_PER_FAT(boot_rec)) != 0)
40040c38: b7 2e e0 08 sll %i3, 8, %i3
<== NOT EXECUTED
40040c3c: aa 16 c0 15 or %i3, %l5, %l5
<== NOT EXECUTED
40040c40: ab 2d 60 10 sll %l5, 0x10, %l5
<== NOT EXECUTED
40040c44: 80 a5 60 00 cmp %l5, 0
<== NOT EXECUTED
40040c48: 02 80 00 98 be 40040ea8 <fat_init_volume_info+0x590>
<== NOT EXECUTED
40040c4c: de 24 a0 34 st %o7, [ %l2 + 0x34 ]
<== NOT EXECUTED
vol->fat_length = FAT_GET_BR_SECTORS_PER_FAT(boot_rec);
40040c50: ab 35 60 10 srl %l5, 0x10, %l5
<== NOT EXECUTED
40040c54: ea 24 a0 24 st %l5, [ %l2 + 0x24 ]
<== NOT EXECUTED
vol->data_fsec = vol->fat_loc + vol->fats * vol->fat_length +
40040c58: a2 5d 40 11 smul %l5, %l1, %l1
<== NOT EXECUTED
40040c5c: ae 04 40 17 add %l1, %l7, %l7
<== NOT EXECUTED
40040c60: 88 01 00 17 add %g4, %l7, %g4
<== NOT EXECUTED
vol->rdir_loc = vol->fat_loc + vol->fats * vol->fat_length;
40040c64: ee 24 a0 28 st %l7, [ %l2 + 0x28 ]
<== NOT EXECUTED
if ( (FAT_GET_BR_TOTAL_SECTORS_NUM16(boot_rec)) != 0)
40040c68: b9 2f 20 08 sll %i4, 8, %i4
<== NOT EXECUTED
40040c6c: a8 17 00 14 or %i4, %l4, %l4
<== NOT EXECUTED
40040c70: a9 2d 20 10 sll %l4, 0x10, %l4
<== NOT EXECUTED
40040c74: 80 a5 20 00 cmp %l4, 0
<== NOT EXECUTED
40040c78: 02 80 00 80 be 40040e78 <fat_init_volume_info+0x560>
<== NOT EXECUTED
40040c7c: c8 24 a0 3c st %g4, [ %l2 + 0x3c ]
<== NOT EXECUTED
vol->tot_secs = FAT_GET_BR_TOTAL_SECTORS_NUM16(boot_rec);
40040c80: a9 35 20 10 srl %l4, 0x10, %l4
<== NOT EXECUTED
40040c84: e8 24 a0 38 st %l4, [ %l2 + 0x38 ]
<== NOT EXECUTED
data_secs = vol->tot_secs - vol->data_fsec;
40040c88: a8 25 00 04 sub %l4, %g4, %l4
<== NOT EXECUTED
vol->data_cls = data_secs / vol->spc;
40040c8c: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40040c90: 01 00 00 00 nop
<== NOT EXECUTED
40040c94: 01 00 00 00 nop
<== NOT EXECUTED
40040c98: 01 00 00 00 nop
<== NOT EXECUTED
40040c9c: 84 75 00 0d udiv %l4, %o5, %g2
<== NOT EXECUTED
if ( vol->data_cls < FAT_FAT12_MAX_CLN)
40040ca0: 80 a0 af f4 cmp %g2, 0xff4
<== NOT EXECUTED
40040ca4: 18 80 00 69 bgu 40040e48 <fat_init_volume_info+0x530>
<== NOT EXECUTED
40040ca8: c4 24 a0 40 st %g2, [ %l2 + 0x40 ]
<== NOT EXECUTED
vol->type = FAT_FAT12;
40040cac: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
40040cb0: c4 2c a0 16 stb %g2, [ %l2 + 0x16 ]
<== NOT EXECUTED
vol->mask = FAT_FAT12_MASK;
40040cb4: 84 10 2f ff mov 0xfff, %g2
<== NOT EXECUTED
40040cb8: c4 24 a0 18 st %g2, [ %l2 + 0x18 ]
<== NOT EXECUTED
vol->eoc_val = FAT_FAT12_EOC;
40040cbc: 84 10 2f f8 mov 0xff8, %g2
<== NOT EXECUTED
40040cc0: c4 24 a0 1c st %g2, [ %l2 + 0x1c ]
<== NOT EXECUTED
else
{
vol->rdir_cl = 0;
vol->mirror = 0;
vol->afat = 0;
vol->free_cls = FAT_UNDEFINED_VALUE;
40040cc4: 84 10 3f ff mov -1, %g2
<== NOT EXECUTED
vol->rdir_cl = 0;
40040cc8: c0 24 a0 44 clr [ %l2 + 0x44 ]
<== NOT EXECUTED
vol->mirror = 0;
40040ccc: c0 2c a0 5c clrb [ %l2 + 0x5c ]
<== NOT EXECUTED
vol->afat = 0;
40040cd0: c0 2c a0 64 clrb [ %l2 + 0x64 ]
<== NOT EXECUTED
vol->free_cls = FAT_UNDEFINED_VALUE;
40040cd4: c4 24 a0 4c st %g2, [ %l2 + 0x4c ]
<== NOT EXECUTED
vol->next_cl = FAT_UNDEFINED_VALUE;
40040cd8: c4 24 a0 54 st %g2, [ %l2 + 0x54 ]
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY)
40040cdc: c4 0c a0 91 ldub [ %l2 + 0x91 ], %g2
<== NOT EXECUTED
40040ce0: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40040ce4: 12 80 00 7d bne 40040ed8 <fat_init_volume_info+0x5c0>
<== NOT EXECUTED
40040ce8: 01 00 00 00 nop
<== NOT EXECUTED
}
_fat_block_release(fs_info);
vol->afat_loc = vol->fat_loc + vol->fat_length * vol->afat;
40040cec: c4 0c a0 64 ldub [ %l2 + 0x64 ], %g2
<== NOT EXECUTED
40040cf0: c8 04 a0 24 ld [ %l2 + 0x24 ], %g4
<== NOT EXECUTED
40040cf4: c6 14 a0 20 lduh [ %l2 + 0x20 ], %g3
<== NOT EXECUTED
40040cf8: 84 58 80 04 smul %g2, %g4, %g2
<== NOT EXECUTED
40040cfc: 84 00 80 03 add %g2, %g3, %g2
<== NOT EXECUTED
40040d00: c4 24 a0 60 st %g2, [ %l2 + 0x60 ]
<== NOT EXECUTED
/* set up collection of fat-files fd */
fs_info->vhash = calloc(FAT_HASH_SIZE, sizeof(rtems_chain_control));
40040d04: 92 10 20 0c mov 0xc, %o1
<== NOT EXECUTED
40040d08: 7f ff 25 be call 4000a400 <calloc>
<== NOT EXECUTED
40040d0c: 90 10 20 02 mov 2, %o0
<== NOT EXECUTED
40040d10: d0 24 a0 74 st %o0, [ %l2 + 0x74 ]
<== NOT EXECUTED
if ( fs_info->vhash == NULL )
40040d14: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040d18: 02 80 01 03 be 40041124 <fat_init_volume_info+0x80c>
<== NOT EXECUTED
40040d1c: 84 10 00 08 mov %o0, %g2
<== NOT EXECUTED
head->previous = NULL;
40040d20: c0 22 20 04 clr [ %o0 + 4 ]
<== NOT EXECUTED
return &the_chain->Tail.Node;
40040d24: ba 02 20 04 add %o0, 4, %i5
<== NOT EXECUTED
head->next = tail;
40040d28: fa 22 00 00 st %i5, [ %o0 ]
<== NOT EXECUTED
return &the_chain->Tail.Node;
40040d2c: 86 02 20 0c add %o0, 0xc, %g3
<== NOT EXECUTED
40040d30: 88 02 20 10 add %o0, 0x10, %g4
<== NOT EXECUTED
tail->previous = head;
40040d34: c4 20 a0 08 st %g2, [ %g2 + 8 ]
<== NOT EXECUTED
}
for (i = 0; i < FAT_HASH_SIZE; i++)
rtems_chain_initialize_empty(fs_info->vhash + i);
fs_info->rhash = calloc(FAT_HASH_SIZE, sizeof(rtems_chain_control));
40040d38: 92 10 20 0c mov 0xc, %o1
<== NOT EXECUTED
head->next = tail;
40040d3c: c8 20 a0 0c st %g4, [ %g2 + 0xc ]
<== NOT EXECUTED
40040d40: 90 10 20 02 mov 2, %o0
<== NOT EXECUTED
head->previous = NULL;
40040d44: c0 20 a0 10 clr [ %g2 + 0x10 ]
<== NOT EXECUTED
40040d48: 7f ff 25 ae call 4000a400 <calloc>
<== NOT EXECUTED
40040d4c: c6 20 a0 14 st %g3, [ %g2 + 0x14 ]
<== NOT EXECUTED
40040d50: d0 24 a0 78 st %o0, [ %l2 + 0x78 ]
<== NOT EXECUTED
if ( fs_info->rhash == NULL )
40040d54: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040d58: 02 80 00 e7 be 400410f4 <fat_init_volume_info+0x7dc>
<== NOT EXECUTED
40040d5c: 84 10 00 08 mov %o0, %g2
<== NOT EXECUTED
}
for (i = 0; i < FAT_HASH_SIZE; i++)
rtems_chain_initialize_empty(fs_info->rhash + i);
fs_info->uino_pool_size = FAT_UINO_POOL_INIT_SIZE;
fs_info->uino_base = (vol->tot_secs << vol->sec_mul) << 4;
40040d60: c8 0c a0 03 ldub [ %l2 + 3 ], %g4
<== NOT EXECUTED
40040d64: c6 04 a0 38 ld [ %l2 + 0x38 ], %g3
<== NOT EXECUTED
40040d68: c0 22 20 04 clr [ %o0 + 4 ]
<== NOT EXECUTED
40040d6c: 87 28 c0 04 sll %g3, %g4, %g3
<== NOT EXECUTED
return &the_chain->Tail.Node;
40040d70: ba 02 20 04 add %o0, 4, %i5
<== NOT EXECUTED
40040d74: 87 28 e0 04 sll %g3, 4, %g3
<== NOT EXECUTED
head->next = tail;
40040d78: fa 22 00 00 st %i5, [ %o0 ]
<== NOT EXECUTED
fs_info->uino_pool_size = FAT_UINO_POOL_INIT_SIZE;
40040d7c: 88 10 21 00 mov 0x100, %g4
<== NOT EXECUTED
fs_info->uino_base = (vol->tot_secs << vol->sec_mul) << 4;
40040d80: c6 24 a0 88 st %g3, [ %l2 + 0x88 ]
<== NOT EXECUTED
return &the_chain->Tail.Node;
40040d84: 86 02 20 0c add %o0, 0xc, %g3
<== NOT EXECUTED
fs_info->uino_pool_size = FAT_UINO_POOL_INIT_SIZE;
40040d88: c8 24 a0 84 st %g4, [ %l2 + 0x84 ]
<== NOT EXECUTED
40040d8c: 88 02 20 10 add %o0, 0x10, %g4
<== NOT EXECUTED
fs_info->index = 0;
40040d90: c0 24 a0 80 clr [ %l2 + 0x80 ]
<== NOT EXECUTED
fs_info->uino = (char *)calloc(fs_info->uino_pool_size, sizeof(char));
40040d94: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
tail->previous = head;
40040d98: c4 20 a0 08 st %g2, [ %g2 + 8 ]
<== NOT EXECUTED
40040d9c: 90 10 21 00 mov 0x100, %o0
<== NOT EXECUTED
head->next = tail;
40040da0: c8 20 a0 0c st %g4, [ %g2 + 0xc ]
<== NOT EXECUTED
head->previous = NULL;
40040da4: c0 20 a0 10 clr [ %g2 + 0x10 ]
<== NOT EXECUTED
40040da8: 7f ff 25 96 call 4000a400 <calloc>
<== NOT EXECUTED
40040dac: c6 20 a0 14 st %g3, [ %g2 + 0x14 ]
<== NOT EXECUTED
if ( fs_info->uino == NULL )
40040db0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040db4: 02 80 00 b9 be 40041098 <fat_init_volume_info+0x780>
<== NOT EXECUTED
40040db8: d0 24 a0 7c st %o0, [ %l2 + 0x7c ]
<== NOT EXECUTED
close(vol->fd);
free(fs_info->vhash);
free(fs_info->rhash);
rtems_set_errno_and_return_minus_one( ENOMEM );
}
fs_info->sec_buf = (uint8_t *)calloc(vol->bps, sizeof(uint8_t));
40040dbc: d0 14 80 00 lduh [ %l2 ], %o0
<== NOT EXECUTED
40040dc0: 7f ff 25 90 call 4000a400 <calloc>
<== NOT EXECUTED
40040dc4: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
if (fs_info->sec_buf == NULL)
40040dc8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040dcc: 02 80 00 ce be 40041104 <fat_init_volume_info+0x7ec>
<== NOT EXECUTED
40040dd0: d0 24 a0 98 st %o0, [ %l2 + 0x98 ]
<== NOT EXECUTED
return (sec_num & (vol->spc - 1)) == 0;
40040dd4: c4 0c a0 04 ldub [ %l2 + 4 ], %g2
<== NOT EXECUTED
40040dd8: c6 04 a0 3c ld [ %l2 + 0x3c ], %g3
<== NOT EXECUTED
40040ddc: 84 00 bf ff add %g2, -1, %g2
<== NOT EXECUTED
/*
* If possible we will use the cluster size as bdbuf block size for faster
* file access. This requires that certain sectors are aligned to cluster
* borders.
*/
if (is_cluster_aligned(vol, vol->data_fsec)
40040de0: 80 88 80 03 btst %g2, %g3
<== NOT EXECUTED
40040de4: 12 80 00 d6 bne 4004113c <fat_init_volume_info+0x824>
<== NOT EXECUTED
40040de8: 01 00 00 00 nop
<== NOT EXECUTED
&& (FAT_FAT32 == vol->type || is_cluster_aligned(vol, vol->rdir_loc)))
40040dec: c6 0c a0 16 ldub [ %l2 + 0x16 ], %g3
<== NOT EXECUTED
40040df0: 80 a0 e0 04 cmp %g3, 4
<== NOT EXECUTED
40040df4: 22 80 00 07 be,a 40040e10 <fat_init_volume_info+0x4f8>
<== NOT EXECUTED
40040df8: d2 04 a0 08 ld [ %l2 + 8 ], %o1
<== NOT EXECUTED
return (sec_num & (vol->spc - 1)) == 0;
40040dfc: c6 04 a0 28 ld [ %l2 + 0x28 ], %g3
<== NOT EXECUTED
&& (FAT_FAT32 == vol->type || is_cluster_aligned(vol, vol->rdir_loc)))
40040e00: 80 88 80 03 btst %g2, %g3
<== NOT EXECUTED
40040e04: 12 80 00 ce bne 4004113c <fat_init_volume_info+0x824>
<== NOT EXECUTED
40040e08: 01 00 00 00 nop
<== NOT EXECUTED
{
sc = rtems_bdbuf_set_block_size (vol->dd, vol->bpc, true);
40040e0c: d2 04 a0 08 ld [ %l2 + 8 ], %o1
<== NOT EXECUTED
40040e10: d0 04 a0 6c ld [ %l2 + 0x6c ], %o0
<== NOT EXECUTED
40040e14: 7f ff 18 39 call 40006ef8 <rtems_bdbuf_set_block_size>
<== NOT EXECUTED
40040e18: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
if (sc == RTEMS_SUCCESSFUL)
40040e1c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040e20: 12 80 00 c7 bne 4004113c <fat_init_volume_info+0x824>
<== NOT EXECUTED
40040e24: 01 00 00 00 nop
<== NOT EXECUTED
{
vol->bytes_per_block = vol->bpc;
40040e28: c8 04 a0 08 ld [ %l2 + 8 ], %g4
<== NOT EXECUTED
vol->bytes_per_block_log2 = vol->bpc_log2;
40040e2c: c6 0c a0 0c ldub [ %l2 + 0xc ], %g3
<== NOT EXECUTED
vol->sectors_per_block = vol->spc;
40040e30: c4 0c a0 04 ldub [ %l2 + 4 ], %g2
<== NOT EXECUTED
vol->bytes_per_block = vol->bpc;
40040e34: c8 24 a0 10 st %g4, [ %l2 + 0x10 ]
<== NOT EXECUTED
vol->bytes_per_block_log2 = vol->bpc_log2;
40040e38: c6 2c a0 14 stb %g3, [ %l2 + 0x14 ]
<== NOT EXECUTED
vol->sectors_per_block = vol->spc;
40040e3c: c4 2c a0 0d stb %g2, [ %l2 + 0xd ]
<== NOT EXECUTED
40040e40: 81 c7 e0 08 ret
<== NOT EXECUTED
40040e44: 81 e8 00 00 restore
<== NOT EXECUTED
if ( vol->data_cls < FAT_FAT16_MAX_CLN)
40040e48: 07 00 00 3f sethi %hi(0xfc00), %g3
<== NOT EXECUTED
40040e4c: 88 10 e3 f4 or %g3, 0x3f4, %g4 ! fff4 <_Configuration_Interrupt_stack_size+0xeff4>
<== NOT EXECUTED
40040e50: 80 a0 80 04 cmp %g2, %g4
<== NOT EXECUTED
40040e54: 38 80 00 25 bgu,a 40040ee8 <fat_init_volume_info+0x5d0>
<== NOT EXECUTED
40040e58: 07 03 ff ff sethi %hi(0xffffc00), %g3
<== NOT EXECUTED
vol->mask = FAT_FAT16_MASK;
40040e5c: 84 10 e3 ff or %g3, 0x3ff, %g2 ! fffffff <RAM_SIZE+0xfbfffff>
<== NOT EXECUTED
vol->type = FAT_FAT16;
40040e60: 88 10 20 02 mov 2, %g4
<== NOT EXECUTED
vol->eoc_val = FAT_FAT16_EOC;
40040e64: 86 10 e3 f8 or %g3, 0x3f8, %g3
<== NOT EXECUTED
vol->type = FAT_FAT16;
40040e68: c8 2c a0 16 stb %g4, [ %l2 + 0x16 ]
<== NOT EXECUTED
vol->mask = FAT_FAT16_MASK;
40040e6c: c4 24 a0 18 st %g2, [ %l2 + 0x18 ]
<== NOT EXECUTED
40040e70: 10 bf ff 95 b 40040cc4 <fat_init_volume_info+0x3ac>
<== NOT EXECUTED
40040e74: c6 24 a0 1c st %g3, [ %l2 + 0x1c ]
<== NOT EXECUTED
vol->tot_secs = FAT_GET_BR_TOTAL_SECTORS_NUM32(boot_rec);
40040e78: c2 0f bf 83 ldub [ %fp + -125 ], %g1
<== NOT EXECUTED
40040e7c: bb 28 60 08 sll %g1, 8, %i5
<== NOT EXECUTED
40040e80: c2 0f bf 7f ldub [ %fp + -129 ], %g1
<== NOT EXECUTED
40040e84: 85 28 60 10 sll %g1, 0x10, %g2
<== NOT EXECUTED
40040e88: c2 0f bf 7b ldub [ %fp + -133 ], %g1
<== NOT EXECUTED
40040e8c: a9 28 60 18 sll %g1, 0x18, %l4
<== NOT EXECUTED
40040e90: c2 0f bf 87 ldub [ %fp + -121 ], %g1
<== NOT EXECUTED
40040e94: ba 17 40 02 or %i5, %g2, %i5
<== NOT EXECUTED
40040e98: ba 17 40 01 or %i5, %g1, %i5
<== NOT EXECUTED
40040e9c: a8 17 40 14 or %i5, %l4, %l4
<== NOT EXECUTED
40040ea0: 10 bf ff 7a b 40040c88 <fat_init_volume_info+0x370>
<== NOT EXECUTED
40040ea4: e8 24 a0 38 st %l4, [ %l2 + 0x38 ]
<== NOT EXECUTED
vol->fat_length = FAT_GET_BR_SECTORS_PER_FAT32(boot_rec);
40040ea8: c2 0f bf 73 ldub [ %fp + -141 ], %g1
<== NOT EXECUTED
40040eac: ab 28 60 08 sll %g1, 8, %l5
<== NOT EXECUTED
40040eb0: c2 0f bf 6f ldub [ %fp + -145 ], %g1
<== NOT EXECUTED
40040eb4: 87 28 60 10 sll %g1, 0x10, %g3
<== NOT EXECUTED
40040eb8: c2 0f bf 6b ldub [ %fp + -149 ], %g1
<== NOT EXECUTED
40040ebc: 85 28 60 18 sll %g1, 0x18, %g2
<== NOT EXECUTED
40040ec0: c2 0f bf 77 ldub [ %fp + -137 ], %g1
<== NOT EXECUTED
40040ec4: aa 15 40 03 or %l5, %g3, %l5
<== NOT EXECUTED
40040ec8: aa 15 40 01 or %l5, %g1, %l5
<== NOT EXECUTED
40040ecc: aa 15 40 02 or %l5, %g2, %l5
<== NOT EXECUTED
40040ed0: 10 bf ff 62 b 40040c58 <fat_init_volume_info+0x340>
<== NOT EXECUTED
40040ed4: ea 24 a0 24 st %l5, [ %l2 + 0x24 ]
<== NOT EXECUTED
40040ed8: 7f ff fc e0 call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
40040edc: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
vol->afat_loc = vol->fat_loc + vol->fat_length * vol->afat;
40040ee0: 10 bf ff 84 b 40040cf0 <fat_init_volume_info+0x3d8>
<== NOT EXECUTED
40040ee4: c4 0c a0 64 ldub [ %l2 + 0x64 ], %g2
<== NOT EXECUTED
else if ( vol->data_cls < FAT_FAT32_MASK - 1 )
40040ee8: 88 10 e3 fd or %g3, 0x3fd, %g4
<== NOT EXECUTED
40040eec: 80 a0 80 04 cmp %g2, %g4
<== NOT EXECUTED
40040ef0: 18 bf ff 25 bgu 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040ef4: c2 0f bf 57 ldub [ %fp + -169 ], %g1
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040ef8: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
40040efc: c2 0f bf 63 ldub [ %fp + -157 ], %g1
<== NOT EXECUTED
40040f00: 89 28 60 10 sll %g1, 0x10, %g4
<== NOT EXECUTED
40040f04: c2 0f bf 5f ldub [ %fp + -161 ], %g1
<== NOT EXECUTED
vol->mask = FAT_FAT32_MASK;
40040f08: b8 10 e3 ff or %g3, 0x3ff, %i4
<== NOT EXECUTED
vol->eoc_val = FAT_FAT32_EOC;
40040f0c: ba 10 e3 f8 or %g3, 0x3f8, %i5
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040f10: f6 0f bf 5b ldub [ %fp + -165 ], %i3
<== NOT EXECUTED
40040f14: 87 28 60 18 sll %g1, 0x18, %g3
<== NOT EXECUTED
vol->mirror = FAT_GET_BR_EXT_FLAGS(boot_rec) & FAT_BR_EXT_FLAGS_MIRROR;
40040f18: c2 0f bf 67 ldub [ %fp + -153 ], %g1
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040f1c: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
vol->mask = FAT_FAT32_MASK;
40040f20: f8 24 a0 18 st %i4, [ %l2 + 0x18 ]
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040f24: 84 10 80 1b or %g2, %i3, %g2
<== NOT EXECUTED
vol->mirror = FAT_GET_BR_EXT_FLAGS(boot_rec) & FAT_BR_EXT_FLAGS_MIRROR;
40040f28: 88 08 7f 80 and %g1, -128, %g4
<== NOT EXECUTED
vol->type = FAT_FAT32;
40040f2c: b6 10 20 04 mov 4, %i3
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040f30: 84 10 80 03 or %g2, %g3, %g2
<== NOT EXECUTED
vol->type = FAT_FAT32;
40040f34: f6 2c a0 16 stb %i3, [ %l2 + 0x16 ]
<== NOT EXECUTED
if (vol->mirror)
40040f38: 80 88 60 80 btst 0x80, %g1
<== NOT EXECUTED
vol->eoc_val = FAT_FAT32_EOC;
40040f3c: fa 24 a0 1c st %i5, [ %l2 + 0x1c ]
<== NOT EXECUTED
vol->rdir_cl = FAT_GET_BR_FAT32_ROOT_CLUSTER(boot_rec);
40040f40: c4 24 a0 44 st %g2, [ %l2 + 0x44 ]
<== NOT EXECUTED
if (vol->mirror)
40040f44: 02 80 00 42 be 4004104c <fat_init_volume_info+0x734>
<== NOT EXECUTED
40040f48: c8 2c a0 5c stb %g4, [ %l2 + 0x5c ]
<== NOT EXECUTED
vol->afat = FAT_GET_BR_EXT_FLAGS(boot_rec) & FAT_BR_EXT_FLAGS_FAT_NUM;
40040f4c: c2 0f bf 67 ldub [ %fp + -153 ], %g1
<== NOT EXECUTED
40040f50: 82 08 60 0f and %g1, 0xf, %g1
<== NOT EXECUTED
40040f54: c2 2c a0 64 stb %g1, [ %l2 + 0x64 ]
<== NOT EXECUTED
vol->info_sec = FAT_GET_BR_FAT32_FS_INFO_SECTOR(boot_rec);
40040f58: c2 0f bf 4f ldub [ %fp + -177 ], %g1
<== NOT EXECUTED
40040f5c: 93 28 60 08 sll %g1, 8, %o1
<== NOT EXECUTED
40040f60: c2 0f bf 53 ldub [ %fp + -173 ], %g1
<== NOT EXECUTED
40040f64: 92 12 40 01 or %o1, %g1, %o1
<== NOT EXECUTED
if( vol->info_sec == 0 )
40040f68: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
40040f6c: 02 bf ff 06 be 40040b84 <fat_init_volume_info+0x26c>
<== NOT EXECUTED
40040f70: d2 34 a0 48 sth %o1, [ %l2 + 0x48 ]
<== NOT EXECUTED
ret = _fat_block_read(fs_info, vol->info_sec , 0,
40040f74: 96 10 20 04 mov 4, %o3
<== NOT EXECUTED
40040f78: 98 07 bf 90 add %fp, -112, %o4
<== NOT EXECUTED
40040f7c: 94 10 20 00 clr %o2
<== NOT EXECUTED
40040f80: 7f ff fd 65 call 40040514 <_fat_block_read>
<== NOT EXECUTED
40040f84: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if ( ret < 0 )
40040f88: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040f8c: 06 80 00 56 bl 400410e4 <fat_init_volume_info+0x7cc>
<== NOT EXECUTED
40040f90: c6 0f bf 93 ldub [ %fp + -109 ], %g3
<== NOT EXECUTED
if (FAT_GET_FSINFO_LEAD_SIGNATURE(fs_info_sector) !=
40040f94: 87 28 e0 18 sll %g3, 0x18, %g3
<== NOT EXECUTED
40040f98: c4 0f bf 91 ldub [ %fp + -111 ], %g2
<== NOT EXECUTED
40040f9c: c8 0f bf 92 ldub [ %fp + -110 ], %g4
<== NOT EXECUTED
40040fa0: fa 0f bf 90 ldub [ %fp + -112 ], %i5
<== NOT EXECUTED
40040fa4: 85 28 a0 08 sll %g2, 8, %g2
<== NOT EXECUTED
40040fa8: 89 29 20 10 sll %g4, 0x10, %g4
<== NOT EXECUTED
40040fac: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
40040fb0: 84 10 80 1d or %g2, %i5, %g2
<== NOT EXECUTED
40040fb4: 84 10 80 03 or %g2, %g3, %g2
<== NOT EXECUTED
40040fb8: 07 10 58 54 sethi %hi(0x41615000), %g3
<== NOT EXECUTED
40040fbc: 86 10 e2 52 or %g3, 0x252, %g3 ! 41615252 <RAM_END+0x1215252>
<== NOT EXECUTED
40040fc0: 80 a0 80 03 cmp %g2, %g3
<== NOT EXECUTED
40040fc4: 12 bf fe ea bne 40040b6c <fat_init_volume_info+0x254>
<== NOT EXECUTED
40040fc8: 98 07 bf 90 add %fp, -112, %o4
<== NOT EXECUTED
ret = _fat_block_read(fs_info, vol->info_sec , FAT_FSI_INFO,
40040fcc: d2 14 a0 48 lduh [ %l2 + 0x48 ], %o1
<== NOT EXECUTED
40040fd0: 96 10 20 0c mov 0xc, %o3
<== NOT EXECUTED
40040fd4: 94 10 21 e4 mov 0x1e4, %o2
<== NOT EXECUTED
40040fd8: 7f ff fd 4f call 40040514 <_fat_block_read>
<== NOT EXECUTED
40040fdc: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if ( ret < 0 )
40040fe0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40040fe4: 06 80 00 3a bl 400410cc <fat_init_volume_info+0x7b4>
<== NOT EXECUTED
40040fe8: c6 0f bf 95 ldub [ %fp + -107 ], %g3
<== NOT EXECUTED
FAT_GET_FSINFO_FREE_CLUSTER_COUNT(fs_info_sector);
40040fec: f6 0f bf 96 ldub [ %fp + -106 ], %i3
<== NOT EXECUTED
40040ff0: f2 0f bf 94 ldub [ %fp + -108 ], %i1
<== NOT EXECUTED
40040ff4: f8 0f bf 97 ldub [ %fp + -105 ], %i4
<== NOT EXECUTED
FAT_GET_FSINFO_NEXT_FREE_CLUSTER(fs_info_sector);
40040ff8: c4 0f bf 99 ldub [ %fp + -103 ], %g2
<== NOT EXECUTED
40040ffc: fa 0f bf 9a ldub [ %fp + -102 ], %i5
<== NOT EXECUTED
40041000: f4 0f bf 98 ldub [ %fp + -104 ], %i2
<== NOT EXECUTED
40041004: c8 0f bf 9b ldub [ %fp + -101 ], %g4
<== NOT EXECUTED
FAT_GET_FSINFO_FREE_CLUSTER_COUNT(fs_info_sector);
40041008: 87 28 e0 08 sll %g3, 8, %g3
<== NOT EXECUTED
4004100c: b7 2e e0 10 sll %i3, 0x10, %i3
<== NOT EXECUTED
40041010: b9 2f 20 18 sll %i4, 0x18, %i4
<== NOT EXECUTED
40041014: 86 10 c0 1b or %g3, %i3, %g3
<== NOT EXECUTED
FAT_GET_FSINFO_NEXT_FREE_CLUSTER(fs_info_sector);
40041018: 85 28 a0 08 sll %g2, 8, %g2
<== NOT EXECUTED
FAT_GET_FSINFO_FREE_CLUSTER_COUNT(fs_info_sector);
4004101c: 86 10 c0 19 or %g3, %i1, %g3
<== NOT EXECUTED
FAT_GET_FSINFO_NEXT_FREE_CLUSTER(fs_info_sector);
40041020: bb 2f 60 10 sll %i5, 0x10, %i5
<== NOT EXECUTED
FAT_GET_FSINFO_FREE_CLUSTER_COUNT(fs_info_sector);
40041024: 86 10 c0 1c or %g3, %i4, %g3
<== NOT EXECUTED
FAT_GET_FSINFO_NEXT_FREE_CLUSTER(fs_info_sector);
40041028: 84 10 80 1d or %g2, %i5, %g2
<== NOT EXECUTED
4004102c: 89 29 20 18 sll %g4, 0x18, %g4
<== NOT EXECUTED
40041030: 84 10 80 1a or %g2, %i2, %g2
<== NOT EXECUTED
vol->free_cls_in_fs_info =
40041034: c6 24 a0 50 st %g3, [ %l2 + 0x50 ]
<== NOT EXECUTED
FAT_GET_FSINFO_NEXT_FREE_CLUSTER(fs_info_sector);
40041038: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
vol->free_cls = vol->free_cls_in_fs_info;
4004103c: c6 24 a0 4c st %g3, [ %l2 + 0x4c ]
<== NOT EXECUTED
vol->next_cl_in_fs_info =
40041040: c4 24 a0 58 st %g2, [ %l2 + 0x58 ]
<== NOT EXECUTED
40041044: 10 bf ff 26 b 40040cdc <fat_init_volume_info+0x3c4>
<== NOT EXECUTED
40041048: c4 24 a0 54 st %g2, [ %l2 + 0x54 ]
<== NOT EXECUTED
vol->afat = 0;
4004104c: 10 bf ff c3 b 40040f58 <fat_init_volume_info+0x640>
<== NOT EXECUTED
40041050: c0 2c a0 64 clrb [ %l2 + 0x64 ]
<== NOT EXECUTED
close(vol->fd);
40041054: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
40041058: 7f ff 28 c5 call 4000b36c <close>
<== NOT EXECUTED
4004105c: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENXIO);
40041060: 40 00 6e 2d call 4005c914 <__errno>
<== NOT EXECUTED
40041064: b0 10 3f ff mov -1, %i0 ! ffffffff <RAM_END+0xbfbfffff>
<== NOT EXECUTED
40041068: 82 10 20 06 mov 6, %g1
<== NOT EXECUTED
4004106c: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40041070: 81 c7 e0 08 ret
<== NOT EXECUTED
40041074: 81 e8 00 00 restore
<== NOT EXECUTED
close(vol->fd);
40041078: 7f ff 28 bd call 4000b36c <close>
<== NOT EXECUTED
4004107c: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( EIO );
40041080: 40 00 6e 25 call 4005c914 <__errno>
<== NOT EXECUTED
40041084: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
40041088: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4004108c: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40041090: 81 c7 e0 08 ret
<== NOT EXECUTED
40041094: 81 e8 00 00 restore
<== NOT EXECUTED
close(vol->fd);
40041098: 7f ff 28 b5 call 4000b36c <close>
<== NOT EXECUTED
4004109c: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
free(fs_info->vhash);
400410a0: 7f ff 29 78 call 4000b680 <free>
<== NOT EXECUTED
400410a4: d0 04 a0 74 ld [ %l2 + 0x74 ], %o0
<== NOT EXECUTED
free(fs_info->rhash);
400410a8: d0 04 a0 78 ld [ %l2 + 0x78 ], %o0
<== NOT EXECUTED
free(fs_info->uino);
400410ac: 7f ff 29 75 call 4000b680 <free>
<== NOT EXECUTED
400410b0: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( ENOMEM );
400410b4: 40 00 6e 18 call 4005c914 <__errno>
<== NOT EXECUTED
400410b8: 01 00 00 00 nop
<== NOT EXECUTED
400410bc: 82 10 20 0c mov 0xc, %g1 ! c <_TLS_Alignment+0xb>
<== NOT EXECUTED
400410c0: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
400410c4: 81 c7 e0 08 ret
<== NOT EXECUTED
400410c8: 81 e8 00 00 restore
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY)
400410cc: c4 0c a0 91 ldub [ %l2 + 0x91 ], %g2
<== NOT EXECUTED
400410d0: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
400410d4: 02 80 00 04 be 400410e4 <fat_init_volume_info+0x7cc>
<== NOT EXECUTED
400410d8: 01 00 00 00 nop
<== NOT EXECUTED
400410dc: 7f ff fc 5f call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
400410e0: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
close(vol->fd);
400410e4: 7f ff 28 a2 call 4000b36c <close>
<== NOT EXECUTED
400410e8: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
return -1;
400410ec: 81 c7 e0 08 ret
<== NOT EXECUTED
400410f0: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
close(vol->fd);
400410f4: 7f ff 28 9e call 4000b36c <close>
<== NOT EXECUTED
400410f8: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
free(fs_info->vhash);
400410fc: 10 bf ff ec b 400410ac <fat_init_volume_info+0x794>
<== NOT EXECUTED
40041100: d0 04 a0 74 ld [ %l2 + 0x74 ], %o0
<== NOT EXECUTED
close(vol->fd);
40041104: 7f ff 28 9a call 4000b36c <close>
<== NOT EXECUTED
40041108: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
free(fs_info->vhash);
4004110c: 7f ff 29 5d call 4000b680 <free>
<== NOT EXECUTED
40041110: d0 04 a0 74 ld [ %l2 + 0x74 ], %o0
<== NOT EXECUTED
free(fs_info->rhash);
40041114: 7f ff 29 5b call 4000b680 <free>
<== NOT EXECUTED
40041118: d0 04 a0 78 ld [ %l2 + 0x78 ], %o0
<== NOT EXECUTED
free(fs_info->uino);
4004111c: 10 bf ff e4 b 400410ac <fat_init_volume_info+0x794>
<== NOT EXECUTED
40041120: d0 04 a0 7c ld [ %l2 + 0x7c ], %o0
<== NOT EXECUTED
close(vol->fd);
40041124: 7f ff 28 92 call 4000b36c <close>
<== NOT EXECUTED
40041128: d0 04 a0 68 ld [ %l2 + 0x68 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( ENOMEM );
4004112c: 40 00 6d fa call 4005c914 <__errno>
<== NOT EXECUTED
40041130: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
40041134: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
40041138: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4004113c: 81 c7 e0 08 ret
<== NOT EXECUTED
40041140: 81 e8 00 00 restore
<== NOT EXECUTED
40041540 <fat_ino_is_unique>:
fat_fs_info_t *fs_info,
uint32_t ino
)
{
return (ino >= fs_info->uino_base);
40041540: c2 02 20 88 ld [ %o0 + 0x88 ], %g1
<== NOT EXECUTED
40041544: 80 a2 40 01 cmp %o1, %g1
<== NOT EXECUTED
}
40041548: 81 c3 e0 08 retl
<== NOT EXECUTED
4004154c: 90 60 3f ff subx %g0, -1, %o0
<== NOT EXECUTED
4003f1f8 <fat_scan_fat_for_free_clusters>:
{
4003f1f8: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t data_cls_val = fs_info->vol.data_cls + 2;
4003f1fc: c2 06 20 40 ld [ %i0 + 0x40 ], %g1
<== NOT EXECUTED
if (fs_info->vol.next_cl - 2 < fs_info->vol.data_cls)
4003f200: e0 06 20 54 ld [ %i0 + 0x54 ], %l0
<== NOT EXECUTED
4003f204: 84 04 3f fe add %l0, -2, %g2
<== NOT EXECUTED
{
4003f208: a4 10 00 18 mov %i0, %l2
<== NOT EXECUTED
if (fs_info->vol.next_cl - 2 < fs_info->vol.data_cls)
4003f20c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
4003f210: 18 80 00 03 bgu 4003f21c <fat_scan_fat_for_free_clusters+0x24>
<== NOT EXECUTED
4003f214: a6 00 60 02 add %g1, 2, %l3
<== NOT EXECUTED
uint32_t cl4find = 2;
4003f218: a0 10 20 02 mov 2, %l0
<== NOT EXECUTED
*cls_added = 0;
4003f21c: c0 26 c0 00 clr [ %i3 ]
<== NOT EXECUTED
while (*cls_added != count && i < data_cls_val)
4003f220: 80 a4 e0 02 cmp %l3, 2
<== NOT EXECUTED
4003f224: 18 80 00 03 bgu 4003f230 <fat_scan_fat_for_free_clusters+0x38>
<== NOT EXECUTED
4003f228: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4003f22c: 82 10 20 00 clr %g1
<== NOT EXECUTED
4003f230: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
4003f234: 02 80 00 50 be 4003f374 <fat_scan_fat_for_free_clusters+0x17c>
<== NOT EXECUTED
4003f238: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4003f23c: 02 80 00 4e be 4003f374 <fat_scan_fat_for_free_clusters+0x17c>
<== NOT EXECUTED
4003f240: a2 10 20 02 mov 2, %l1
<== NOT EXECUTED
uint32_t save_cln = FAT_UNDEFINED_VALUE;
4003f244: 10 80 00 19 b 4003f2a8 <fat_scan_fat_for_free_clusters+0xb0>
<== NOT EXECUTED
4003f248: a8 10 3f ff mov -1, %l4
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, cl4find, FAT_GENFAT_EOC);
4003f24c: 94 10 3f ff mov -1, %o2
<== NOT EXECUTED
4003f250: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
4003f254: 7f ff ff 0f call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003f258: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4003f25c: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f260: 12 80 00 38 bne 4003f340 <fat_scan_fat_for_free_clusters+0x148>
<== NOT EXECUTED
4003f264: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
if (zero_fill)
4003f268: 32 80 00 38 bne,a 4003f348 <fat_scan_fat_for_free_clusters+0x150>
<== NOT EXECUTED
4003f26c: d6 04 a0 08 ld [ %l2 + 8 ], %o3
<== NOT EXECUTED
(*cls_added)++;
4003f270: c2 06 c0 00 ld [ %i3 ], %g1
<== NOT EXECUTED
4003f274: 82 00 60 01 inc %g1
<== NOT EXECUTED
4003f278: c2 26 c0 00 st %g1, [ %i3 ]
<== NOT EXECUTED
4003f27c: a8 10 00 10 mov %l0, %l4
<== NOT EXECUTED
cl4find++;
4003f280: a0 04 20 01 inc %l0
<== NOT EXECUTED
if (cl4find >= data_cls_val)
4003f284: 80 a4 c0 10 cmp %l3, %l0
<== NOT EXECUTED
4003f288: 18 80 00 03 bgu 4003f294 <fat_scan_fat_for_free_clusters+0x9c>
<== NOT EXECUTED
4003f28c: a2 04 60 01 inc %l1
<== NOT EXECUTED
cl4find = 2;
4003f290: a0 10 20 02 mov 2, %l0
<== NOT EXECUTED
while (*cls_added != count && i < data_cls_val)
4003f294: 80 a6 80 01 cmp %i2, %g1
<== NOT EXECUTED
4003f298: 02 80 00 38 be 4003f378 <fat_scan_fat_for_free_clusters+0x180>
<== NOT EXECUTED
4003f29c: 80 a4 40 13 cmp %l1, %l3
<== NOT EXECUTED
4003f2a0: 3a 80 00 37 bcc,a 4003f37c <fat_scan_fat_for_free_clusters+0x184>
<== NOT EXECUTED
4003f2a4: e8 27 00 00 st %l4, [ %i4 ]
<== NOT EXECUTED
uint32_t next_cln = 0;
4003f2a8: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
rc = fat_get_fat_cluster(fs_info, cl4find, &next_cln);
4003f2ac: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
4003f2b0: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
4003f2b4: 7f ff fe 84 call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
4003f2b8: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if (*cls_added != 0)
4003f2bc: c2 06 c0 00 ld [ %i3 ], %g1
<== NOT EXECUTED
if ( rc != RC_OK )
4003f2c0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4003f2c4: 12 80 00 3a bne 4003f3ac <fat_scan_fat_for_free_clusters+0x1b4>
<== NOT EXECUTED
4003f2c8: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
if (next_cln == FAT_GENFAT_FREE)
4003f2cc: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003f2d0: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4003f2d4: 32 bf ff ec bne,a 4003f284 <fat_scan_fat_for_free_clusters+0x8c>
<== NOT EXECUTED
4003f2d8: a0 04 20 01 inc %l0
<== NOT EXECUTED
if (*cls_added == 0)
4003f2dc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f2e0: 22 bf ff db be,a 4003f24c <fat_scan_fat_for_free_clusters+0x54>
<== NOT EXECUTED
4003f2e4: e0 26 40 00 st %l0, [ %i1 ]
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, cl4find, FAT_GENFAT_EOC);
4003f2e8: 94 10 3f ff mov -1, %o2
<== NOT EXECUTED
4003f2ec: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
4003f2f0: 7f ff fe e8 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003f2f4: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4003f2f8: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f2fc: 12 80 00 2f bne 4003f3b8 <fat_scan_fat_for_free_clusters+0x1c0>
<== NOT EXECUTED
4003f300: 94 10 00 10 mov %l0, %o2
<== NOT EXECUTED
rc = fat_set_fat_cluster(fs_info, save_cln, cl4find);
4003f304: 92 10 00 14 mov %l4, %o1
<== NOT EXECUTED
4003f308: 7f ff fe e2 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003f30c: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4003f310: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f314: 02 bf ff d5 be 4003f268 <fat_scan_fat_for_free_clusters+0x70>
<== NOT EXECUTED
4003f318: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
fat_free_fat_clusters_chain(fs_info, (*chain));
4003f31c: d2 06 40 00 ld [ %i1 ], %o1
<== NOT EXECUTED
4003f320: 7f ff ff 7e call 4003f118 <fat_free_fat_clusters_chain>
<== NOT EXECUTED
4003f324: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
(void) fat_set_fat_cluster(fs_info, cl4find, FAT_GENFAT_FREE);
4003f328: 94 10 20 00 clr %o2
<== NOT EXECUTED
4003f32c: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
4003f330: 7f ff fe d8 call 4003ee90 <fat_set_fat_cluster>
<== NOT EXECUTED
4003f334: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
fat_buf_release(fs_info);
4003f338: 40 00 04 6e call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003f33c: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
return rc;
4003f340: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f344: 81 e8 00 00 restore
<== NOT EXECUTED
ssize_t bytes_written =
4003f348: 98 10 20 00 clr %o4
<== NOT EXECUTED
4003f34c: 94 10 20 00 clr %o2
<== NOT EXECUTED
4003f350: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
4003f354: 40 00 04 bb call 40040640 <fat_cluster_set>
<== NOT EXECUTED
4003f358: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if (fs_info->vol.bpc != bytes_written)
4003f35c: c2 04 a0 08 ld [ %l2 + 8 ], %g1
<== NOT EXECUTED
4003f360: 80 a0 40 08 cmp %g1, %o0
<== NOT EXECUTED
4003f364: 22 bf ff c4 be,a 4003f274 <fat_scan_fat_for_free_clusters+0x7c>
<== NOT EXECUTED
4003f368: c2 06 c0 00 ld [ %i3 ], %g1
<== NOT EXECUTED
rc = -1;
4003f36c: 10 bf ff ec b 4003f31c <fat_scan_fat_for_free_clusters+0x124>
<== NOT EXECUTED
4003f370: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
uint32_t save_cln = FAT_UNDEFINED_VALUE;
4003f374: a8 10 3f ff mov -1, %l4
<== NOT EXECUTED
*last_cl = save_cln;
4003f378: e8 27 00 00 st %l4, [ %i4 ]
<== NOT EXECUTED
fs_info->vol.next_cl = save_cln;
4003f37c: e8 24 a0 54 st %l4, [ %l2 + 0x54 ]
<== NOT EXECUTED
if (fs_info->vol.free_cls != FAT_UNDEFINED_VALUE)
4003f380: c2 04 a0 4c ld [ %l2 + 0x4c ], %g1
<== NOT EXECUTED
4003f384: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
4003f388: 02 80 00 05 be 4003f39c <fat_scan_fat_for_free_clusters+0x1a4>
<== NOT EXECUTED
4003f38c: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
fs_info->vol.free_cls -= (*cls_added);
4003f390: c4 06 c0 00 ld [ %i3 ], %g2
<== NOT EXECUTED
4003f394: 82 20 40 02 sub %g1, %g2, %g1
<== NOT EXECUTED
4003f398: c2 24 a0 4c st %g1, [ %l2 + 0x4c ]
<== NOT EXECUTED
fat_buf_release(fs_info);
4003f39c: 40 00 04 55 call 400404f0 <fat_buf_release>
<== NOT EXECUTED
4003f3a0: b0 10 20 00 clr %i0
<== NOT EXECUTED
}
4003f3a4: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f3a8: 81 e8 00 00 restore
<== NOT EXECUTED
if (*cls_added != 0)
4003f3ac: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003f3b0: 02 80 00 05 be 4003f3c4 <fat_scan_fat_for_free_clusters+0x1cc>
<== NOT EXECUTED
4003f3b4: 01 00 00 00 nop
<== NOT EXECUTED
fat_free_fat_clusters_chain(fs_info, (*chain));
4003f3b8: d2 06 40 00 ld [ %i1 ], %o1
<== NOT EXECUTED
4003f3bc: 7f ff ff 57 call 4003f118 <fat_free_fat_clusters_chain>
<== NOT EXECUTED
4003f3c0: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
return rc;
4003f3c4: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f3c8: 81 e8 00 00 restore
<== NOT EXECUTED
40040594 <fat_sector_write>:
fat_fs_info_t *fs_info,
uint32_t start,
uint32_t offset,
uint32_t count,
const void *buff)
{
40040594: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
uint32_t sec_num = start;
uint32_t ofs = offset;
uint8_t *sec_buf;
uint32_t c = 0;
while(count > 0)
40040598: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
4004059c: 02 80 00 27 be 40040638 <fat_sector_write+0xa4>
<== NOT EXECUTED
400405a0: a0 10 20 00 clr %l0
<== NOT EXECUTED
fs_info->c.modified = true;
400405a4: 10 80 00 13 b 400405f0 <fat_sector_write+0x5c>
<== NOT EXECUTED
400405a8: a2 10 20 01 mov 1, %l1
<== NOT EXECUTED
c = MIN(count, (fs_info->vol.bps - ofs));
if (c == fs_info->vol.bytes_per_block)
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &sec_buf);
else
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_READ, &sec_buf);
400405ac: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
400405b0: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
400405b4: 7f ff ff 9f call 40040430 <fat_buf_access>
<== NOT EXECUTED
400405b8: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
return -1;
memcpy((sec_buf + ofs), (buff + cmpltd), c);
400405bc: 92 07 00 10 add %i4, %l0, %o1
<== NOT EXECUTED
if (rc != RC_OK)
400405c0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
400405c4: 12 80 00 1c bne 40040634 <fat_sector_write+0xa0>
<== NOT EXECUTED
400405c8: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
memcpy((sec_buf + ofs), (buff + cmpltd), c);
400405cc: d0 07 bf fc ld [ %fp + -4 ], %o0
<== NOT EXECUTED
400405d0: 40 00 82 80 call 40060fd0 <memcpy>
<== NOT EXECUTED
400405d4: 90 02 00 1a add %o0, %i2, %o0
<== NOT EXECUTED
400405d8: e2 2e 20 90 stb %l1, [ %i0 + 0x90 ]
<== NOT EXECUTED
fat_buf_mark_modified(fs_info);
count -= c;
cmpltd +=c;
400405dc: a0 04 00 1d add %l0, %i5, %l0
<== NOT EXECUTED
sec_num++;
400405e0: b2 06 60 01 inc %i1
<== NOT EXECUTED
while(count > 0)
400405e4: b6 a6 c0 1d subcc %i3, %i5, %i3
<== NOT EXECUTED
400405e8: 02 80 00 14 be 40040638 <fat_sector_write+0xa4>
<== NOT EXECUTED
400405ec: b4 10 20 00 clr %i2
<== NOT EXECUTED
c = MIN(count, (fs_info->vol.bps - ofs));
400405f0: fa 16 00 00 lduh [ %i0 ], %i5
<== NOT EXECUTED
400405f4: ba 27 40 1a sub %i5, %i2, %i5
<== NOT EXECUTED
400405f8: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
400405fc: 38 80 00 02 bgu,a 40040604 <fat_sector_write+0x70>
<== NOT EXECUTED
40040600: ba 10 00 1b mov %i3, %i5
<== NOT EXECUTED
if (c == fs_info->vol.bytes_per_block)
40040604: c2 06 20 10 ld [ %i0 + 0x10 ], %g1
<== NOT EXECUTED
40040608: 80 a0 40 1d cmp %g1, %i5
<== NOT EXECUTED
4004060c: 12 bf ff e8 bne 400405ac <fat_sector_write+0x18>
<== NOT EXECUTED
40040610: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec_num, FAT_OP_TYPE_GET, &sec_buf);
40040614: 94 10 20 02 mov 2, %o2
<== NOT EXECUTED
40040618: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4004061c: 7f ff ff 85 call 40040430 <fat_buf_access>
<== NOT EXECUTED
40040620: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
memcpy((sec_buf + ofs), (buff + cmpltd), c);
40040624: 92 07 00 10 add %i4, %l0, %o1
<== NOT EXECUTED
if (rc != RC_OK)
40040628: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004062c: 02 bf ff e8 be 400405cc <fat_sector_write+0x38>
<== NOT EXECUTED
40040630: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
return -1;
40040634: a0 10 3f ff mov -1, %l0
<== NOT EXECUTED
ofs = 0;
}
return cmpltd;
}
40040638: 81 c7 e0 08 ret
<== NOT EXECUTED
4004063c: 91 e8 00 10 restore %g0, %l0, %o0
<== NOT EXECUTED
4003ee90 <fat_set_fat_cluster>:
fat_set_fat_cluster(
fat_fs_info_t *fs_info,
uint32_t cln,
uint32_t in_val
)
{
4003ee90: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
int rc = RC_OK;
uint32_t sec = 0;
uint32_t ofs = 0;
uint16_t fat16_clv = 0;
uint32_t fat32_clv = 0;
uint8_t *sec_buf = NULL;
4003ee94: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
/* sanity check */
if ( (cln < 2) || (cln > (fs_info->vol.data_cls + 1)) )
4003ee98: 80 a6 60 01 cmp %i1, 1
<== NOT EXECUTED
4003ee9c: 08 80 00 74 bleu 4003f06c <fat_set_fat_cluster+0x1dc>
<== NOT EXECUTED
4003eea0: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
4003eea4: c2 06 20 40 ld [ %i0 + 0x40 ], %g1
<== NOT EXECUTED
4003eea8: 82 00 60 01 inc %g1
<== NOT EXECUTED
4003eeac: 80 a0 40 19 cmp %g1, %i1
<== NOT EXECUTED
4003eeb0: 0a 80 00 6f bcs 4003f06c <fat_set_fat_cluster+0x1dc>
<== NOT EXECUTED
4003eeb4: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003eeb8: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
4003eebc: 80 88 60 01 btst 1, %g1
<== NOT EXECUTED
4003eec0: 12 80 00 22 bne 4003ef48 <fat_set_fat_cluster+0xb8>
<== NOT EXECUTED
4003eec4: b7 36 60 01 srl %i1, 1, %i3
<== NOT EXECUTED
4003eec8: 80 88 60 02 btst 2, %g1
<== NOT EXECUTED
4003eecc: 02 80 00 03 be 4003eed8 <fat_set_fat_cluster+0x48>
<== NOT EXECUTED
4003eed0: a1 2e 60 02 sll %i1, 2, %l0
<== NOT EXECUTED
4003eed4: a1 2e 60 01 sll %i1, 1, %l0
<== NOT EXECUTED
4003eed8: f8 0f 60 02 ldub [ %i5 + 2 ], %i4
<== NOT EXECUTED
4003eedc: c2 07 60 60 ld [ %i5 + 0x60 ], %g1
<== NOT EXECUTED
4003eee0: b9 34 00 1c srl %l0, %i4, %i4
<== NOT EXECUTED
fs_info->vol.afat_loc;
ofs = FAT_FAT_OFFSET(fs_info->vol.type, cln) & (fs_info->vol.bps - 1);
4003eee4: f6 17 40 00 lduh [ %i5 ], %i3
<== NOT EXECUTED
sec = (FAT_FAT_OFFSET(fs_info->vol.type, cln) >> fs_info->vol.sec_log2) +
4003eee8: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec, FAT_OP_TYPE_READ, &sec_buf);
4003eeec: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003eef0: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003eef4: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4003eef8: 40 00 05 4e call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003eefc: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003ef00: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003ef04: 12 80 00 0f bne 4003ef40 <fat_set_fat_cluster+0xb0>
<== NOT EXECUTED
4003ef08: b6 06 ff ff add %i3, -1, %i3
<== NOT EXECUTED
return rc;
switch ( fs_info->vol.type )
4003ef0c: e2 0f 60 16 ldub [ %i5 + 0x16 ], %l1
<== NOT EXECUTED
4003ef10: 80 a4 60 02 cmp %l1, 2
<== NOT EXECUTED
4003ef14: 02 80 00 35 be 4003efe8 <fat_set_fat_cluster+0x158>
<== NOT EXECUTED
4003ef18: b6 0e c0 10 and %i3, %l0, %i3
<== NOT EXECUTED
4003ef1c: 80 a4 60 04 cmp %l1, 4
<== NOT EXECUTED
4003ef20: 02 80 00 26 be 4003efb8 <fat_set_fat_cluster+0x128>
<== NOT EXECUTED
4003ef24: 80 a4 60 01 cmp %l1, 1
<== NOT EXECUTED
4003ef28: 02 80 00 0a be 4003ef50 <fat_set_fat_cluster+0xc0>
<== NOT EXECUTED
4003ef2c: 80 8e 60 01 btst 1, %i1
<== NOT EXECUTED
fat_buf_mark_modified(fs_info);
break;
default:
rtems_set_errno_and_return_minus_one(EIO);
4003ef30: 40 00 76 79 call 4005c914 <__errno>
<== NOT EXECUTED
4003ef34: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003ef38: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4003ef3c: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
break;
}
return RC_OK;
}
4003ef40: 81 c7 e0 08 ret
<== NOT EXECUTED
4003ef44: 81 e8 00 00 restore
<== NOT EXECUTED
4003ef48: 10 bf ff e4 b 4003eed8 <fat_set_fat_cluster+0x48>
<== NOT EXECUTED
4003ef4c: a0 06 c0 19 add %i3, %i1, %l0
<== NOT EXECUTED
if ( FAT_CLUSTER_IS_ODD(cln) )
4003ef50: 02 80 00 30 be 4003f010 <fat_set_fat_cluster+0x180>
<== NOT EXECUTED
4003ef54: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*(sec_buf + ofs) &= 0x0F;
4003ef58: c4 08 40 1b ldub [ %g1 + %i3 ], %g2
<== NOT EXECUTED
4003ef5c: 84 08 a0 0f and %g2, 0xf, %g2
<== NOT EXECUTED
4003ef60: c4 28 40 1b stb %g2, [ %g1 + %i3 ]
<== NOT EXECUTED
fat16_clv = ((uint16_t )in_val) << FAT_FAT12_SHIFT;
4003ef64: 83 2e a0 04 sll %i2, 4, %g1
<== NOT EXECUTED
*(sec_buf + ofs) |= (uint8_t)(fat16_clv & 0x00F0);
4003ef68: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003ef6c: c6 08 80 1b ldub [ %g2 + %i3 ], %g3
<== NOT EXECUTED
4003ef70: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
4003ef74: c2 28 80 1b stb %g1, [ %g2 + %i3 ]
<== NOT EXECUTED
}
static inline void
fat_buf_mark_modified(fat_fs_info_t *fs_info)
{
fs_info->c.modified = true;
4003ef78: e2 2f 60 90 stb %l1, [ %i5 + 0x90 ]
<== NOT EXECUTED
if ( ofs == (fs_info->vol.bps - 1) )
4003ef7c: c2 17 40 00 lduh [ %i5 ], %g1
<== NOT EXECUTED
4003ef80: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
4003ef84: 80 a0 40 1b cmp %g1, %i3
<== NOT EXECUTED
4003ef88: 02 80 00 52 be 4003f0d0 <fat_set_fat_cluster+0x240>
<== NOT EXECUTED
4003ef8c: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*(sec_buf + ofs + 1) &= 0x00;
4003ef90: b6 06 e0 01 inc %i3
<== NOT EXECUTED
4003ef94: c0 28 40 1b clrb [ %g1 + %i3 ]
<== NOT EXECUTED
*(sec_buf + ofs + 1) |= (uint8_t )((fat16_clv & 0xFF00)>>8);
4003ef98: 83 2e a0 14 sll %i2, 0x14, %g1
<== NOT EXECUTED
4003ef9c: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003efa0: c6 08 80 1b ldub [ %g2 + %i3 ], %g3
<== NOT EXECUTED
4003efa4: 83 30 60 18 srl %g1, 0x18, %g1
<== NOT EXECUTED
4003efa8: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
4003efac: c2 28 80 1b stb %g1, [ %g2 + %i3 ]
<== NOT EXECUTED
4003efb0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003efb4: 81 e8 00 00 restore
<== NOT EXECUTED
fat32_clv = CT_LE_L((in_val & FAT_FAT32_MASK));
4003efb8: 11 3c 00 00 sethi %hi(0xf0000000), %o0
<== NOT EXECUTED
4003efbc: 40 00 ea b1 call 40079a80 <__bswapsi2>
<== NOT EXECUTED
4003efc0: 90 2e 80 08 andn %i2, %o0, %o0
<== NOT EXECUTED
*((uint32_t *)(sec_buf + ofs)) &= CT_LE_L(0xF0000000);
4003efc4: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003efc8: c2 00 80 1b ld [ %g2 + %i3 ], %g1
<== NOT EXECUTED
4003efcc: 82 08 60 f0 and %g1, 0xf0, %g1
<== NOT EXECUTED
*((uint32_t *)(sec_buf + ofs)) |= fat32_clv;
4003efd0: 90 10 40 08 or %g1, %o0, %o0
<== NOT EXECUTED
4003efd4: d0 20 80 1b st %o0, [ %g2 + %i3 ]
<== NOT EXECUTED
4003efd8: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4003efdc: c2 2f 60 90 stb %g1, [ %i5 + 0x90 ]
<== NOT EXECUTED
4003efe0: 81 c7 e0 08 ret
<== NOT EXECUTED
4003efe4: 81 e8 00 00 restore
<== NOT EXECUTED
(uint16_t )(CT_LE_W(in_val));
4003efe8: 83 2e a0 08 sll %i2, 8, %g1
<== NOT EXECUTED
4003efec: b5 2e a0 10 sll %i2, 0x10, %i2
<== NOT EXECUTED
4003eff0: b5 36 a0 18 srl %i2, 0x18, %i2
<== NOT EXECUTED
4003eff4: b4 10 40 1a or %g1, %i2, %i2
<== NOT EXECUTED
*((uint16_t *)(sec_buf + ofs)) =
4003eff8: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
4003effc: f4 30 40 1b sth %i2, [ %g1 + %i3 ]
<== NOT EXECUTED
4003f000: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4003f004: c2 2f 60 90 stb %g1, [ %i5 + 0x90 ]
<== NOT EXECUTED
4003f008: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f00c: 81 e8 00 00 restore
<== NOT EXECUTED
*(sec_buf + ofs) &= 0x00;
4003f010: c0 28 40 1b clrb [ %g1 + %i3 ]
<== NOT EXECUTED
fat16_clv = ((uint16_t )in_val) & FAT_FAT12_MASK;
4003f014: b4 0e af ff and %i2, 0xfff, %i2
<== NOT EXECUTED
*(sec_buf + ofs) |= (uint8_t)(fat16_clv & 0x00FF);
4003f018: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003f01c: c2 08 80 1b ldub [ %g2 + %i3 ], %g1
<== NOT EXECUTED
4003f020: 82 16 80 01 or %i2, %g1, %g1
<== NOT EXECUTED
4003f024: c2 28 80 1b stb %g1, [ %g2 + %i3 ]
<== NOT EXECUTED
4003f028: e2 2f 60 90 stb %l1, [ %i5 + 0x90 ]
<== NOT EXECUTED
if ( ofs == (fs_info->vol.bps - 1) )
4003f02c: c2 17 40 00 lduh [ %i5 ], %g1
<== NOT EXECUTED
4003f030: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
4003f034: 80 a0 40 1b cmp %g1, %i3
<== NOT EXECUTED
4003f038: 02 80 00 13 be 4003f084 <fat_set_fat_cluster+0x1f4>
<== NOT EXECUTED
4003f03c: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
*(sec_buf + ofs + 1) &= 0xF0;
4003f040: b6 06 e0 01 inc %i3
<== NOT EXECUTED
4003f044: c2 08 80 1b ldub [ %g2 + %i3 ], %g1
<== NOT EXECUTED
4003f048: 82 08 7f f0 and %g1, -16, %g1
<== NOT EXECUTED
4003f04c: c2 28 80 1b stb %g1, [ %g2 + %i3 ]
<== NOT EXECUTED
*(sec_buf + ofs+1) |= (uint8_t)((fat16_clv & 0xFF00)>>8);
4003f050: b5 36 a0 08 srl %i2, 8, %i2
<== NOT EXECUTED
4003f054: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
4003f058: c4 08 40 1b ldub [ %g1 + %i3 ], %g2
<== NOT EXECUTED
4003f05c: b4 16 80 02 or %i2, %g2, %i2
<== NOT EXECUTED
4003f060: f4 28 40 1b stb %i2, [ %g1 + %i3 ]
<== NOT EXECUTED
4003f064: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f068: 81 e8 00 00 restore
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
4003f06c: 40 00 76 2a call 4005c914 <__errno>
<== NOT EXECUTED
4003f070: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4003f074: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4003f078: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4003f07c: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f080: 81 e8 00 00 restore
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec + 1, FAT_OP_TYPE_READ,
4003f084: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003f088: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003f08c: 92 07 20 01 add %i4, 1, %o1
<== NOT EXECUTED
4003f090: 40 00 04 e8 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003f094: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003f098: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f09c: 12 bf ff a9 bne 4003ef40 <fat_set_fat_cluster+0xb0>
<== NOT EXECUTED
4003f0a0: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
*sec_buf &= 0xF0;
4003f0a4: c2 08 80 00 ldub [ %g2 ], %g1
<== NOT EXECUTED
4003f0a8: 82 08 7f f0 and %g1, -16, %g1
<== NOT EXECUTED
4003f0ac: c2 28 80 00 stb %g1, [ %g2 ]
<== NOT EXECUTED
*sec_buf |= (uint8_t)((fat16_clv & 0xFF00)>>8);
4003f0b0: b5 36 a0 08 srl %i2, 8, %i2
<== NOT EXECUTED
4003f0b4: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003f0b8: c2 08 80 00 ldub [ %g2 ], %g1
<== NOT EXECUTED
4003f0bc: 82 16 80 01 or %i2, %g1, %g1
<== NOT EXECUTED
4003f0c0: c2 28 80 00 stb %g1, [ %g2 ]
<== NOT EXECUTED
4003f0c4: e2 2f 60 90 stb %l1, [ %i5 + 0x90 ]
<== NOT EXECUTED
4003f0c8: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f0cc: 81 e8 00 00 restore
<== NOT EXECUTED
rc = fat_buf_access(fs_info, sec + 1, FAT_OP_TYPE_READ,
4003f0d0: 96 07 bf fc add %fp, -4, %o3
<== NOT EXECUTED
4003f0d4: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4003f0d8: 92 07 20 01 add %i4, 1, %o1
<== NOT EXECUTED
4003f0dc: 40 00 04 d5 call 40040430 <fat_buf_access>
<== NOT EXECUTED
4003f0e0: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4003f0e4: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4003f0e8: 12 bf ff 96 bne 4003ef40 <fat_set_fat_cluster+0xb0>
<== NOT EXECUTED
4003f0ec: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
*sec_buf &= 0x00;
4003f0f0: c0 28 40 00 clrb [ %g1 ]
<== NOT EXECUTED
*sec_buf |= (uint8_t)((fat16_clv & 0xFF00)>>8);
4003f0f4: 83 2e a0 14 sll %i2, 0x14, %g1
<== NOT EXECUTED
4003f0f8: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4003f0fc: c6 08 80 00 ldub [ %g2 ], %g3
<== NOT EXECUTED
4003f100: 83 30 60 18 srl %g1, 0x18, %g1
<== NOT EXECUTED
4003f104: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
4003f108: c2 28 80 00 stb %g1, [ %g2 ]
<== NOT EXECUTED
4003f10c: e2 2f 60 90 stb %l1, [ %i5 + 0x90 ]
<== NOT EXECUTED
4003f110: 81 c7 e0 08 ret
<== NOT EXECUTED
4003f114: 81 e8 00 00 restore
<== NOT EXECUTED
40041250 <fat_shutdown_drive>:
* RC_OK on success, or -1 if error occured
* and errno set appropriately
*/
int
fat_shutdown_drive(fat_fs_info_t *fs_info)
{
40041250: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
int rc = RC_OK;
int i = 0;
rc = fat_sync(fs_info);
40041254: 7f ff ff bc call 40041144 <fat_sync>
<== NOT EXECUTED
40041258: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
rc = -1;
for (i = 0; i < FAT_HASH_SIZE; i++)
{
rtems_chain_node *node = NULL;
rtems_chain_control *the_chain = fs_info->vhash + i;
4004125c: fa 06 20 74 ld [ %i0 + 0x74 ], %i5
<== NOT EXECUTED
if ( rc != RC_OK )
40041260: 80 a0 00 08 cmp %g0, %o0
<== NOT EXECUTED
rc = fat_sync(fs_info);
40041264: b4 10 00 08 mov %o0, %i2
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40041268: d0 07 40 00 ld [ %i5 ], %o0
<== NOT EXECUTED
{
4004126c: b8 10 00 18 mov %i0, %i4
<== NOT EXECUTED
return &the_chain->Tail.Node;
40041270: b6 07 60 04 add %i5, 4, %i3
<== NOT EXECUTED
if ( rc != RC_OK )
40041274: b0 60 20 00 subx %g0, 0, %i0
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40041278: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
4004127c: 22 80 00 0c be,a 400412ac <fat_shutdown_drive+0x5c>
<== NOT EXECUTED
40041280: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
new_first = old_first->next;
40041284: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
head->next = new_first;
40041288: c2 27 40 00 st %g1, [ %i5 ]
<== NOT EXECUTED
while ( (node = rtems_chain_get_unprotected(the_chain)) != NULL )
free(node);
4004128c: 7f ff 28 fd call 4000b680 <free>
<== NOT EXECUTED
40041290: fa 20 60 04 st %i5, [ %g1 + 4 ]
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40041294: d0 07 40 00 ld [ %i5 ], %o0
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40041298: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
4004129c: 32 bf ff fb bne,a 40041288 <fat_shutdown_drive+0x38>
<== NOT EXECUTED
400412a0: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
400412a4: fa 07 20 74 ld [ %i4 + 0x74 ], %i5
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
400412a8: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
return &the_chain->Tail.Node;
400412ac: b6 07 60 10 add %i5, 0x10, %i3
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
400412b0: 80 a2 00 1b cmp %o0, %i3
<== NOT EXECUTED
400412b4: 02 80 00 0a be 400412dc <fat_shutdown_drive+0x8c>
<== NOT EXECUTED
400412b8: b2 07 60 0c add %i5, 0xc, %i1
<== NOT EXECUTED
new_first = old_first->next;
400412bc: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
head->next = new_first;
400412c0: c2 27 60 0c st %g1, [ %i5 + 0xc ]
<== NOT EXECUTED
400412c4: 7f ff 28 ef call 4000b680 <free>
<== NOT EXECUTED
400412c8: f2 20 60 04 st %i1, [ %g1 + 4 ]
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
400412cc: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
400412d0: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
400412d4: 32 bf ff fb bne,a 400412c0 <fat_shutdown_drive+0x70>
<== NOT EXECUTED
400412d8: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
}
for (i = 0; i < FAT_HASH_SIZE; i++)
{
rtems_chain_node *node = NULL;
rtems_chain_control *the_chain = fs_info->rhash + i;
400412dc: fa 07 20 78 ld [ %i4 + 0x78 ], %i5
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
400412e0: d0 07 40 00 ld [ %i5 ], %o0
<== NOT EXECUTED
return &the_chain->Tail.Node;
400412e4: b6 07 60 04 add %i5, 4, %i3
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
400412e8: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
400412ec: 22 80 00 0c be,a 4004131c <fat_shutdown_drive+0xcc>
<== NOT EXECUTED
400412f0: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
new_first = old_first->next;
400412f4: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
head->next = new_first;
400412f8: c2 27 40 00 st %g1, [ %i5 ]
<== NOT EXECUTED
while ( (node = rtems_chain_get_unprotected(the_chain)) != NULL )
free(node);
400412fc: 7f ff 28 e1 call 4000b680 <free>
<== NOT EXECUTED
40041300: fa 20 60 04 st %i5, [ %g1 + 4 ]
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40041304: d0 07 40 00 ld [ %i5 ], %o0
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40041308: 80 a2 00 1b cmp %o0, %i3
<== NOT EXECUTED
4004130c: 32 bf ff fb bne,a 400412f8 <fat_shutdown_drive+0xa8>
<== NOT EXECUTED
40041310: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
40041314: fa 07 20 78 ld [ %i4 + 0x78 ], %i5
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
40041318: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
return &the_chain->Tail.Node;
4004131c: b6 07 60 10 add %i5, 0x10, %i3
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40041320: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
40041324: 02 80 00 0a be 4004134c <fat_shutdown_drive+0xfc>
<== NOT EXECUTED
40041328: b2 07 60 0c add %i5, 0xc, %i1
<== NOT EXECUTED
new_first = old_first->next;
4004132c: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
head->next = new_first;
40041330: c2 27 60 0c st %g1, [ %i5 + 0xc ]
<== NOT EXECUTED
40041334: 7f ff 28 d3 call 4000b680 <free>
<== NOT EXECUTED
40041338: f2 20 60 04 st %i1, [ %g1 + 4 ]
<== NOT EXECUTED
return _Chain_Immutable_head( the_chain )->next;
4004133c: d0 07 60 0c ld [ %i5 + 0xc ], %o0
<== NOT EXECUTED
if ( !_Chain_Is_empty(the_chain))
40041340: 80 a6 c0 08 cmp %i3, %o0
<== NOT EXECUTED
40041344: 32 bf ff fb bne,a 40041330 <fat_shutdown_drive+0xe0>
<== NOT EXECUTED
40041348: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
}
free(fs_info->vhash);
4004134c: 7f ff 28 cd call 4000b680 <free>
<== NOT EXECUTED
40041350: d0 07 20 74 ld [ %i4 + 0x74 ], %o0
<== NOT EXECUTED
free(fs_info->rhash);
40041354: 7f ff 28 cb call 4000b680 <free>
<== NOT EXECUTED
40041358: d0 07 20 78 ld [ %i4 + 0x78 ], %o0
<== NOT EXECUTED
free(fs_info->uino);
4004135c: 7f ff 28 c9 call 4000b680 <free>
<== NOT EXECUTED
40041360: d0 07 20 7c ld [ %i4 + 0x7c ], %o0
<== NOT EXECUTED
free(fs_info->sec_buf);
40041364: 7f ff 28 c7 call 4000b680 <free>
<== NOT EXECUTED
40041368: d0 07 20 98 ld [ %i4 + 0x98 ], %o0
<== NOT EXECUTED
close(fs_info->vol.fd);
4004136c: 7f ff 28 00 call 4000b36c <close>
<== NOT EXECUTED
40041370: d0 07 20 68 ld [ %i4 + 0x68 ], %o0
<== NOT EXECUTED
if (rc)
40041374: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
40041378: 12 80 00 04 bne 40041388 <fat_shutdown_drive+0x138>
<== NOT EXECUTED
4004137c: 01 00 00 00 nop
<== NOT EXECUTED
errno = EIO;
return rc;
}
40041380: 81 c7 e0 08 ret
<== NOT EXECUTED
40041384: 81 e8 00 00 restore
<== NOT EXECUTED
errno = EIO;
40041388: 40 00 6d 63 call 4005c914 <__errno>
<== NOT EXECUTED
4004138c: 01 00 00 00 nop
<== NOT EXECUTED
40041390: 82 10 20 05 mov 5, %g1 ! 5 <_TLS_Alignment+0x4>
<== NOT EXECUTED
40041394: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
}
40041398: 81 c7 e0 08 ret
<== NOT EXECUTED
4004139c: 81 e8 00 00 restore
<== NOT EXECUTED
40041144 <fat_sync>:
return RC_OK;
}
int
fat_sync(fat_fs_info_t *fs_info)
{
40041144: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
if (fs_info->vol.type == FAT_FAT32)
40041148: c2 0e 20 16 ldub [ %i0 + 0x16 ], %g1
<== NOT EXECUTED
{
4004114c: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
if (fs_info->vol.type == FAT_FAT32)
40041150: 80 a0 60 04 cmp %g1, 4
<== NOT EXECUTED
40041154: 02 80 00 0d be 40041188 <fat_sync+0x44>
<== NOT EXECUTED
40041158: b0 10 20 00 clr %i0
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY)
4004115c: c2 0f 60 91 ldub [ %i5 + 0x91 ], %g1
<== NOT EXECUTED
40041160: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40041164: 12 80 00 18 bne 400411c4 <fat_sync+0x80>
<== NOT EXECUTED
40041168: 01 00 00 00 nop
<== NOT EXECUTED
if ( rc != RC_OK )
rc = -1;
fat_buf_release(fs_info);
if (rtems_bdbuf_syncdev(fs_info->vol.dd) != RTEMS_SUCCESSFUL)
4004116c: 7f ff 17 40 call 40006e6c <rtems_bdbuf_syncdev>
<== NOT EXECUTED
40041170: d0 07 60 6c ld [ %i5 + 0x6c ], %o0
<== NOT EXECUTED
40041174: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40041178: 12 80 00 34 bne 40041248 <fat_sync+0x104>
<== NOT EXECUTED
4004117c: 01 00 00 00 nop
<== NOT EXECUTED
rc = -1;
return rc;
}
40041180: 81 c7 e0 08 ret
<== NOT EXECUTED
40041184: 81 e8 00 00 restore
<== NOT EXECUTED
uint32_t free_count = fs_info->vol.free_cls;
40041188: f6 07 60 4c ld [ %i5 + 0x4c ], %i3
<== NOT EXECUTED
if (free_count != fs_info->vol.free_cls_in_fs_info)
4004118c: c2 07 60 50 ld [ %i5 + 0x50 ], %g1
<== NOT EXECUTED
40041190: 80 a6 c0 01 cmp %i3, %g1
<== NOT EXECUTED
40041194: 12 80 00 1e bne 4004120c <fat_sync+0xc8>
<== NOT EXECUTED
40041198: f8 07 60 54 ld [ %i5 + 0x54 ], %i4
<== NOT EXECUTED
if (next_free != fs_info->vol.next_cl_in_fs_info)
4004119c: c2 07 60 58 ld [ %i5 + 0x58 ], %g1
<== NOT EXECUTED
400411a0: 80 a7 00 01 cmp %i4, %g1
<== NOT EXECUTED
400411a4: 12 80 00 0b bne 400411d0 <fat_sync+0x8c>
<== NOT EXECUTED
400411a8: 01 00 00 00 nop
<== NOT EXECUTED
if ( (ret1 < 0) || (ret2 < 0) )
400411ac: b0 0e 20 ff and %i0, 0xff, %i0
<== NOT EXECUTED
400411b0: b0 20 00 18 neg %i0
<== NOT EXECUTED
if (fs_info->c.state == FAT_CACHE_EMPTY)
400411b4: c2 0f 60 91 ldub [ %i5 + 0x91 ], %g1
<== NOT EXECUTED
400411b8: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400411bc: 02 bf ff ec be 4004116c <fat_sync+0x28>
<== NOT EXECUTED
400411c0: 01 00 00 00 nop
<== NOT EXECUTED
400411c4: 7f ff fc 25 call 40040258 <fat_buf_release.part.5>
<== NOT EXECUTED
400411c8: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
400411cc: 30 bf ff e8 b,a 4004116c <fat_sync+0x28>
<== NOT EXECUTED
uint32_t le_next_free = CT_LE_L(next_free);
400411d0: 40 00 e2 2c call 40079a80 <__bswapsi2>
<== NOT EXECUTED
400411d4: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
fs_info->vol.next_cl_in_fs_info = next_free;
400411d8: f8 27 60 58 st %i4, [ %i5 + 0x58 ]
<== NOT EXECUTED
ret2 = fat_sector_write(fs_info,
400411dc: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
400411e0: d2 17 60 48 lduh [ %i5 + 0x48 ], %o1
<== NOT EXECUTED
uint32_t le_next_free = CT_LE_L(next_free);
400411e4: d0 27 bf fc st %o0, [ %fp + -4 ]
<== NOT EXECUTED
ret2 = fat_sector_write(fs_info,
400411e8: 96 10 20 04 mov 4, %o3
<== NOT EXECUTED
400411ec: 94 10 21 ec mov 0x1ec, %o2
<== NOT EXECUTED
400411f0: 7f ff fc e9 call 40040594 <fat_sector_write>
<== NOT EXECUTED
400411f4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
400411f8: 91 32 20 1f srl %o0, 0x1f, %o0
<== NOT EXECUTED
400411fc: b0 12 00 18 or %o0, %i0, %i0
<== NOT EXECUTED
if ( (ret1 < 0) || (ret2 < 0) )
40041200: b0 0e 20 ff and %i0, 0xff, %i0
<== NOT EXECUTED
40041204: 10 bf ff ec b 400411b4 <fat_sync+0x70>
<== NOT EXECUTED
40041208: b0 20 00 18 neg %i0
<== NOT EXECUTED
uint32_t le_free_count = CT_LE_L(free_count);
4004120c: 40 00 e2 1d call 40079a80 <__bswapsi2>
<== NOT EXECUTED
40041210: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
fs_info->vol.free_cls_in_fs_info = free_count;
40041214: f6 27 60 50 st %i3, [ %i5 + 0x50 ]
<== NOT EXECUTED
ret1 = fat_sector_write(fs_info,
40041218: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004121c: d2 17 60 48 lduh [ %i5 + 0x48 ], %o1
<== NOT EXECUTED
uint32_t le_free_count = CT_LE_L(free_count);
40041220: d0 27 bf fc st %o0, [ %fp + -4 ]
<== NOT EXECUTED
ret1 = fat_sector_write(fs_info,
40041224: 96 10 20 04 mov 4, %o3
<== NOT EXECUTED
40041228: 94 10 21 e8 mov 0x1e8, %o2
<== NOT EXECUTED
4004122c: 7f ff fc da call 40040594 <fat_sector_write>
<== NOT EXECUTED
40041230: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (next_free != fs_info->vol.next_cl_in_fs_info)
40041234: c2 07 60 58 ld [ %i5 + 0x58 ], %g1
<== NOT EXECUTED
40041238: 80 a7 00 01 cmp %i4, %g1
<== NOT EXECUTED
4004123c: 02 bf ff dc be 400411ac <fat_sync+0x68>
<== NOT EXECUTED
40041240: b1 32 20 1f srl %o0, 0x1f, %i0
<== NOT EXECUTED
40041244: 30 bf ff e3 b,a 400411d0 <fat_sync+0x8c>
<== NOT EXECUTED
}
40041248: 81 c7 e0 08 ret
<== NOT EXECUTED
4004124c: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
4004dcb0 <msdos_creat_node>:
fat_file_type_t type,
const char *name,
int name_len,
mode_t mode,
const fat_file_fd_t *link_fd)
{
4004dcb0: 9d e3 bf 00 save %sp, -256, %sp
<== NOT EXECUTED
int rc = RC_OK;
ssize_t ret = 0;
msdos_fs_info_t *fs_info = parent_loc->mt_entry->fs_info;
4004dcb4: c2 06 20 14 ld [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
4004dcb8: e0 00 60 08 ld [ %g1 + 8 ], %l0
<== NOT EXECUTED
fat_file_fd_t *parent_fat_fd = parent_loc->node_access;
fat_file_fd_t *fat_fd = NULL;
4004dcbc: c0 27 bf 6c clr [ %fp + -148 ]
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004dcc0: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
time_t now;
uint16_t time_val = 0;
4004dcc4: c0 37 bf 68 clrh [ %fp + -152 ]
<== NOT EXECUTED
fat_dir_pos_init(&dir_pos);
memset(short_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
memset(dot_dotdot, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE * 2);
if (name_len > MSDOS_NAME_MAX_LFN_WITH_DOT) {
4004dcc8: 80 a6 e1 04 cmp %i3, 0x104
<== NOT EXECUTED
uint16_t date = 0;
4004dccc: c0 37 bf 6a clrh [ %fp + -150 ]
<== NOT EXECUTED
memset(short_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004dcd0: c0 27 bf 80 clr [ %fp + -128 ]
<== NOT EXECUTED
4004dcd4: c0 27 bf 84 clr [ %fp + -124 ]
<== NOT EXECUTED
dir_pos->sname.cln = 0;
4004dcd8: c0 27 bf 70 clr [ %fp + -144 ]
<== NOT EXECUTED
4004dcdc: c0 27 bf 88 clr [ %fp + -120 ]
<== NOT EXECUTED
4004dce0: c0 27 bf 8c clr [ %fp + -116 ]
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4004dce4: c0 27 bf 74 clr [ %fp + -140 ]
<== NOT EXECUTED
4004dce8: c0 27 bf 90 clr [ %fp + -112 ]
<== NOT EXECUTED
4004dcec: c0 27 bf 94 clr [ %fp + -108 ]
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004dcf0: c2 27 bf 78 st %g1, [ %fp + -136 ]
<== NOT EXECUTED
4004dcf4: c0 27 bf 98 clr [ %fp + -104 ]
<== NOT EXECUTED
4004dcf8: c0 27 bf 9c clr [ %fp + -100 ]
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004dcfc: c2 27 bf 7c st %g1, [ %fp + -132 ]
<== NOT EXECUTED
memset(dot_dotdot, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE * 2);
4004dd00: c0 27 bf c0 clr [ %fp + -64 ]
<== NOT EXECUTED
4004dd04: c0 27 bf c4 clr [ %fp + -60 ]
<== NOT EXECUTED
4004dd08: c0 27 bf c8 clr [ %fp + -56 ]
<== NOT EXECUTED
4004dd0c: c0 27 bf cc clr [ %fp + -52 ]
<== NOT EXECUTED
4004dd10: c0 27 bf d0 clr [ %fp + -48 ]
<== NOT EXECUTED
4004dd14: c0 27 bf d4 clr [ %fp + -44 ]
<== NOT EXECUTED
4004dd18: c0 27 bf d8 clr [ %fp + -40 ]
<== NOT EXECUTED
4004dd1c: c0 27 bf dc clr [ %fp + -36 ]
<== NOT EXECUTED
4004dd20: c0 27 bf e0 clr [ %fp + -32 ]
<== NOT EXECUTED
4004dd24: c0 27 bf e4 clr [ %fp + -28 ]
<== NOT EXECUTED
4004dd28: c0 27 bf e8 clr [ %fp + -24 ]
<== NOT EXECUTED
4004dd2c: c0 27 bf ec clr [ %fp + -20 ]
<== NOT EXECUTED
4004dd30: c0 27 bf f0 clr [ %fp + -16 ]
<== NOT EXECUTED
4004dd34: c0 27 bf f4 clr [ %fp + -12 ]
<== NOT EXECUTED
4004dd38: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
4004dd3c: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
if (name_len > MSDOS_NAME_MAX_LFN_WITH_DOT) {
4004dd40: 14 80 00 e3 bg 4004e0cc <msdos_creat_node+0x41c>
<== NOT EXECUTED
4004dd44: f8 06 20 08 ld [ %i0 + 8 ], %i4
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENAMETOOLONG);
}
name_type = msdos_long_to_short (fs_info->converter,
4004dd48: d0 04 20 c0 ld [ %l0 + 0xc0 ], %o0
<== NOT EXECUTED
4004dd4c: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
4004dd50: 96 07 bf 80 add %fp, -128, %o3
<== NOT EXECUTED
4004dd54: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
4004dd58: 40 00 01 bf call 4004e454 <msdos_long_to_short>
<== NOT EXECUTED
4004dd5c: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
name, name_len,
MSDOS_DIR_NAME(short_node),
MSDOS_NAME_MAX);
if (name_type == MSDOS_NAME_INVALID) {
4004dd60: a6 92 20 00 orcc %o0, 0, %l3
<== NOT EXECUTED
4004dd64: 02 80 00 df be 4004e0e0 <msdos_creat_node+0x430>
<== NOT EXECUTED
4004dd68: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EINVAL);
}
/* fill reserved field */
*MSDOS_DIR_NT_RES(short_node) = MSDOS_RES_NT_VALUE;
4004dd6c: c0 2f bf 8c clrb [ %fp + -116 ]
<== NOT EXECUTED
/* set up last write date and time */
now = time(NULL);
4004dd70: 40 00 77 39 call 4006ba54 <time>
<== NOT EXECUTED
4004dd74: 90 10 20 00 clr %o0
<== NOT EXECUTED
static inline void fat_file_set_ctime_mtime(fat_file_fd_t *fat_fd, time_t t)
{
fat_fd->ctime = t;
fat_fd->mtime = t;
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4004dd78: c2 0f 20 30 ldub [ %i4 + 0x30 ], %g1
<== NOT EXECUTED
4004dd7c: a2 10 00 08 mov %o0, %l1
<== NOT EXECUTED
4004dd80: a4 10 00 09 mov %o1, %l2
<== NOT EXECUTED
4004dd84: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->ctime = t;
4004dd88: d2 27 20 44 st %o1, [ %i4 + 0x44 ]
<== NOT EXECUTED
fat_file_set_ctime_mtime(parent_fat_fd, now);
msdos_date_unix2dos(now, &date, &time_val);
4004dd8c: 94 07 bf 68 add %fp, -152, %o2
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4004dd90: c2 2f 20 30 stb %g1, [ %i4 + 0x30 ]
<== NOT EXECUTED
4004dd94: 92 07 bf 6a add %fp, -150, %o1
<== NOT EXECUTED
fat_fd->ctime = t;
4004dd98: e2 27 20 40 st %l1, [ %i4 + 0x40 ]
<== NOT EXECUTED
4004dd9c: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
fat_fd->mtime = t;
4004dda0: e2 27 20 48 st %l1, [ %i4 + 0x48 ]
<== NOT EXECUTED
4004dda4: 40 00 31 df call 4005a520 <msdos_date_unix2dos>
<== NOT EXECUTED
4004dda8: e4 27 20 4c st %l2, [ %i4 + 0x4c ]
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME(short_node) = CT_LE_W(time_val);
4004ddac: c2 17 bf 68 lduh [ %fp + -152 ], %g1
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) = CT_LE_W(date);
4004ddb0: c6 17 bf 6a lduh [ %fp + -150 ], %g3
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME(short_node) = CT_LE_W(time_val);
4004ddb4: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004ddb8: 89 30 60 08 srl %g1, 8, %g4
<== NOT EXECUTED
*MSDOS_DIR_WRITE_TIME(short_node) = CT_LE_W(time_val);
*MSDOS_DIR_WRITE_DATE(short_node) = CT_LE_W(date);
*MSDOS_DIR_LAST_ACCESS_DATE(short_node) = CT_LE_W(date);
/* initialize directory/file size */
*MSDOS_DIR_FILE_SIZE(short_node) = MSDOS_INIT_DIR_SIZE;
4004ddbc: c0 27 bf 9c clr [ %fp + -100 ]
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) = CT_LE_W(date);
4004ddc0: 83 28 e0 08 sll %g3, 8, %g1
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME(short_node) = CT_LE_W(time_val);
4004ddc4: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) = CT_LE_W(date);
4004ddc8: 87 30 e0 08 srl %g3, 8, %g3
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME(short_node) = CT_LE_W(time_val);
4004ddcc: c4 37 bf 8e sth %g2, [ %fp + -114 ]
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) = CT_LE_W(date);
4004ddd0: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
*MSDOS_DIR_WRITE_TIME(short_node) = CT_LE_W(time_val);
4004ddd4: c4 37 bf 96 sth %g2, [ %fp + -106 ]
<== NOT EXECUTED
if (type == FAT_DIRECTORY) {
4004ddd8: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) = CT_LE_W(date);
4004dddc: c2 37 bf 90 sth %g1, [ %fp + -112 ]
<== NOT EXECUTED
*MSDOS_DIR_WRITE_DATE(short_node) = CT_LE_W(date);
4004dde0: c2 37 bf 98 sth %g1, [ %fp + -104 ]
<== NOT EXECUTED
if (type == FAT_DIRECTORY) {
4004dde4: 02 80 00 13 be 4004de30 <msdos_creat_node+0x180>
<== NOT EXECUTED
4004dde8: c2 37 bf 92 sth %g1, [ %fp + -110 ]
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_DIRECTORY;
}
else if (type == FAT_HARD_LINK) {
4004ddec: 80 a6 60 02 cmp %i1, 2
<== NOT EXECUTED
4004ddf0: 02 80 00 2c be 4004dea0 <msdos_creat_node+0x1f0>
<== NOT EXECUTED
4004ddf4: 82 07 bf 80 add %fp, -128, %g1
<== NOT EXECUTED
/*
* find free space in the parent directory and write new initialized
* FAT 32 Bytes Directory Entry Structure to the disk
*/
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004ddf8: c2 23 a0 5c st %g1, [ %sp + 0x5c ]
<== NOT EXECUTED
4004ddfc: 9a 07 bf 70 add %fp, -144, %o5
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_ARCHIVE;
4004de00: c2 0f bf 8b ldub [ %fp + -117 ], %g1
<== NOT EXECUTED
4004de04: 82 10 60 20 or %g1, 0x20, %g1
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004de08: 98 10 00 13 mov %l3, %o4
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_ARCHIVE;
4004de0c: c2 2f bf 8b stb %g1, [ %fp + -117 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004de10: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004de14: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004de18: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
4004de1c: 40 00 07 81 call 4004fc20 <msdos_get_name_node>
<== NOT EXECUTED
4004de20: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4004de24: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
err:
/* mark the used 32bytes structure on the disk as free */
msdos_set_first_char4file_name(parent_loc->mt_entry, &dir_pos, 0xE5);
return rc;
}
4004de28: 81 c7 e0 08 ret
<== NOT EXECUTED
4004de2c: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004de30: 82 07 bf 80 add %fp, -128, %g1
<== NOT EXECUTED
4004de34: c2 23 a0 5c st %g1, [ %sp + 0x5c ]
<== NOT EXECUTED
4004de38: 9a 07 bf 70 add %fp, -144, %o5
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_DIRECTORY;
4004de3c: c2 0f bf 8b ldub [ %fp + -117 ], %g1
<== NOT EXECUTED
4004de40: 82 10 60 10 or %g1, 0x10, %g1
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004de44: 98 10 00 13 mov %l3, %o4
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_DIRECTORY;
4004de48: c2 2f bf 8b stb %g1, [ %fp + -117 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004de4c: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004de50: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004de54: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
4004de58: 40 00 07 72 call 4004fc20 <msdos_get_name_node>
<== NOT EXECUTED
4004de5c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4004de60: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004de64: 12 bf ff f1 bne 4004de28 <msdos_creat_node+0x178>
<== NOT EXECUTED
4004de68: 94 07 bf 6c add %fp, -148, %o2
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &dir_pos, &fat_fd);
4004de6c: 92 07 bf 70 add %fp, -144, %o1
<== NOT EXECUTED
4004de70: 7f ff c5 7e call 4003f468 <fat_file_open>
<== NOT EXECUTED
4004de74: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004de78: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004de7c: 02 80 00 3e be 4004df74 <msdos_creat_node+0x2c4>
<== NOT EXECUTED
4004de80: c2 07 bf 6c ld [ %fp + -148 ], %g1
<== NOT EXECUTED
msdos_set_first_char4file_name(parent_loc->mt_entry, &dir_pos, 0xE5);
4004de84: d0 06 20 14 ld [ %i0 + 0x14 ], %o0
<== NOT EXECUTED
4004de88: 94 10 20 e5 mov 0xe5, %o2
<== NOT EXECUTED
4004de8c: 92 07 bf 70 add %fp, -144, %o1
<== NOT EXECUTED
4004de90: 40 00 02 cf call 4004e9cc <msdos_set_first_char4file_name>
<== NOT EXECUTED
4004de94: b0 10 00 1d mov %i5, %i0
<== NOT EXECUTED
}
4004de98: 81 c7 e0 08 ret
<== NOT EXECUTED
4004de9c: 81 e8 00 00 restore
<== NOT EXECUTED
sec = fat_cluster_num_to_sector_num(&fs_info->fat,
4004dea0: c2 07 60 20 ld [ %i5 + 0x20 ], %g1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004dea4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004dea8: 32 80 00 07 bne,a 4004dec4 <msdos_creat_node+0x214>
<== NOT EXECUTED
4004deac: c4 0c 20 05 ldub [ %l0 + 5 ], %g2
<== NOT EXECUTED
4004deb0: c4 0c 20 16 ldub [ %l0 + 0x16 ], %g2
<== NOT EXECUTED
4004deb4: 80 88 a0 03 btst 3, %g2
<== NOT EXECUTED
4004deb8: 32 80 00 07 bne,a 4004ded4 <msdos_creat_node+0x224>
<== NOT EXECUTED
4004debc: c2 04 20 28 ld [ %l0 + 0x28 ], %g1
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4004dec0: c4 0c 20 05 ldub [ %l0 + 5 ], %g2
<== NOT EXECUTED
4004dec4: d2 04 20 3c ld [ %l0 + 0x3c ], %o1
<== NOT EXECUTED
4004dec8: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4004decc: 83 28 40 02 sll %g1, %g2, %g1
<== NOT EXECUTED
4004ded0: 82 00 40 09 add %g1, %o1, %g1
<== NOT EXECUTED
byte = (link_fd->dir_pos.sname.ofs & (fs_info->fat.vol.bps - 1));
4004ded4: c4 14 00 00 lduh [ %l0 ], %g2
<== NOT EXECUTED
sec += (link_fd->dir_pos.sname.ofs >> fs_info->fat.vol.sec_log2);
4004ded8: d4 07 60 24 ld [ %i5 + 0x24 ], %o2
<== NOT EXECUTED
4004dedc: d2 0c 20 02 ldub [ %l0 + 2 ], %o1
<== NOT EXECUTED
byte = (link_fd->dir_pos.sname.ofs & (fs_info->fat.vol.bps - 1));
4004dee0: 84 00 bf ff add %g2, -1, %g2
<== NOT EXECUTED
sec += (link_fd->dir_pos.sname.ofs >> fs_info->fat.vol.sec_log2);
4004dee4: 93 32 80 09 srl %o2, %o1, %o1
<== NOT EXECUTED
ret = _fat_block_read(&fs_info->fat,
4004dee8: 98 07 bf a0 add %fp, -96, %o4
<== NOT EXECUTED
4004deec: 96 10 20 20 mov 0x20, %o3
<== NOT EXECUTED
4004def0: 94 08 80 0a and %g2, %o2, %o2
<== NOT EXECUTED
4004def4: 92 02 40 01 add %o1, %g1, %o1
<== NOT EXECUTED
4004def8: 7f ff c9 87 call 40040514 <_fat_block_read>
<== NOT EXECUTED
4004defc: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret < 0) {
4004df00: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004df04: 06 80 00 8b bl 4004e130 <msdos_creat_node+0x480>
<== NOT EXECUTED
4004df08: c4 0f bf ad ldub [ %fp + -83 ], %g2
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME_TENTH(short_node)=*MSDOS_DIR_CRT_TIME_TENTH(link_node);
4004df0c: c4 2f bf 8d stb %g2, [ %fp + -115 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df10: 82 07 bf 80 add %fp, -128, %g1
<== NOT EXECUTED
*MSDOS_DIR_CRT_TIME(short_node) =*MSDOS_DIR_CRT_TIME(link_node);
4004df14: c4 17 bf ae lduh [ %fp + -82 ], %g2
<== NOT EXECUTED
4004df18: c4 37 bf 8e sth %g2, [ %fp + -114 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df1c: 9a 07 bf 70 add %fp, -144, %o5
<== NOT EXECUTED
*MSDOS_DIR_CRT_DATE(short_node) =*MSDOS_DIR_CRT_DATE(link_node);
4004df20: c4 17 bf b0 lduh [ %fp + -80 ], %g2
<== NOT EXECUTED
4004df24: c4 37 bf 90 sth %g2, [ %fp + -112 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df28: 98 10 00 13 mov %l3, %o4
<== NOT EXECUTED
*MSDOS_DIR_FILE_SIZE(short_node) =*MSDOS_DIR_FILE_SIZE(link_node);
4004df2c: c4 07 bf bc ld [ %fp + -68 ], %g2
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df30: c2 23 a0 5c st %g1, [ %sp + 0x5c ]
<== NOT EXECUTED
4004df34: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) =*MSDOS_DIR_ATTR(link_node);
4004df38: c2 0f bf ab ldub [ %fp + -85 ], %g1
<== NOT EXECUTED
*MSDOS_DIR_FILE_SIZE(short_node) =*MSDOS_DIR_FILE_SIZE(link_node);
4004df3c: c4 27 bf 9c st %g2, [ %fp + -100 ]
<== NOT EXECUTED
*MSDOS_DIR_ATTR(short_node) |= MSDOS_ATTR_ARCHIVE;
4004df40: 82 10 60 20 or %g1, 0x20, %g1
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_LOW(short_node) =
4004df44: c4 17 bf ba lduh [ %fp + -70 ], %g2
<== NOT EXECUTED
4004df48: c4 37 bf 9a sth %g2, [ %fp + -102 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df4c: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_HI(short_node) =
4004df50: c4 17 bf b4 lduh [ %fp + -76 ], %g2
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df54: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
4004df58: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_HI(short_node) =
4004df5c: c4 37 bf 94 sth %g2, [ %fp + -108 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, true, name, name_len,
4004df60: 40 00 07 30 call 4004fc20 <msdos_get_name_node>
<== NOT EXECUTED
4004df64: c2 2f bf 8b stb %g1, [ %fp + -117 ]
<== NOT EXECUTED
4004df68: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
}
4004df6c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004df70: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4004df74: c4 08 60 30 ldub [ %g1 + 0x30 ], %g2
<== NOT EXECUTED
4004df78: 84 10 a0 02 or %g2, 2, %g2
<== NOT EXECUTED
4004df7c: c4 28 60 30 stb %g2, [ %g1 + 0x30 ]
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004df80: 05 00 08 00 sethi %hi(0x200000), %g2
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_DIRECTORY;
4004df84: c0 20 60 10 clr [ %g1 + 0x10 ]
<== NOT EXECUTED
rc = fat_file_extend(&fs_info->fat,
4004df88: 98 07 bf a0 add %fp, -96, %o4
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004df8c: c4 20 60 14 st %g2, [ %g1 + 0x14 ]
<== NOT EXECUTED
rc = fat_file_extend(&fs_info->fat,
4004df90: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
fat_fd->ctime = t;
4004df94: e2 20 60 40 st %l1, [ %g1 + 0x40 ]
<== NOT EXECUTED
4004df98: 92 10 00 01 mov %g1, %o1
<== NOT EXECUTED
4004df9c: e4 20 60 44 st %l2, [ %g1 + 0x44 ]
<== NOT EXECUTED
4004dfa0: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
fat_fd->mtime = t;
4004dfa4: e2 20 60 48 st %l1, [ %g1 + 0x48 ]
<== NOT EXECUTED
4004dfa8: e4 20 60 4c st %l2, [ %g1 + 0x4c ]
<== NOT EXECUTED
4004dfac: 7f ff c7 41 call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
4004dfb0: d6 04 20 08 ld [ %l0 + 8 ], %o3
<== NOT EXECUTED
if (rc != RC_OK)
4004dfb4: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004dfb8: 32 bf ff b4 bne,a 4004de88 <msdos_creat_node+0x1d8>
<== NOT EXECUTED
4004dfbc: d0 06 20 14 ld [ %i0 + 0x14 ], %o0
<== NOT EXECUTED
memcpy(DOT_NODE_P(dot_dotdot), short_node,
4004dfc0: d8 1f bf 88 ldd [ %fp + -120 ], %o4
<== NOT EXECUTED
4004dfc4: c4 1f bf 98 ldd [ %fp + -104 ], %g2
<== NOT EXECUTED
4004dfc8: e4 1f bf 80 ldd [ %fp + -128 ], %l2
<== NOT EXECUTED
4004dfcc: f4 1f bf 90 ldd [ %fp + -112 ], %i2
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(DOT_NODE_P(dot_dotdot)), MSDOS_DOT_NAME,
4004dfd0: 03 10 02 18 sethi %hi(0x40086000), %g1
<== NOT EXECUTED
4004dfd4: d2 00 61 28 ld [ %g1 + 0x128 ], %o1 ! 40086128 <MSDOS_DOT_NAME>
<== NOT EXECUTED
4004dfd8: 94 10 20 0b mov 0xb, %o2
<== NOT EXECUTED
memcpy(DOT_NODE_P(dot_dotdot), short_node,
4004dfdc: d8 3f bf c8 std %o4, [ %fp + -56 ]
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(DOT_NODE_P(dot_dotdot)), MSDOS_DOT_NAME,
4004dfe0: 90 07 bf c0 add %fp, -64, %o0
<== NOT EXECUTED
memcpy(DOT_NODE_P(dot_dotdot), short_node,
4004dfe4: c4 3f bf d8 std %g2, [ %fp + -40 ]
<== NOT EXECUTED
memcpy(DOTDOT_NODE_P(dot_dotdot), short_node,
4004dfe8: d8 3f bf e8 std %o4, [ %fp + -24 ]
<== NOT EXECUTED
4004dfec: c4 3f bf f8 std %g2, [ %fp + -8 ]
<== NOT EXECUTED
memcpy(DOT_NODE_P(dot_dotdot), short_node,
4004dff0: e4 3f bf c0 std %l2, [ %fp + -64 ]
<== NOT EXECUTED
4004dff4: f4 3f bf d0 std %i2, [ %fp + -48 ]
<== NOT EXECUTED
memcpy(DOTDOT_NODE_P(dot_dotdot), short_node,
4004dff8: e4 3f bf e0 std %l2, [ %fp + -32 ]
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(DOT_NODE_P(dot_dotdot)), MSDOS_DOT_NAME,
4004dffc: 40 00 4b f5 call 40060fd0 <memcpy>
<== NOT EXECUTED
4004e000: f4 3f bf f0 std %i2, [ %fp + -16 ]
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(DOTDOT_NODE_P(dot_dotdot)), MSDOS_DOTDOT_NAME,
4004e004: 03 10 02 18 sethi %hi(0x40086000), %g1
<== NOT EXECUTED
4004e008: d2 00 61 24 ld [ %g1 + 0x124 ], %o1 ! 40086124 <MSDOS_DOTDOT_NAME>
<== NOT EXECUTED
4004e00c: 94 10 20 0b mov 0xb, %o2
<== NOT EXECUTED
4004e010: 40 00 4b f0 call 40060fd0 <memcpy>
<== NOT EXECUTED
4004e014: 90 07 bf e0 add %fp, -32, %o0
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(parent_fat_fd)) &&
4004e018: c2 07 20 20 ld [ %i4 + 0x20 ], %g1
<== NOT EXECUTED
4004e01c: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4004e020: 22 80 00 37 be,a 4004e0fc <msdos_creat_node+0x44c>
<== NOT EXECUTED
4004e024: c2 07 20 24 ld [ %i4 + 0x24 ], %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )((parent_fat_fd->cln) & 0x0000FFFF));
4004e028: c2 07 20 1c ld [ %i4 + 0x1c ], %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((parent_fat_fd->cln) & 0xFFFF0000)>>16));
4004e02c: 85 30 60 10 srl %g1, 0x10, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((parent_fat_fd->cln) & 0x0000FFFF));
4004e030: 89 28 60 08 sll %g1, 8, %g4
<== NOT EXECUTED
CT_LE_W((uint16_t )(((parent_fat_fd->cln) & 0xFFFF0000)>>16));
4004e034: 87 28 a0 08 sll %g2, 8, %g3
<== NOT EXECUTED
CT_LE_W((uint16_t )((parent_fat_fd->cln) & 0x0000FFFF));
4004e038: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((parent_fat_fd->cln) & 0xFFFF0000)>>16));
4004e03c: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((parent_fat_fd->cln) & 0x0000FFFF));
4004e040: 83 30 60 18 srl %g1, 0x18, %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((parent_fat_fd->cln) & 0xFFFF0000)>>16));
4004e044: 84 10 c0 02 or %g3, %g2, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((parent_fat_fd->cln) & 0x0000FFFF));
4004e048: 82 11 00 01 or %g4, %g1, %g1
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_HI(DOTDOT_NODE_P(dot_dotdot)) =
4004e04c: c4 37 bf f4 sth %g2, [ %fp + -12 ]
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_LOW(DOTDOT_NODE_P(dot_dotdot)) =
4004e050: c2 37 bf fa sth %g1, [ %fp + -6 ]
<== NOT EXECUTED
ret = fat_file_write(&fs_info->fat, fat_fd, 0,
4004e054: 98 07 bf c0 add %fp, -64, %o4
<== NOT EXECUTED
CT_LE_W((uint16_t )((fat_fd->cln) & 0x0000FFFF));
4004e058: d2 07 bf 6c ld [ %fp + -148 ], %o1
<== NOT EXECUTED
4004e05c: c2 02 60 1c ld [ %o1 + 0x1c ], %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((fat_fd->cln) & 0xFFFF0000) >> 16));
4004e060: 85 30 60 10 srl %g1, 0x10, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((fat_fd->cln) & 0x0000FFFF));
4004e064: 89 28 60 08 sll %g1, 8, %g4
<== NOT EXECUTED
CT_LE_W((uint16_t )(((fat_fd->cln) & 0xFFFF0000) >> 16));
4004e068: 87 28 a0 08 sll %g2, 8, %g3
<== NOT EXECUTED
CT_LE_W((uint16_t )((fat_fd->cln) & 0x0000FFFF));
4004e06c: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((fat_fd->cln) & 0xFFFF0000) >> 16));
4004e070: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((fat_fd->cln) & 0x0000FFFF));
4004e074: 83 30 60 18 srl %g1, 0x18, %g1
<== NOT EXECUTED
CT_LE_W((uint16_t )(((fat_fd->cln) & 0xFFFF0000) >> 16));
4004e078: 84 10 c0 02 or %g3, %g2, %g2
<== NOT EXECUTED
CT_LE_W((uint16_t )((fat_fd->cln) & 0x0000FFFF));
4004e07c: 82 11 00 01 or %g4, %g1, %g1
<== NOT EXECUTED
ret = fat_file_write(&fs_info->fat, fat_fd, 0,
4004e080: 96 10 20 40 mov 0x40, %o3
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_LOW(DOT_NODE_P(dot_dotdot)) =
4004e084: c2 37 bf da sth %g1, [ %fp + -38 ]
<== NOT EXECUTED
ret = fat_file_write(&fs_info->fat, fat_fd, 0,
4004e088: 94 10 20 00 clr %o2
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_HI(DOT_NODE_P(dot_dotdot)) =
4004e08c: c4 37 bf d4 sth %g2, [ %fp + -44 ]
<== NOT EXECUTED
ret = fat_file_write(&fs_info->fat, fat_fd, 0,
4004e090: 7f ff c7 a4 call 4003ff20 <fat_file_write>
<== NOT EXECUTED
4004e094: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret < 0)
4004e098: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e09c: 06 80 00 16 bl 4004e0f4 <msdos_creat_node+0x444>
<== NOT EXECUTED
4004e0a0: d2 07 bf 6c ld [ %fp + -148 ], %o1
<== NOT EXECUTED
rc = fat_file_write_first_cluster_num(&fs_info->fat, fat_fd);
4004e0a4: 40 00 01 f3 call 4004e870 <fat_file_write_first_cluster_num>
<== NOT EXECUTED
4004e0a8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004e0ac: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004e0b0: 02 80 00 1d be 4004e124 <msdos_creat_node+0x474>
<== NOT EXECUTED
4004e0b4: d2 07 bf 6c ld [ %fp + -148 ], %o1
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004e0b8: d2 07 bf 6c ld [ %fp + -148 ], %o1
<== NOT EXECUTED
4004e0bc: 7f ff c6 93 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004e0c0: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
msdos_set_first_char4file_name(parent_loc->mt_entry, &dir_pos, 0xE5);
4004e0c4: 10 bf ff 71 b 4004de88 <msdos_creat_node+0x1d8>
<== NOT EXECUTED
4004e0c8: d0 06 20 14 ld [ %i0 + 0x14 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENAMETOOLONG);
4004e0cc: 40 00 3a 12 call 4005c914 <__errno>
<== NOT EXECUTED
4004e0d0: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4004e0d4: 82 10 20 5b mov 0x5b, %g1
<== NOT EXECUTED
4004e0d8: 10 bf ff 54 b 4004de28 <msdos_creat_node+0x178>
<== NOT EXECUTED
4004e0dc: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EINVAL);
4004e0e0: 40 00 3a 0d call 4005c914 <__errno>
<== NOT EXECUTED
4004e0e4: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4004e0e8: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
4004e0ec: 10 bf ff 4f b 4004de28 <msdos_creat_node+0x178>
<== NOT EXECUTED
4004e0f0: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
rc = -1;
4004e0f4: 10 bf ff f1 b 4004e0b8 <msdos_creat_node+0x408>
<== NOT EXECUTED
4004e0f8: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
if ((FAT_FD_OF_ROOT_DIR(parent_fat_fd)) &&
4004e0fc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004e100: 32 bf ff cb bne,a 4004e02c <msdos_creat_node+0x37c>
<== NOT EXECUTED
4004e104: c2 07 20 1c ld [ %i4 + 0x1c ], %g1
<== NOT EXECUTED
4004e108: c2 0c 20 16 ldub [ %l0 + 0x16 ], %g1
<== NOT EXECUTED
4004e10c: 80 88 60 04 btst 4, %g1
<== NOT EXECUTED
4004e110: 22 bf ff c7 be,a 4004e02c <msdos_creat_node+0x37c>
<== NOT EXECUTED
4004e114: c2 07 20 1c ld [ %i4 + 0x1c ], %g1
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_LOW(DOTDOT_NODE_P(dot_dotdot)) = 0x0000;
4004e118: c0 37 bf fa clrh [ %fp + -6 ]
<== NOT EXECUTED
*MSDOS_DIR_FIRST_CLUSTER_HI(DOTDOT_NODE_P(dot_dotdot)) = 0x0000;
4004e11c: 10 bf ff ce b 4004e054 <msdos_creat_node+0x3a4>
<== NOT EXECUTED
4004e120: c0 37 bf f4 clrh [ %fp + -12 ]
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004e124: 7f ff c6 79 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004e128: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004e12c: 30 bf ff 3f b,a 4004de28 <msdos_creat_node+0x178>
<== NOT EXECUTED
return -1;
4004e130: 10 bf ff 3e b 4004de28 <msdos_creat_node+0x178>
<== NOT EXECUTED
4004e134: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4005a6e4 <msdos_date_dos2unix>:
+ ((dt & MSDOS_DT_MINUTES_MASK) >> MSDOS_DT_MINUTES_SHIFT) * 60
4005a6e4: 83 32 60 05 srl %o1, 5, %g1
<== NOT EXECUTED
if (lastdosdate != dd) {
4005a6e8: 07 10 02 41 sethi %hi(0x40090400), %g3
<== NOT EXECUTED
4005a6ec: da 10 e0 5c lduh [ %g3 + 0x5c ], %o5 ! 4009045c <lastdosdate>
<== NOT EXECUTED
+ ((dt & MSDOS_DT_HOURS_MASK) >> MSDOS_DT_HOURS_SHIFT) * 3600;
4005a6f0: 89 32 60 0b srl %o1, 0xb, %g4
<== NOT EXECUTED
+ ((dt & MSDOS_DT_MINUTES_MASK) >> MSDOS_DT_MINUTES_SHIFT) * 60
4005a6f4: 84 08 60 3f and %g1, 0x3f, %g2
<== NOT EXECUTED
+ ((dt & MSDOS_DT_HOURS_MASK) >> MSDOS_DT_HOURS_SHIFT) * 3600;
4005a6f8: 88 09 20 1f and %g4, 0x1f, %g4
<== NOT EXECUTED
+ ((dt & MSDOS_DT_MINUTES_MASK) >> MSDOS_DT_MINUTES_SHIFT) * 60
4005a6fc: 83 28 a0 04 sll %g2, 4, %g1
<== NOT EXECUTED
+ ((dt & MSDOS_DT_HOURS_MASK) >> MSDOS_DT_HOURS_SHIFT) * 3600;
4005a700: 88 59 27 08 smul %g4, 0x708, %g4
<== NOT EXECUTED
seconds = 2 * ((dt & MSDOS_DT_2SECONDS_MASK) >> MSDOS_DT_2SECONDS_SHIFT)
4005a704: 92 0a 60 1f and %o1, 0x1f, %o1
<== NOT EXECUTED
+ ((dt & MSDOS_DT_MINUTES_MASK) >> MSDOS_DT_MINUTES_SHIFT) * 60
4005a708: 82 20 40 02 sub %g1, %g2, %g1
<== NOT EXECUTED
if (lastdosdate != dd) {
4005a70c: 80 a3 40 08 cmp %o5, %o0
<== NOT EXECUTED
+ ((dt & MSDOS_DT_MINUTES_MASK) >> MSDOS_DT_MINUTES_SHIFT) * 60
4005a710: 83 28 60 01 sll %g1, 1, %g1
<== NOT EXECUTED
+ ((dt & MSDOS_DT_HOURS_MASK) >> MSDOS_DT_HOURS_SHIFT) * 3600;
4005a714: 88 01 00 01 add %g4, %g1, %g4
<== NOT EXECUTED
4005a718: 88 01 00 09 add %g4, %o1, %g4
<== NOT EXECUTED
if (lastdosdate != dd) {
4005a71c: 02 80 00 34 be 4005a7ec <msdos_date_dos2unix+0x108>
<== NOT EXECUTED
4005a720: 89 29 20 01 sll %g4, 1, %g4
<== NOT EXECUTED
lastdosdate = dd;
4005a724: d0 30 e0 5c sth %o0, [ %g3 + 0x5c ]
<== NOT EXECUTED
year = (dd & MSDOS_DD_YEAR_MASK) >> MSDOS_DD_YEAR_SHIFT;
4005a728: 99 32 20 09 srl %o0, 9, %o4
<== NOT EXECUTED
days = 0;
4005a72c: 84 10 20 00 clr %g2
<== NOT EXECUTED
for (y = 0; y < year; y++)
4005a730: 82 10 20 00 clr %g1
<== NOT EXECUTED
4005a734: 9a 8b 20 7f andcc %o4, 0x7f, %o5
<== NOT EXECUTED
4005a738: 12 80 00 08 bne 4005a758 <msdos_date_dos2unix+0x74>
<== NOT EXECUTED
4005a73c: 86 10 21 6e mov 0x16e, %g3
<== NOT EXECUTED
months = year & 0x03 ? regyear : leapyear;
4005a740: 10 80 00 0b b 4005a76c <msdos_date_dos2unix+0x88>
<== NOT EXECUTED
4005a744: 80 8b 20 03 btst 3, %o4
<== NOT EXECUTED
days += y & 0x03 ? 365 : 366;
4005a748: 86 08 60 03 and %g1, 3, %g3
<== NOT EXECUTED
4005a74c: 80 a0 00 03 cmp %g0, %g3
<== NOT EXECUTED
4005a750: 86 60 3f ff subx %g0, -1, %g3
<== NOT EXECUTED
4005a754: 86 00 e1 6d add %g3, 0x16d, %g3
<== NOT EXECUTED
for (y = 0; y < year; y++)
4005a758: 82 00 60 01 inc %g1
<== NOT EXECUTED
4005a75c: 80 a3 40 01 cmp %o5, %g1
<== NOT EXECUTED
4005a760: 12 bf ff fa bne 4005a748 <msdos_date_dos2unix+0x64>
<== NOT EXECUTED
4005a764: 84 00 80 03 add %g2, %g3, %g2
<== NOT EXECUTED
months = year & 0x03 ? regyear : leapyear;
4005a768: 80 8b 20 03 btst 3, %o4
<== NOT EXECUTED
4005a76c: 12 80 00 1e bne 4005a7e4 <msdos_date_dos2unix+0x100>
<== NOT EXECUTED
4005a770: 03 10 02 31 sethi %hi(0x4008c400), %g1
<== NOT EXECUTED
4005a774: 03 10 02 31 sethi %hi(0x4008c400), %g1
<== NOT EXECUTED
4005a778: 82 10 62 28 or %g1, 0x228, %g1 ! 4008c628 <leapyear>
<== NOT EXECUTED
month = (dd & MSDOS_DD_MONTH_MASK) >> MSDOS_DD_MONTH_SHIFT;
4005a77c: 87 32 20 05 srl %o0, 5, %g3
<== NOT EXECUTED
4005a780: 86 08 e0 0f and %g3, 0xf, %g3
<== NOT EXECUTED
if (month == 0) {
4005a784: 80 a0 e0 01 cmp %g3, 1
<== NOT EXECUTED
4005a788: 28 80 00 0b bleu,a 4005a7b4 <msdos_date_dos2unix+0xd0>
<== NOT EXECUTED
4005a78c: 82 0a 20 1f and %o0, 0x1f, %g1
<== NOT EXECUTED
4005a790: 87 28 e0 01 sll %g3, 1, %g3
<== NOT EXECUTED
4005a794: 86 00 ff fe add %g3, -2, %g3
<== NOT EXECUTED
4005a798: 86 00 40 03 add %g1, %g3, %g3
<== NOT EXECUTED
days += months[m];
4005a79c: da 10 40 00 lduh [ %g1 ], %o5
<== NOT EXECUTED
4005a7a0: 82 00 60 02 add %g1, 2, %g1
<== NOT EXECUTED
for (m = 0; m < month - 1; m++)
4005a7a4: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
4005a7a8: 12 bf ff fd bne 4005a79c <msdos_date_dos2unix+0xb8>
<== NOT EXECUTED
4005a7ac: 84 00 80 0d add %g2, %o5, %g2
<== NOT EXECUTED
days += ((dd & MSDOS_DD_DAY_MASK) >> MSDOS_DD_DAY_SHIFT) - 1;
4005a7b0: 82 0a 20 1f and %o0, 0x1f, %g1
<== NOT EXECUTED
lastseconds = (days + DAYSTO1980) * SECONDSPERDAY;
4005a7b4: 11 00 00 54 sethi %hi(0x15000), %o0
<== NOT EXECUTED
days += ((dd & MSDOS_DD_DAY_MASK) >> MSDOS_DD_DAY_SHIFT) - 1;
4005a7b8: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
lastseconds = (days + DAYSTO1980) * SECONDSPERDAY;
4005a7bc: 90 12 21 80 or %o0, 0x180, %o0
<== NOT EXECUTED
days += ((dd & MSDOS_DD_DAY_MASK) >> MSDOS_DD_DAY_SHIFT) - 1;
4005a7c0: 84 00 40 02 add %g1, %g2, %g2
<== NOT EXECUTED
lastseconds = (days + DAYSTO1980) * SECONDSPERDAY;
4005a7c4: 03 10 02 41 sethi %hi(0x40090400), %g1
<== NOT EXECUTED
4005a7c8: 84 58 80 08 smul %g2, %o0, %g2
<== NOT EXECUTED
4005a7cc: 11 04 b3 a9 sethi %hi(0x12cea400), %o0
<== NOT EXECUTED
4005a7d0: 90 12 22 00 or %o0, 0x200, %o0 ! 12cea600 <RAM_SIZE+0x128ea600>
<== NOT EXECUTED
4005a7d4: 90 00 80 08 add %g2, %o0, %o0
<== NOT EXECUTED
4005a7d8: d0 20 60 58 st %o0, [ %g1 + 0x58 ]
<== NOT EXECUTED
}
4005a7dc: 81 c3 e0 08 retl
<== NOT EXECUTED
4005a7e0: 90 01 00 08 add %g4, %o0, %o0
<== NOT EXECUTED
months = year & 0x03 ? regyear : leapyear;
4005a7e4: 10 bf ff e6 b 4005a77c <msdos_date_dos2unix+0x98>
<== NOT EXECUTED
4005a7e8: 82 10 62 40 or %g1, 0x240, %g1
<== NOT EXECUTED
4005a7ec: 03 10 02 41 sethi %hi(0x40090400), %g1
<== NOT EXECUTED
4005a7f0: d0 00 60 58 ld [ %g1 + 0x58 ], %o0 ! 40090458 <lastseconds>
<== NOT EXECUTED
}
4005a7f4: 81 c3 e0 08 retl
<== NOT EXECUTED
4005a7f8: 90 01 00 08 add %g4, %o0, %o0
<== NOT EXECUTED
4005a520 <msdos_date_unix2dos>:
if (lasttime != t) {
4005a520: 1b 10 02 41 sethi %hi(0x40090400), %o5
<== NOT EXECUTED
4005a524: c2 03 60 68 ld [ %o5 + 0x68 ], %g1 ! 40090468 <lasttime>
<== NOT EXECUTED
4005a528: 80 a0 40 08 cmp %g1, %o0
<== NOT EXECUTED
4005a52c: 02 80 00 5a be 4005a694 <msdos_date_unix2dos+0x174>
<== NOT EXECUTED
4005a530: 03 22 22 22 sethi %hi(0x88888800), %g1
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a534: 82 10 60 89 or %g1, 0x89, %g1 ! 88888889 <RAM_END+0x48488889>
<== NOT EXECUTED
4005a538: 80 52 00 01 umul %o0, %g1, %g0
<== NOT EXECUTED
4005a53c: 87 40 00 00 rd %y, %g3
<== NOT EXECUTED
4005a540: 97 30 e0 05 srl %g3, 5, %o3
<== NOT EXECUTED
4005a544: 80 52 c0 01 umul %o3, %g1, %g0
<== NOT EXECUTED
4005a548: 83 40 00 00 rd %y, %g1
<== NOT EXECUTED
4005a54c: 89 30 60 05 srl %g1, 5, %g4
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a550: 05 24 68 ac sethi %hi(0x91a2b000), %g2
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a554: 83 29 20 04 sll %g4, 4, %g1
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a558: 84 10 a3 c5 or %g2, 0x3c5, %g2
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a55c: 82 20 40 04 sub %g1, %g4, %g1
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a560: 80 52 00 02 umul %o0, %g2, %g0
<== NOT EXECUTED
4005a564: 85 40 00 00 rd %y, %g2
<== NOT EXECUTED
4005a568: 19 2a aa aa sethi %hi(0xaaaaa800), %o4
<== NOT EXECUTED
4005a56c: 85 30 a0 0b srl %g2, 0xb, %g2
<== NOT EXECUTED
4005a570: 98 13 22 ab or %o4, 0x2ab, %o4
<== NOT EXECUTED
4005a574: 80 50 80 0c umul %g2, %o4, %g0
<== NOT EXECUTED
4005a578: 99 40 00 00 rd %y, %o4
<== NOT EXECUTED
4005a57c: 89 33 20 04 srl %o4, 4, %g4
<== NOT EXECUTED
4005a580: 87 29 20 01 sll %g4, 1, %g3
<== NOT EXECUTED
4005a584: 88 00 c0 04 add %g3, %g4, %g4
<== NOT EXECUTED
4005a588: 89 29 20 03 sll %g4, 3, %g4
<== NOT EXECUTED
4005a58c: 84 20 80 04 sub %g2, %g4, %g2
<== NOT EXECUTED
4005a590: 85 28 a0 0b sll %g2, 0xb, %g2
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a594: 83 28 60 02 sll %g1, 2, %g1
<== NOT EXECUTED
lastdtime = (((t % 60) >> 1) << MSDOS_DT_2SECONDS_SHIFT)
4005a598: 87 2a e0 04 sll %o3, 4, %g3
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a59c: 82 22 c0 01 sub %o3, %g1, %g1
<== NOT EXECUTED
lastdtime = (((t % 60) >> 1) << MSDOS_DT_2SECONDS_SHIFT)
4005a5a0: 86 20 c0 0b sub %g3, %o3, %g3
<== NOT EXECUTED
+ (((t / 60) % 60) << MSDOS_DT_MINUTES_SHIFT)
4005a5a4: 83 28 60 05 sll %g1, 5, %g1
<== NOT EXECUTED
lastdtime = (((t % 60) >> 1) << MSDOS_DT_2SECONDS_SHIFT)
4005a5a8: 87 28 e0 02 sll %g3, 2, %g3
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a5ac: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
lastdtime = (((t % 60) >> 1) << MSDOS_DT_2SECONDS_SHIFT)
4005a5b0: 84 22 00 03 sub %o0, %g3, %g2
<== NOT EXECUTED
4005a5b4: 85 30 a0 01 srl %g2, 1, %g2
<== NOT EXECUTED
lasttime = t;
4005a5b8: d0 23 60 68 st %o0, [ %o5 + 0x68 ]
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a5bc: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
lastdtime = (((t % 60) >> 1) << MSDOS_DT_2SECONDS_SHIFT)
4005a5c0: 05 10 02 41 sethi %hi(0x40090400), %g2
<== NOT EXECUTED
4005a5c4: c2 30 a0 5e sth %g1, [ %g2 + 0x5e ] ! 4009045e <lastdtime>
<== NOT EXECUTED
+ (((t / 3600) % 24) << MSDOS_DT_HOURS_SHIFT);
4005a5c8: 86 10 00 01 mov %g1, %g3
<== NOT EXECUTED
if (days != lastday) {
4005a5cc: 05 10 02 41 sethi %hi(0x40090400), %g2
<== NOT EXECUTED
days = t / (SECONDSPERDAY);
4005a5d0: 03 30 8b 91 sethi %hi(0xc22e4400), %g1
<== NOT EXECUTED
if (days != lastday) {
4005a5d4: c8 00 a0 64 ld [ %g2 + 0x64 ], %g4
<== NOT EXECUTED
days = t / (SECONDSPERDAY);
4005a5d8: 82 10 61 07 or %g1, 0x107, %g1
<== NOT EXECUTED
4005a5dc: 80 52 00 01 umul %o0, %g1, %g0
<== NOT EXECUTED
4005a5e0: 91 40 00 00 rd %y, %o0
<== NOT EXECUTED
4005a5e4: 03 10 02 41 sethi %hi(0x40090400), %g1
<== NOT EXECUTED
4005a5e8: 91 32 20 10 srl %o0, 0x10, %o0
<== NOT EXECUTED
if (days != lastday) {
4005a5ec: 80 a1 00 08 cmp %g4, %o0
<== NOT EXECUTED
4005a5f0: 02 80 00 26 be 4005a688 <msdos_date_unix2dos+0x168>
<== NOT EXECUTED
4005a5f4: c2 10 60 60 lduh [ %g1 + 0x60 ], %g1
<== NOT EXECUTED
lastday = days;
4005a5f8: d0 20 a0 64 st %o0, [ %g2 + 0x64 ]
<== NOT EXECUTED
for (year = 1970;; year++) {
4005a5fc: 10 80 00 03 b 4005a608 <msdos_date_unix2dos+0xe8>
<== NOT EXECUTED
4005a600: 84 10 27 b2 mov 0x7b2, %g2
<== NOT EXECUTED
4005a604: 84 00 a0 01 inc %g2
<== NOT EXECUTED
inc = year & 0x03 ? 365 : 366;
4005a608: 88 08 a0 03 and %g2, 3, %g4
<== NOT EXECUTED
4005a60c: 80 a0 00 04 cmp %g0, %g4
<== NOT EXECUTED
4005a610: 82 60 3f ff subx %g0, -1, %g1
<== NOT EXECUTED
4005a614: 82 00 61 6d add %g1, 0x16d, %g1
<== NOT EXECUTED
if (days < inc)
4005a618: 80 a2 00 01 cmp %o0, %g1
<== NOT EXECUTED
4005a61c: 3a bf ff fa bcc,a 4005a604 <msdos_date_unix2dos+0xe4>
<== NOT EXECUTED
4005a620: 90 22 00 01 sub %o0, %g1, %o0
<== NOT EXECUTED
months = year & 0x03 ? regyear : leapyear;
4005a624: 80 a1 20 00 cmp %g4, 0
<== NOT EXECUTED
4005a628: 02 80 00 22 be 4005a6b0 <msdos_date_unix2dos+0x190>
<== NOT EXECUTED
4005a62c: 1b 10 02 31 sethi %hi(0x4008c400), %o5
<== NOT EXECUTED
4005a630: 1b 10 02 31 sethi %hi(0x4008c400), %o5
<== NOT EXECUTED
4005a634: 9a 13 62 40 or %o5, 0x240, %o5 ! 4008c640 <regyear>
<== NOT EXECUTED
for (month = 0; month < 12; month++) {
4005a638: 82 10 20 00 clr %g1
<== NOT EXECUTED
if (days < months[month])
4005a63c: 89 28 60 01 sll %g1, 1, %g4
<== NOT EXECUTED
4005a640: c8 13 40 04 lduh [ %o5 + %g4 ], %g4
<== NOT EXECUTED
4005a644: 80 a1 00 08 cmp %g4, %o0
<== NOT EXECUTED
4005a648: 18 80 00 1c bgu 4005a6b8 <msdos_date_unix2dos+0x198>
<== NOT EXECUTED
4005a64c: 82 00 60 01 inc %g1
<== NOT EXECUTED
for (month = 0; month < 12; month++) {
4005a650: 80 a0 60 0c cmp %g1, 0xc
<== NOT EXECUTED
4005a654: 12 bf ff fa bne 4005a63c <msdos_date_unix2dos+0x11c>
<== NOT EXECUTED
4005a658: 90 22 00 04 sub %o0, %g4, %o0
<== NOT EXECUTED
4005a65c: 82 10 21 a0 mov 0x1a0, %g1
<== NOT EXECUTED
+ ((month + 1) << MSDOS_DD_MONTH_SHIFT);
4005a660: 82 00 60 01 inc %g1
<== NOT EXECUTED
if (year > 1980)
4005a664: 80 a0 a7 bc cmp %g2, 0x7bc
<== NOT EXECUTED
+ ((month + 1) << MSDOS_DD_MONTH_SHIFT);
4005a668: 90 00 40 08 add %g1, %o0, %o0
<== NOT EXECUTED
if (year > 1980)
4005a66c: 08 80 00 19 bleu 4005a6d0 <msdos_date_unix2dos+0x1b0>
<== NOT EXECUTED
4005a670: 82 10 00 08 mov %o0, %g1
<== NOT EXECUTED
lastddate += (year - 1980) <<
4005a674: 84 00 b8 44 add %g2, -1980, %g2
<== NOT EXECUTED
4005a678: 85 28 a0 09 sll %g2, 9, %g2
<== NOT EXECUTED
4005a67c: 82 02 00 02 add %o0, %g2, %g1
<== NOT EXECUTED
4005a680: 05 10 02 41 sethi %hi(0x40090400), %g2
<== NOT EXECUTED
4005a684: c2 30 a0 60 sth %g1, [ %g2 + 0x60 ] ! 40090460 <lastddate>
<== NOT EXECUTED
*dtp = lastdtime;
4005a688: c6 32 80 00 sth %g3, [ %o2 ]
<== NOT EXECUTED
}
4005a68c: 81 c3 e0 08 retl
<== NOT EXECUTED
4005a690: c2 32 40 00 sth %g1, [ %o1 ]
<== NOT EXECUTED
4005a694: 03 10 02 41 sethi %hi(0x40090400), %g1
<== NOT EXECUTED
4005a698: c6 10 60 5e lduh [ %g1 + 0x5e ], %g3 ! 4009045e <lastdtime>
<== NOT EXECUTED
*dtp = lastdtime;
4005a69c: c6 32 80 00 sth %g3, [ %o2 ]
<== NOT EXECUTED
4005a6a0: 03 10 02 41 sethi %hi(0x40090400), %g1
<== NOT EXECUTED
4005a6a4: c2 10 60 60 lduh [ %g1 + 0x60 ], %g1 ! 40090460 <lastddate>
<== NOT EXECUTED
}
4005a6a8: 81 c3 e0 08 retl
<== NOT EXECUTED
4005a6ac: c2 32 40 00 sth %g1, [ %o1 ]
<== NOT EXECUTED
months = year & 0x03 ? regyear : leapyear;
4005a6b0: 10 bf ff e2 b 4005a638 <msdos_date_unix2dos+0x118>
<== NOT EXECUTED
4005a6b4: 9a 13 62 28 or %o5, 0x228, %o5
<== NOT EXECUTED
4005a6b8: 83 28 60 05 sll %g1, 5, %g1
<== NOT EXECUTED
+ ((month + 1) << MSDOS_DD_MONTH_SHIFT);
4005a6bc: 82 00 60 01 inc %g1
<== NOT EXECUTED
if (year > 1980)
4005a6c0: 80 a0 a7 bc cmp %g2, 0x7bc
<== NOT EXECUTED
+ ((month + 1) << MSDOS_DD_MONTH_SHIFT);
4005a6c4: 90 00 40 08 add %g1, %o0, %o0
<== NOT EXECUTED
if (year > 1980)
4005a6c8: 18 bf ff eb bgu 4005a674 <msdos_date_unix2dos+0x154>
<== NOT EXECUTED
4005a6cc: 82 10 00 08 mov %o0, %g1
<== NOT EXECUTED
*dtp = lastdtime;
4005a6d0: c6 32 80 00 sth %g3, [ %o2 ]
<== NOT EXECUTED
lastddate = ((days + 1) << MSDOS_DD_DAY_SHIFT)
4005a6d4: 05 10 02 41 sethi %hi(0x40090400), %g2
<== NOT EXECUTED
*ddp = lastddate;
4005a6d8: c2 32 40 00 sth %g1, [ %o1 ]
<== NOT EXECUTED
}
4005a6dc: 81 c3 e0 08 retl
<== NOT EXECUTED
4005a6e0: d0 30 a0 60 sth %o0, [ %g2 + 0x60 ]
<== NOT EXECUTED
40085f08 <msdos_dir_handlers>:
40085f08: 40 00 80 8c 40 00 7f 00 40 05 af 70 40 03 ec 2c @...@...@..p@..,
40085f18: 40 03 eb 08 40 03 eb 40 40 05 b3 e4 40 03 ea ec @...@..@@...@...
40085f28: 40 04 ff 60 40 04 ff 60 40 00 7f 08 40 00 80 94 @..`@..`@...@...
40085f38: 40 00 7f 34 40 00 80 9c 40 00 81 34 40 00 80 70 @..4@...@..4@..p
4004eb5c <msdos_dir_is_empty>:
{
4004eb5c: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = mt_entry->fs_info;
4004eb60: e0 06 20 08 ld [ %i0 + 8 ], %l0
<== NOT EXECUTED
4004eb64: f8 14 00 00 lduh [ %l0 ], %i4
<== NOT EXECUTED
*ret_val = false;
4004eb68: c0 2e 80 00 clrb [ %i2 ]
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)), MSDOS_DOT_NAME,
4004eb6c: 25 10 02 18 sethi %hi(0x40086000), %l2
<== NOT EXECUTED
4004eb70: f0 04 20 bc ld [ %l0 + 0xbc ], %i0
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)),
4004eb74: 27 10 02 18 sethi %hi(0x40086000), %l3
<== NOT EXECUTED
uint32_t j = 0, i = 0;
4004eb78: a8 10 20 00 clr %l4
<== NOT EXECUTED
4004eb7c: b9 2f 20 10 sll %i4, 0x10, %i4
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)), MSDOS_DOT_NAME,
4004eb80: a4 14 a0 28 or %l2, 0x28, %l2
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)),
4004eb84: a6 14 e0 38 or %l3, 0x38, %l3
<== NOT EXECUTED
while ((ret = fat_file_read(&fs_info->fat, fat_fd, j * fs_info->fat.vol.bps,
4004eb88: 97 37 20 10 srl %i4, 0x10, %o3
<== NOT EXECUTED
4004eb8c: 98 10 00 18 mov %i0, %o4
<== NOT EXECUTED
4004eb90: 94 5a c0 14 smul %o3, %l4, %o2
<== NOT EXECUTED
4004eb94: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004eb98: 7f ff c3 1d call 4003f80c <fat_file_read>
<== NOT EXECUTED
4004eb9c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004eba0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004eba4: 02 80 00 24 be 4004ec34 <msdos_dir_is_empty+0xd8>
<== NOT EXECUTED
4004eba8: 80 a2 20 1f cmp %o0, 0x1f
<== NOT EXECUTED
if (ret < MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004ebac: 04 80 00 26 ble 4004ec44 <msdos_dir_is_empty+0xe8>
<== NOT EXECUTED
4004ebb0: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
assert(ret == fs_info->fat.vol.bps);
4004ebb4: f8 14 00 00 lduh [ %l0 ], %i4
<== NOT EXECUTED
4004ebb8: b9 2f 20 10 sll %i4, 0x10, %i4
<== NOT EXECUTED
4004ebbc: a3 37 20 10 srl %i4, 0x10, %l1
<== NOT EXECUTED
4004ebc0: 80 a4 40 08 cmp %l1, %o0
<== NOT EXECUTED
4004ebc4: 12 80 00 29 bne 4004ec68 <msdos_dir_is_empty+0x10c>
<== NOT EXECUTED
4004ebc8: 80 a4 60 00 cmp %l1, 0
<== NOT EXECUTED
4004ebcc: f0 04 20 bc ld [ %l0 + 0xbc ], %i0
<== NOT EXECUTED
for (i = 0;
4004ebd0: 02 80 00 24 be 4004ec60 <msdos_dir_is_empty+0x104>
<== NOT EXECUTED
4004ebd4: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
if (((*MSDOS_DIR_ENTRY_TYPE(entry)) ==
4004ebd8: f6 0f 40 00 ldub [ %i5 ], %i3
<== NOT EXECUTED
4004ebdc: 80 a6 e0 e5 cmp %i3, 0xe5
<== NOT EXECUTED
4004ebe0: 22 80 00 1c be,a 4004ec50 <msdos_dir_is_empty+0xf4>
<== NOT EXECUTED
4004ebe4: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
MSDOS_THIS_DIR_ENTRY_EMPTY) ||
4004ebe8: c2 0f 60 0b ldub [ %i5 + 0xb ], %g1
<== NOT EXECUTED
4004ebec: 82 08 60 3f and %g1, 0x3f, %g1
<== NOT EXECUTED
4004ebf0: 80 a0 60 0f cmp %g1, 0xf
<== NOT EXECUTED
4004ebf4: 02 80 00 16 be 4004ec4c <msdos_dir_is_empty+0xf0>
<== NOT EXECUTED
4004ebf8: 94 10 20 0b mov 0xb, %o2
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)), MSDOS_DOT_NAME,
4004ebfc: 92 10 00 12 mov %l2, %o1
<== NOT EXECUTED
4004ec00: 40 00 57 20 call 40064880 <strncmp>
<== NOT EXECUTED
4004ec04: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
MSDOS_ATTR_LFN) ||
4004ec08: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004ec0c: 02 80 00 10 be 4004ec4c <msdos_dir_is_empty+0xf0>
<== NOT EXECUTED
4004ec10: 94 10 20 0b mov 0xb, %o2
<== NOT EXECUTED
(strncmp(MSDOS_DIR_NAME((entry)),
4004ec14: 92 10 00 13 mov %l3, %o1
<== NOT EXECUTED
4004ec18: 40 00 57 1a call 40064880 <strncmp>
<== NOT EXECUTED
4004ec1c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
MSDOS_SHORT_NAME_LEN) == 0) ||
4004ec20: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004ec24: 02 80 00 0a be 4004ec4c <msdos_dir_is_empty+0xf0>
<== NOT EXECUTED
4004ec28: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
if ((*MSDOS_DIR_NAME(entry)) ==
4004ec2c: 12 80 00 06 bne 4004ec44 <msdos_dir_is_empty+0xe8>
<== NOT EXECUTED
4004ec30: b0 10 20 00 clr %i0
<== NOT EXECUTED
*ret_val = true;
4004ec34: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4004ec38: c2 2e 80 00 stb %g1, [ %i2 ]
<== NOT EXECUTED
return RC_OK;
4004ec3c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004ec40: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
}
4004ec44: 81 c7 e0 08 ret
<== NOT EXECUTED
4004ec48: 81 e8 00 00 restore
<== NOT EXECUTED
4004ec4c: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
for (i = 0;
4004ec50: 82 27 40 18 sub %i5, %i0, %g1
<== NOT EXECUTED
4004ec54: 80 a4 40 01 cmp %l1, %g1
<== NOT EXECUTED
4004ec58: 38 bf ff e1 bgu,a 4004ebdc <msdos_dir_is_empty+0x80>
<== NOT EXECUTED
4004ec5c: f6 0f 40 00 ldub [ %i5 ], %i3
<== NOT EXECUTED
j++;
4004ec60: 10 bf ff ca b 4004eb88 <msdos_dir_is_empty+0x2c>
<== NOT EXECUTED
4004ec64: a8 05 20 01 inc %l4
<== NOT EXECUTED
assert(ret == fs_info->fat.vol.bps);
4004ec68: 17 10 02 17 sethi %hi(0x40085c00), %o3
<== NOT EXECUTED
4004ec6c: 15 10 02 18 sethi %hi(0x40086000), %o2
<== NOT EXECUTED
4004ec70: 11 10 02 17 sethi %hi(0x40085c00), %o0
<== NOT EXECUTED
4004ec74: 96 12 e3 a8 or %o3, 0x3a8, %o3
<== NOT EXECUTED
4004ec78: 94 12 a1 10 or %o2, 0x110, %o2
<== NOT EXECUTED
4004ec7c: 92 10 23 c5 mov 0x3c5, %o1
<== NOT EXECUTED
4004ec80: 7f ff ca 79 call 40041664 <__assert_func>
<== NOT EXECUTED
4004ec84: 90 12 23 c8 or %o0, 0x3c8, %o0
<== NOT EXECUTED
4004ec88: 01 00 00 00 nop
<== NOT EXECUTED
4005af70 <msdos_dir_read>:
* the number of bytes read on success, or -1 if error occured (errno
* set apropriately).
*/
ssize_t
msdos_dir_read(rtems_libio_t *iop, void *buffer, size_t count)
{
4005af70: 9d e3 be 40 save %sp, -448, %sp
<== NOT EXECUTED
int rc = RC_OK;
int eno = 0;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4005af74: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4005af78: ea 00 60 08 ld [ %g1 + 8 ], %l5
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4005af7c: c2 05 60 c0 ld [ %l5 + 0xc0 ], %g1
<== NOT EXECUTED
const rtems_dosfs_convert_handler *convert_handler = converter->handler;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
fat_file_fd_t *tmp_fat_fd = NULL;
struct dirent tmp_dirent;
size_t lfn_len = 0;
uint16_t *lfn_buf = converter->buffer.data;
4005af80: c4 00 60 04 ld [ %g1 + 4 ], %g2
<== NOT EXECUTED
const rtems_dosfs_convert_handler *convert_handler = converter->handler;
4005af84: ec 00 40 00 ld [ %g1 ], %l6
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4005af88: c2 27 be c0 st %g1, [ %fp + -320 ]
<== NOT EXECUTED
4005af8c: 90 05 60 a4 add %l5, 0xa4, %o0
<== NOT EXECUTED
char *sfn_buf = converter->buffer.data;
const size_t buf_size = converter->buffer.size;
4005af90: c2 00 60 08 ld [ %g1 + 8 ], %g1
<== NOT EXECUTED
uint16_t *lfn_buf = converter->buffer.data;
4005af94: c4 27 be c4 st %g2, [ %fp + -316 ]
<== NOT EXECUTED
* cast start and count - protect against using sizes that are not exact
* multiples of the -dirent- size. These could result in unexpected
* results
*/
start = iop->offset / sizeof(struct dirent);
count = (count / sizeof(struct dirent)) * sizeof(struct dirent);
4005af98: b5 36 a0 03 srl %i2, 3, %i2
<== NOT EXECUTED
const size_t buf_size = converter->buffer.size;
4005af9c: c2 27 be a8 st %g1, [ %fp + -344 ]
<== NOT EXECUTED
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
4005afa0: e8 06 20 14 ld [ %i0 + 0x14 ], %l4
<== NOT EXECUTED
4005afa4: d0 27 be ac st %o0, [ %fp + -340 ]
<== NOT EXECUTED
fat_file_fd_t *tmp_fat_fd = NULL;
4005afa8: c0 27 be cc clr [ %fp + -308 ]
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005afac: 7f ff 03 ca call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005afb0: c0 27 be d0 clr [ %fp + -304 ]
<== NOT EXECUTED
start = iop->offset / sizeof(struct dirent);
4005afb4: d0 1e 00 00 ldd [ %i0 ], %o0
<== NOT EXECUTED
4005afb8: 94 10 20 00 clr %o2
<== NOT EXECUTED
4005afbc: 40 00 7a e2 call 40079b44 <__divdi3>
<== NOT EXECUTED
4005afc0: 96 10 21 18 mov 0x118, %o3
<== NOT EXECUTED
{
4005afc4: f2 27 a0 48 st %i1, [ %fp + 0x48 ]
<== NOT EXECUTED
count = (count / sizeof(struct dirent)) * sizeof(struct dirent);
4005afc8: 03 03 a8 3a sethi %hi(0xea0e800), %g1
<== NOT EXECUTED
* too, so read such set of sectors is quick operation for low-level IO
* layer.
*/
bts2rd = (FAT_FD_OF_ROOT_DIR(fat_fd) &&
(fs_info->fat.vol.type & (FAT_FAT12 | FAT_FAT16))) ?
fat_fd->fat_file_size :
4005afcc: c4 05 20 20 ld [ %l4 + 0x20 ], %g2
<== NOT EXECUTED
count = (count / sizeof(struct dirent)) * sizeof(struct dirent);
4005afd0: 82 10 62 0f or %g1, 0x20f, %g1
<== NOT EXECUTED
start = iop->offset / sizeof(struct dirent);
4005afd4: a0 10 00 09 mov %o1, %l0
<== NOT EXECUTED
count = (count / sizeof(struct dirent)) * sizeof(struct dirent);
4005afd8: 80 56 80 01 umul %i2, %g1, %g0
<== NOT EXECUTED
4005afdc: b5 40 00 00 rd %y, %i2
<== NOT EXECUTED
fat_fd->fat_file_size :
4005afe0: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
count = (count / sizeof(struct dirent)) * sizeof(struct dirent);
4005afe4: b5 36 a0 01 srl %i2, 1, %i2
<== NOT EXECUTED
fat_fd->fat_file_size :
4005afe8: 02 80 00 e5 be 4005b37c <msdos_dir_read+0x40c>
<== NOT EXECUTED
4005afec: b4 5e a1 18 smul %i2, 0x118, %i2
<== NOT EXECUTED
4005aff0: c2 05 60 08 ld [ %l5 + 8 ], %g1
<== NOT EXECUTED
4005aff4: c2 27 be b0 st %g1, [ %fp + -336 ]
<== NOT EXECUTED
fs_info->fat.vol.bpc;
while (count > 0 && cmpltd >= 0)
4005aff8: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005affc: 02 80 00 f8 be 4005b3dc <msdos_dir_read+0x46c>
<== NOT EXECUTED
4005b000: 03 00 00 3f sethi %hi(0xfc00), %g1
<== NOT EXECUTED
uint8_t lfn_checksum = 0;
4005b004: c0 2f be bf clrb [ %fp + -321 ]
<== NOT EXECUTED
* convert dir entry from fixed 8+3 format (without dot)
* to 0..8 + 1dot + 0..3 format
*/
tmp_dirent.d_namlen = msdos_format_dirent_with_dot(
sfn_buf, entry); /* src text */
eno = (*convert_handler->codepage_to_utf8) (
4005b008: 82 10 63 ff or %g1, 0x3ff, %g1
<== NOT EXECUTED
size_t lfn_len = 0;
4005b00c: c0 27 be b4 clr [ %fp + -332 ]
<== NOT EXECUTED
while (count > 0 && cmpltd >= 0)
4005b010: ae 10 20 00 clr %l7
<== NOT EXECUTED
eno = (*convert_handler->codepage_to_utf8) (
4005b014: c2 27 be b8 st %g1, [ %fp + -328 ]
<== NOT EXECUTED
int lfn_entries = 0;
4005b018: a2 10 20 00 clr %l1
<== NOT EXECUTED
uint32_t lfn_start = FAT_FILE_SHORT_NAME;
4005b01c: b6 10 3f ff mov -1, %i3
<== NOT EXECUTED
ssize_t cmpltd = 0;
4005b020: ba 10 20 00 clr %i5
<== NOT EXECUTED
ret = fat_file_read(&fs_info->fat, fat_fd, (j * bts2rd),
4005b024: d8 05 60 bc ld [ %l5 + 0xbc ], %o4
<== NOT EXECUTED
4005b028: d6 07 be b0 ld [ %fp + -336 ], %o3
<== NOT EXECUTED
4005b02c: 94 10 00 17 mov %l7, %o2
<== NOT EXECUTED
4005b030: 92 10 00 14 mov %l4, %o1
<== NOT EXECUTED
4005b034: 7f ff 91 f6 call 4003f80c <fat_file_read>
<== NOT EXECUTED
4005b038: 90 10 00 15 mov %l5, %o0
<== NOT EXECUTED
if (ret < MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b03c: 80 a2 20 1f cmp %o0, 0x1f
<== NOT EXECUTED
4005b040: 04 80 00 e0 ble 4005b3c0 <msdos_dir_read+0x450>
<== NOT EXECUTED
4005b044: b8 10 00 08 mov %o0, %i4
<== NOT EXECUTED
for (i = 0; i < ret && cmpltd >= 0; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b048: 88 38 00 1d xnor %g0, %i5, %g4
<== NOT EXECUTED
4005b04c: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
4005b050: 06 80 00 47 bl 4005b16c <msdos_dir_read+0x1fc>
<== NOT EXECUTED
4005b054: 9f 31 20 1f srl %g4, 0x1f, %o7
<== NOT EXECUTED
char* entry = (char*) fs_info->cl_buf + i;
4005b058: e4 05 60 bc ld [ %l5 + 0xbc ], %l2
<== NOT EXECUTED
if ((*MSDOS_DIR_ENTRY_TYPE(entry)) ==
4005b05c: c2 0c 80 00 ldub [ %l2 ], %g1
<== NOT EXECUTED
4005b060: 9e 88 60 ff andcc %g1, 0xff, %o7
<== NOT EXECUTED
4005b064: 02 80 00 28 be 4005b104 <msdos_dir_read+0x194>
<== NOT EXECUTED
4005b068: 01 00 00 00 nop
<== NOT EXECUTED
for (i = 0; i < ret && cmpltd >= 0; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b06c: a6 10 20 00 clr %l3 ! 0 <PROM_START>
<== NOT EXECUTED
lfn_start = FAT_FILE_SHORT_NAME;
4005b070: b2 10 3f ff mov -1, %i1
<== NOT EXECUTED
if ((*MSDOS_DIR_ENTRY_TYPE(entry)) == MSDOS_THIS_DIR_ENTRY_EMPTY)
4005b074: 80 a3 e0 e5 cmp %o7, 0xe5
<== NOT EXECUTED
4005b078: 22 80 00 17 be,a 4005b0d4 <msdos_dir_read+0x164>
<== NOT EXECUTED
4005b07c: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
if (((*MSDOS_DIR_ATTR(entry)) & MSDOS_ATTR_VOLUME_ID) &&
4005b080: de 0c a0 0b ldub [ %l2 + 0xb ], %o7
<== NOT EXECUTED
4005b084: 80 8b e0 08 btst 8, %o7
<== NOT EXECUTED
4005b088: 02 80 00 3e be 4005b180 <msdos_dir_read+0x210>
<== NOT EXECUTED
4005b08c: 98 0b e0 3f and %o7, 0x3f, %o4
<== NOT EXECUTED
4005b090: 80 a3 20 0f cmp %o4, 0xf
<== NOT EXECUTED
4005b094: 32 80 00 10 bne,a 4005b0d4 <msdos_dir_read+0x164>
<== NOT EXECUTED
4005b098: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
if (lfn_start == FAT_FILE_SHORT_NAME)
4005b09c: 80 a6 ff ff cmp %i3, -1
<== NOT EXECUTED
4005b0a0: 02 80 00 8a be 4005b2c8 <msdos_dir_read+0x358>
<== NOT EXECUTED
4005b0a4: 96 10 20 00 clr %o3
<== NOT EXECUTED
if ((lfn_entries != (*MSDOS_DIR_ENTRY_TYPE(entry) &
4005b0a8: c2 0c 80 00 ldub [ %l2 ], %g1
<== NOT EXECUTED
4005b0ac: 82 08 60 3f and %g1, 0x3f, %g1
<== NOT EXECUTED
4005b0b0: 80 a0 40 11 cmp %g1, %l1
<== NOT EXECUTED
4005b0b4: 12 80 00 06 bne 4005b0cc <msdos_dir_read+0x15c>
<== NOT EXECUTED
4005b0b8: c2 0f be bf ldub [ %fp + -321 ], %g1
<== NOT EXECUTED
MSDOS_LAST_LONG_ENTRY_MASK)) ||
4005b0bc: de 0c a0 0d ldub [ %l2 + 0xd ], %o7
<== NOT EXECUTED
4005b0c0: 80 a3 c0 01 cmp %o7, %g1
<== NOT EXECUTED
4005b0c4: 02 80 00 14 be 4005b114 <msdos_dir_read+0x1a4>
<== NOT EXECUTED
4005b0c8: c2 07 be a8 ld [ %fp + -344 ], %g1
<== NOT EXECUTED
lfn_start = FAT_FILE_SHORT_NAME;
4005b0cc: b6 10 3f ff mov -1, %i3
<== NOT EXECUTED
for (i = 0; i < ret && cmpltd >= 0; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b0d0: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
4005b0d4: 83 31 20 1f srl %g4, 0x1f, %g1
<== NOT EXECUTED
4005b0d8: 80 a4 c0 1c cmp %l3, %i4
<== NOT EXECUTED
4005b0dc: 1a 80 00 24 bcc 4005b16c <msdos_dir_read+0x1fc>
<== NOT EXECUTED
4005b0e0: 9e 10 00 01 mov %g1, %o7
<== NOT EXECUTED
4005b0e4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005b0e8: 02 80 00 22 be 4005b170 <msdos_dir_read+0x200>
<== NOT EXECUTED
4005b0ec: c2 07 be b0 ld [ %fp + -336 ], %g1
<== NOT EXECUTED
char* entry = (char*) fs_info->cl_buf + i;
4005b0f0: d2 05 60 bc ld [ %l5 + 0xbc ], %o1
<== NOT EXECUTED
if ((*MSDOS_DIR_ENTRY_TYPE(entry)) ==
4005b0f4: c2 0a 40 13 ldub [ %o1 + %l3 ], %g1
<== NOT EXECUTED
4005b0f8: 9e 88 60 ff andcc %g1, 0xff, %o7
<== NOT EXECUTED
4005b0fc: 12 bf ff de bne 4005b074 <msdos_dir_read+0x104>
<== NOT EXECUTED
4005b100: a4 02 40 13 add %o1, %l3, %l2
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b104: 7f ff 03 99 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b108: d0 07 be ac ld [ %fp + -340 ], %o0
<== NOT EXECUTED
j++;
}
msdos_fs_unlock(fs_info);
return cmpltd;
}
4005b10c: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b110: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
lfn_entries--;
4005b114: a2 04 7f ff add %l1, -1, %l1
<== NOT EXECUTED
offset_lfn = lfn_entries * MSDOS_LFN_LEN_PER_ENTRY;
4005b118: 95 2c 60 01 sll %l1, 1, %o2
<== NOT EXECUTED
4005b11c: 94 02 80 11 add %o2, %l1, %o2
<== NOT EXECUTED
4005b120: 95 2a a0 02 sll %o2, 2, %o2
<== NOT EXECUTED
4005b124: 94 02 80 11 add %o2, %l1, %o2
<== NOT EXECUTED
&lfn_buf[offset_lfn],
4005b128: 93 2a a0 01 sll %o2, 1, %o1
<== NOT EXECUTED
lfn_len += msdos_get_utf16_string_from_long_entry (
4005b12c: 94 20 40 0a sub %g1, %o2, %o2
<== NOT EXECUTED
4005b130: c2 07 be c4 ld [ %fp + -316 ], %g1
<== NOT EXECUTED
4005b134: c8 27 be a4 st %g4, [ %fp + -348 ]
<== NOT EXECUTED
4005b138: 92 00 40 09 add %g1, %o1, %o1
<== NOT EXECUTED
4005b13c: 96 0a e0 01 and %o3, 1, %o3
<== NOT EXECUTED
4005b140: 7f ff ce d3 call 4004ec8c <msdos_get_utf16_string_from_long_entry>
<== NOT EXECUTED
4005b144: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
4005b148: c2 07 be b4 ld [ %fp + -332 ], %g1
<== NOT EXECUTED
4005b14c: 82 00 40 08 add %g1, %o0, %g1
<== NOT EXECUTED
4005b150: c2 27 be b4 st %g1, [ %fp + -332 ]
<== NOT EXECUTED
for (i = 0; i < ret && cmpltd >= 0; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b154: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
4005b158: c8 07 be a4 ld [ %fp + -348 ], %g4
<== NOT EXECUTED
4005b15c: 83 31 20 1f srl %g4, 0x1f, %g1
<== NOT EXECUTED
4005b160: 80 a4 c0 1c cmp %l3, %i4
<== NOT EXECUTED
4005b164: 0a bf ff e0 bcs 4005b0e4 <msdos_dir_read+0x174>
<== NOT EXECUTED
4005b168: 9e 10 00 01 mov %g1, %o7
<== NOT EXECUTED
4005b16c: c2 07 be b0 ld [ %fp + -336 ], %g1
<== NOT EXECUTED
while (count > 0 && cmpltd >= 0)
4005b170: 80 8b e0 ff btst 0xff, %o7
<== NOT EXECUTED
4005b174: 12 bf ff ac bne 4005b024 <msdos_dir_read+0xb4>
<== NOT EXECUTED
4005b178: ae 05 c0 01 add %l7, %g1, %l7
<== NOT EXECUTED
4005b17c: 30 bf ff e2 b,a 4005b104 <msdos_dir_read+0x194>
<== NOT EXECUTED
if ((*MSDOS_DIR_ATTR(entry) & MSDOS_ATTR_LFN_MASK) ==
4005b180: 80 a3 20 0f cmp %o4, 0xf
<== NOT EXECUTED
4005b184: 02 bf ff c6 be 4005b09c <msdos_dir_read+0x12c>
<== NOT EXECUTED
4005b188: 80 a4 20 00 cmp %l0, 0
<== NOT EXECUTED
if (start)
4005b18c: 02 80 00 05 be 4005b1a0 <msdos_dir_read+0x230>
<== NOT EXECUTED
4005b190: 98 07 be d0 add %fp, -304, %o4
<== NOT EXECUTED
start--;
4005b194: a0 04 3f ff add %l0, -1, %l0
<== NOT EXECUTED
lfn_start = FAT_FILE_SHORT_NAME;
4005b198: 10 bf ff ce b 4005b0d0 <msdos_dir_read+0x160>
<== NOT EXECUTED
4005b19c: b6 10 3f ff mov -1, %i3
<== NOT EXECUTED
rc = fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM,
4005b1a0: 96 10 00 17 mov %l7, %o3
<== NOT EXECUTED
4005b1a4: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4005b1a8: 92 10 00 14 mov %l4, %o1
<== NOT EXECUTED
4005b1ac: 7f ff 92 8c call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4005b1b0: 90 10 00 15 mov %l5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4005b1b4: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4005b1b8: 12 80 00 7c bne 4005b3a8 <msdos_dir_read+0x438>
<== NOT EXECUTED
4005b1bc: c2 07 be d0 ld [ %fp + -304 ], %g1
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4005b1c0: f2 27 be e0 st %i1, [ %fp + -288 ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &dir_pos, &tmp_fat_fd);
4005b1c4: 94 07 be cc add %fp, -308, %o2
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4005b1c8: f2 27 be e4 st %i1, [ %fp + -284 ]
<== NOT EXECUTED
4005b1cc: 92 07 be d8 add %fp, -296, %o1
<== NOT EXECUTED
dir_pos.sname.cln = cur_cln;
4005b1d0: c2 27 be d8 st %g1, [ %fp + -296 ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &dir_pos, &tmp_fat_fd);
4005b1d4: 90 10 00 15 mov %l5, %o0
<== NOT EXECUTED
4005b1d8: 7f ff 90 a4 call 4003f468 <fat_file_open>
<== NOT EXECUTED
4005b1dc: e6 27 be dc st %l3, [ %fp + -292 ]
<== NOT EXECUTED
if (rc != RC_OK)
4005b1e0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4005b1e4: 12 80 00 71 bne 4005b3a8 <msdos_dir_read+0x438>
<== NOT EXECUTED
4005b1e8: c2 07 be cc ld [ %fp + -308 ], %g1
<== NOT EXECUTED
tmp_dirent.d_ino = tmp_fat_fd->ino;
4005b1ec: c2 00 60 0c ld [ %g1 + 0xc ], %g1
<== NOT EXECUTED
tmp_dirent.d_off = start + cmpltd;
4005b1f0: 89 3f 60 1f sra %i5, 0x1f, %g4
<== NOT EXECUTED
4005b1f4: fa 27 be f4 st %i5, [ %fp + -268 ]
<== NOT EXECUTED
if (lfn_entries == 0 &&
4005b1f8: 80 a6 ff ff cmp %i3, -1
<== NOT EXECUTED
tmp_dirent.d_off = start + cmpltd;
4005b1fc: c8 27 be f0 st %g4, [ %fp + -272 ]
<== NOT EXECUTED
tmp_dirent.d_reclen = sizeof(struct dirent);
4005b200: 88 10 21 18 mov 0x118, %g4
<== NOT EXECUTED
tmp_dirent.d_ino = tmp_fat_fd->ino;
4005b204: c2 27 be e8 st %g1, [ %fp + -280 ]
<== NOT EXECUTED
if (lfn_entries == 0 &&
4005b208: 02 80 00 05 be 4005b21c <msdos_dir_read+0x2ac>
<== NOT EXECUTED
4005b20c: c8 37 be f8 sth %g4, [ %fp + -264 ]
<== NOT EXECUTED
4005b210: 80 a4 60 00 cmp %l1, 0
<== NOT EXECUTED
4005b214: 02 80 00 44 be 4005b324 <msdos_dir_read+0x3b4>
<== NOT EXECUTED
4005b218: 01 00 00 00 nop
<== NOT EXECUTED
tmp_dirent.d_namlen = msdos_format_dirent_with_dot(
4005b21c: f6 07 be c4 ld [ %fp + -316 ], %i3
<== NOT EXECUTED
size_t len = sizeof(tmp_dirent.d_name) - 1;
4005b220: 82 10 20 ff mov 0xff, %g1
<== NOT EXECUTED
tmp_dirent.d_namlen = msdos_format_dirent_with_dot(
4005b224: 92 10 00 12 mov %l2, %o1
<== NOT EXECUTED
size_t len = sizeof(tmp_dirent.d_name) - 1;
4005b228: c2 27 be d4 st %g1, [ %fp + -300 ]
<== NOT EXECUTED
tmp_dirent.d_namlen = msdos_format_dirent_with_dot(
4005b22c: 7f ff ce a0 call 4004ecac <msdos_format_dirent_with_dot>
<== NOT EXECUTED
4005b230: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
eno = (*convert_handler->codepage_to_utf8) (
4005b234: c4 07 be b8 ld [ %fp + -328 ], %g2
<== NOT EXECUTED
tmp_dirent.d_namlen = msdos_format_dirent_with_dot(
4005b238: d0 37 be fa sth %o0, [ %fp + -262 ]
<== NOT EXECUTED
eno = (*convert_handler->codepage_to_utf8) (
4005b23c: 94 0a 00 02 and %o0, %g2, %o2
<== NOT EXECUTED
4005b240: c2 05 a0 04 ld [ %l6 + 4 ], %g1
<== NOT EXECUTED
4005b244: d0 07 be c0 ld [ %fp + -320 ], %o0
<== NOT EXECUTED
4005b248: 98 07 be d4 add %fp, -300, %o4
<== NOT EXECUTED
4005b24c: 96 07 be fc add %fp, -260, %o3
<== NOT EXECUTED
4005b250: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005b254: 92 10 00 1b mov %i3, %o1
<== NOT EXECUTED
if ( 0 == eno ) {
4005b258: a4 92 20 00 orcc %o0, 0, %l2
<== NOT EXECUTED
4005b25c: 12 80 00 2c bne 4005b30c <msdos_dir_read+0x39c>
<== NOT EXECUTED
4005b260: c2 07 be d4 ld [ %fp + -300 ], %g1
<== NOT EXECUTED
tmp_dirent.d_name[len] = '\0';
4005b264: 88 07 80 01 add %fp, %g1, %g4
<== NOT EXECUTED
tmp_dirent.d_namlen = len;
4005b268: c2 37 be fa sth %g1, [ %fp + -262 ]
<== NOT EXECUTED
4005b26c: b6 10 3f ff mov -1, %i3
<== NOT EXECUTED
tmp_dirent.d_name[len] = '\0';
4005b270: c0 29 3e fc clrb [ %g4 + -260 ]
<== NOT EXECUTED
memcpy(buffer + cmpltd, &tmp_dirent, sizeof(struct dirent));
4005b274: 94 10 21 18 mov 0x118, %o2
<== NOT EXECUTED
4005b278: c2 07 a0 48 ld [ %fp + 0x48 ], %g1
<== NOT EXECUTED
4005b27c: 90 00 40 1d add %g1, %i5, %o0
<== NOT EXECUTED
4005b280: 40 00 17 54 call 40060fd0 <memcpy>
<== NOT EXECUTED
4005b284: 92 07 be e8 add %fp, -280, %o1
<== NOT EXECUTED
iop->offset = iop->offset + sizeof(struct dirent);
4005b288: d8 1e 00 00 ldd [ %i0 ], %o4
<== NOT EXECUTED
4005b28c: 96 83 61 18 addcc %o5, 0x118, %o3
<== NOT EXECUTED
4005b290: 94 43 20 00 addx %o4, 0, %o2
<== NOT EXECUTED
4005b294: d4 3e 00 00 std %o2, [ %i0 ]
<== NOT EXECUTED
rc = fat_file_close(&fs_info->fat, tmp_fat_fd);
4005b298: 90 10 00 15 mov %l5, %o0
<== NOT EXECUTED
4005b29c: 7f ff 92 1b call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4005b2a0: d2 07 be cc ld [ %fp + -308 ], %o1
<== NOT EXECUTED
cmpltd += (sizeof(struct dirent));
4005b2a4: ba 07 61 18 add %i5, 0x118, %i5
<== NOT EXECUTED
if (rc != RC_OK)
4005b2a8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4005b2ac: 12 80 00 3f bne 4005b3a8 <msdos_dir_read+0x438>
<== NOT EXECUTED
4005b2b0: b4 06 be e8 add %i2, -280, %i2
<== NOT EXECUTED
if (count <= 0)
4005b2b4: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005b2b8: 02 bf ff 93 be 4005b104 <msdos_dir_read+0x194>
<== NOT EXECUTED
4005b2bc: 88 38 00 1d xnor %g0, %i5, %g4
<== NOT EXECUTED
for (i = 0; i < ret && cmpltd >= 0; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4005b2c0: 10 bf ff 85 b 4005b0d4 <msdos_dir_read+0x164>
<== NOT EXECUTED
4005b2c4: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
if ((*MSDOS_DIR_ENTRY_TYPE(entry) &
4005b2c8: 80 88 60 40 btst 0x40, %g1
<== NOT EXECUTED
4005b2cc: 22 bf ff 82 be,a 4005b0d4 <msdos_dir_read+0x164>
<== NOT EXECUTED
4005b2d0: a6 04 e0 20 add %l3, 0x20, %l3
<== NOT EXECUTED
lfn_entries = (*MSDOS_DIR_ENTRY_TYPE(entry) &
4005b2d4: a2 08 60 3f and %g1, 0x3f, %l1
<== NOT EXECUTED
lfn_checksum = *MSDOS_DIR_LFN_CHECKSUM(entry);
4005b2d8: c2 0c a0 0d ldub [ %l2 + 0xd ], %g1
<== NOT EXECUTED
4005b2dc: c8 27 be a4 st %g4, [ %fp + -348 ]
<== NOT EXECUTED
memset (tmp_dirent.d_name, 0, sizeof(tmp_dirent.d_name));
4005b2e0: 94 10 21 00 mov 0x100, %o2
<== NOT EXECUTED
lfn_checksum = *MSDOS_DIR_LFN_CHECKSUM(entry);
4005b2e4: c2 2f be bf stb %g1, [ %fp + -321 ]
<== NOT EXECUTED
memset (tmp_dirent.d_name, 0, sizeof(tmp_dirent.d_name));
4005b2e8: 92 10 20 00 clr %o1
<== NOT EXECUTED
4005b2ec: 90 07 be fc add %fp, -260, %o0
<== NOT EXECUTED
4005b2f0: 40 00 17 c2 call 400611f8 <memset>
<== NOT EXECUTED
4005b2f4: c0 27 be b4 clr [ %fp + -332 ]
<== NOT EXECUTED
lfn_start =
4005b2f8: b6 05 c0 13 add %l7, %l3, %i3
<== NOT EXECUTED
is_first_entry = true;
4005b2fc: 96 10 20 01 mov 1, %o3
<== NOT EXECUTED
lfn_start =
4005b300: b7 36 e0 05 srl %i3, 5, %i3
<== NOT EXECUTED
4005b304: 10 bf ff 69 b 4005b0a8 <msdos_dir_read+0x138>
<== NOT EXECUTED
4005b308: c8 07 be a4 ld [ %fp + -348 ], %g4
<== NOT EXECUTED
errno = eno;
4005b30c: 40 00 05 82 call 4005c914 <__errno>
<== NOT EXECUTED
4005b310: b6 10 3f ff mov -1, %i3
<== NOT EXECUTED
4005b314: e4 22 00 00 st %l2, [ %o0 ]
<== NOT EXECUTED
cmpltd = -1;
4005b318: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4005b31c: 10 bf ff 6d b 4005b0d0 <msdos_dir_read+0x160>
<== NOT EXECUTED
4005b320: 88 10 20 00 clr %g4
<== NOT EXECUTED
lfn_checksum == msdos_lfn_checksum(entry)) {
4005b324: 7f ff cc 3f call 4004e420 <msdos_lfn_checksum>
<== NOT EXECUTED
4005b328: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
if (lfn_entries == 0 &&
4005b32c: c2 0f be bf ldub [ %fp + -321 ], %g1
<== NOT EXECUTED
4005b330: 80 a2 00 01 cmp %o0, %g1
<== NOT EXECUTED
4005b334: 12 bf ff ba bne 4005b21c <msdos_dir_read+0x2ac>
<== NOT EXECUTED
4005b338: 82 10 20 ff mov 0xff, %g1
<== NOT EXECUTED
size_t len = sizeof(tmp_dirent.d_name) - 1;
4005b33c: c2 27 be d4 st %g1, [ %fp + -300 ]
<== NOT EXECUTED
eno = (*convert_handler->utf16_to_utf8) (
4005b340: 98 07 be d4 add %fp, -300, %o4
<== NOT EXECUTED
4005b344: c2 05 a0 0c ld [ %l6 + 0xc ], %g1
<== NOT EXECUTED
4005b348: d4 07 be b4 ld [ %fp + -332 ], %o2
<== NOT EXECUTED
4005b34c: d2 07 be c4 ld [ %fp + -316 ], %o1
<== NOT EXECUTED
4005b350: d0 07 be c0 ld [ %fp + -320 ], %o0
<== NOT EXECUTED
4005b354: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005b358: 96 07 be fc add %fp, -260, %o3
<== NOT EXECUTED
if (eno == 0) {
4005b35c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4005b360: 32 bf ff b0 bne,a 4005b220 <msdos_dir_read+0x2b0>
<== NOT EXECUTED
4005b364: f6 07 be c4 ld [ %fp + -316 ], %i3
<== NOT EXECUTED
tmp_dirent.d_namlen = len;
4005b368: c2 07 be d4 ld [ %fp + -300 ], %g1
<== NOT EXECUTED
tmp_dirent.d_name[len] = '\0';
4005b36c: 88 07 80 01 add %fp, %g1, %g4
<== NOT EXECUTED
tmp_dirent.d_namlen = len;
4005b370: c2 37 be fa sth %g1, [ %fp + -262 ]
<== NOT EXECUTED
tmp_dirent.d_name[len] = '\0';
4005b374: 10 bf ff c0 b 4005b274 <msdos_dir_read+0x304>
<== NOT EXECUTED
4005b378: c0 29 3e fc clrb [ %g4 + -260 ]
<== NOT EXECUTED
bts2rd = (FAT_FD_OF_ROOT_DIR(fat_fd) &&
4005b37c: c2 05 20 24 ld [ %l4 + 0x24 ], %g1
<== NOT EXECUTED
4005b380: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005b384: 32 bf ff 1c bne,a 4005aff4 <msdos_dir_read+0x84>
<== NOT EXECUTED
4005b388: c2 05 60 08 ld [ %l5 + 8 ], %g1
<== NOT EXECUTED
4005b38c: c2 0d 60 16 ldub [ %l5 + 0x16 ], %g1
<== NOT EXECUTED
4005b390: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4005b394: 22 bf ff 18 be,a 4005aff4 <msdos_dir_read+0x84>
<== NOT EXECUTED
4005b398: c2 05 60 08 ld [ %l5 + 8 ], %g1
<== NOT EXECUTED
fat_fd->fat_file_size :
4005b39c: c2 05 20 18 ld [ %l4 + 0x18 ], %g1
<== NOT EXECUTED
4005b3a0: 10 bf ff 16 b 4005aff8 <msdos_dir_read+0x88>
<== NOT EXECUTED
4005b3a4: c2 27 be b0 st %g1, [ %fp + -336 ]
<== NOT EXECUTED
4005b3a8: 82 10 00 08 mov %o0, %g1
<== NOT EXECUTED
4005b3ac: d0 07 be ac ld [ %fp + -340 ], %o0
<== NOT EXECUTED
4005b3b0: 7f ff 02 ee call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b3b4: ba 10 00 01 mov %g1, %i5
<== NOT EXECUTED
}
4005b3b8: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b3bc: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
4005b3c0: 7f ff 02 ea call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b3c4: d0 07 be ac ld [ %fp + -340 ], %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
4005b3c8: 40 00 05 53 call 4005c914 <__errno>
<== NOT EXECUTED
4005b3cc: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4005b3d0: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4005b3d4: 10 bf ff 4e b 4005b10c <msdos_dir_read+0x19c>
<== NOT EXECUTED
4005b3d8: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
ssize_t cmpltd = 0;
4005b3dc: 10 bf ff 4a b 4005b104 <msdos_dir_read+0x194>
<== NOT EXECUTED
4005b3e0: ba 10 20 00 clr %i5
<== NOT EXECUTED
4005b3e4 <msdos_dir_stat>:
int
msdos_dir_stat(
const rtems_filesystem_location_info_t *loc,
struct stat *buf
)
{
4005b3e4: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = loc->mt_entry->fs_info;
4005b3e8: c2 06 20 14 ld [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
4005b3ec: f8 00 60 08 ld [ %g1 + 8 ], %i4
<== NOT EXECUTED
fat_file_fd_t *fat_fd = loc->node_access;
4005b3f0: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
4005b3f4: b6 07 20 a4 add %i4, 0xa4, %i3
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b3f8: 7f ff 02 b7 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b3fc: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
4005b400: c2 07 20 6c ld [ %i4 + 0x6c ], %g1
<== NOT EXECUTED
buf->st_dev = rtems_disk_get_device_identifier(fs_info->fat.vol.dd);
buf->st_ino = fat_fd->ino;
buf->st_mode = S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO;
buf->st_rdev = 0ll;
buf->st_size = fat_fd->fat_file_size;
4005b404: c8 07 60 18 ld [ %i5 + 0x18 ], %g4
<== NOT EXECUTED
4005b408: d8 18 40 00 ldd [ %g1 ], %o4
<== NOT EXECUTED
buf->st_blocks = fat_fd->fat_file_size >> FAT_SECTOR512_BITS;
buf->st_blksize = fs_info->fat.vol.bps;
4005b40c: f4 17 00 00 lduh [ %i4 ], %i2
<== NOT EXECUTED
buf->st_ino = fat_fd->ino;
4005b410: c2 07 60 0c ld [ %i5 + 0xc ], %g1
<== NOT EXECUTED
buf->st_atime = fat_fd->mtime;
4005b414: c4 1f 60 48 ldd [ %i5 + 0x48 ], %g2
<== NOT EXECUTED
buf->st_ctime = fat_fd->ctime;
4005b418: f8 1f 60 40 ldd [ %i5 + 0x40 ], %i4
<== NOT EXECUTED
buf->st_blocks = fat_fd->fat_file_size >> FAT_SECTOR512_BITS;
4005b41c: 9f 31 20 09 srl %g4, 9, %o7
<== NOT EXECUTED
buf->st_ino = fat_fd->ino;
4005b420: c2 26 60 08 st %g1, [ %i1 + 8 ]
<== NOT EXECUTED
buf->st_mode = S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO;
4005b424: 03 00 00 10 sethi %hi(0x4000), %g1
<== NOT EXECUTED
buf->st_dev = rtems_disk_get_device_identifier(fs_info->fat.vol.dd);
4005b428: d8 3e 40 00 std %o4, [ %i1 ]
<== NOT EXECUTED
buf->st_mode = S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO;
4005b42c: 82 10 61 ff or %g1, 0x1ff, %g1
<== NOT EXECUTED
buf->st_size = fat_fd->fat_file_size;
4005b430: c0 26 60 20 clr [ %i1 + 0x20 ]
<== NOT EXECUTED
buf->st_mtime = fat_fd->mtime;
msdos_fs_unlock(fs_info);
return RC_OK;
}
4005b434: b0 10 20 00 clr %i0
<== NOT EXECUTED
buf->st_rdev = 0ll;
4005b438: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b43c: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
4005b440: c0 26 60 1c clr [ %i1 + 0x1c ]
<== NOT EXECUTED
buf->st_mode = S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO;
4005b444: c2 26 60 0c st %g1, [ %i1 + 0xc ]
<== NOT EXECUTED
buf->st_size = fat_fd->fat_file_size;
4005b448: c8 26 60 24 st %g4, [ %i1 + 0x24 ]
<== NOT EXECUTED
buf->st_blocks = fat_fd->fat_file_size >> FAT_SECTOR512_BITS;
4005b44c: de 26 60 5c st %o7, [ %i1 + 0x5c ]
<== NOT EXECUTED
buf->st_blksize = fs_info->fat.vol.bps;
4005b450: f4 26 60 58 st %i2, [ %i1 + 0x58 ]
<== NOT EXECUTED
buf->st_atime = fat_fd->mtime;
4005b454: c4 3e 60 28 std %g2, [ %i1 + 0x28 ]
<== NOT EXECUTED
buf->st_ctime = fat_fd->ctime;
4005b458: f8 3e 60 48 std %i4, [ %i1 + 0x48 ]
<== NOT EXECUTED
4005b45c: 7f ff 02 c3 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b460: c4 3e 60 38 std %g2, [ %i1 + 0x38 ]
<== NOT EXECUTED
}
4005b464: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b468: 81 e8 00 00 restore
<== NOT EXECUTED
4004e200 <msdos_eval_path>:
.eval_token = msdos_eval_token
};
void msdos_eval_path(rtems_filesystem_eval_path_context_t *ctx)
{
rtems_filesystem_eval_path_generic(ctx, NULL, &msdos_eval_config);
4004e200: 15 10 02 17 sethi %hi(0x40085c00), %o2
<== NOT EXECUTED
4004e204: 92 10 20 00 clr %o1
<== NOT EXECUTED
4004e208: 94 12 a3 00 or %o2, 0x300, %o2
<== NOT EXECUTED
4004e20c: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
4004e210: 7f fe fa bd call 4000cd04 <rtems_filesystem_eval_path_generic>
<== NOT EXECUTED
4004e214: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
4005b660 <msdos_file_ftruncate>:
* RETURNS:
* RC_OK on success, or -1 if error occured (errno set appropriately).
*/
int
msdos_file_ftruncate(rtems_libio_t *iop, off_t length)
{
4005b660: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
int rc = RC_OK;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4005b664: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4005b668: f8 00 60 08 ld [ %g1 + 8 ], %i4
<== NOT EXECUTED
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
4005b66c: fa 06 20 14 ld [ %i0 + 0x14 ], %i5
<== NOT EXECUTED
4005b670: b6 07 20 a4 add %i4, 0xa4, %i3
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b674: 7f ff 02 18 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b678: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
uint32_t old_length;
msdos_fs_lock(fs_info);
old_length = fat_fd->fat_file_size;
if (length < old_length) {
4005b67c: 82 10 20 00 clr %g1
<== NOT EXECUTED
4005b680: 80 a0 40 19 cmp %g1, %i1
<== NOT EXECUTED
4005b684: 14 80 00 23 bg 4005b710 <msdos_file_ftruncate+0xb0>
<== NOT EXECUTED
4005b688: e0 07 60 18 ld [ %i5 + 0x18 ], %l0
<== NOT EXECUTED
4005b68c: 02 80 00 1f be 4005b708 <msdos_file_ftruncate+0xa8>
<== NOT EXECUTED
4005b690: 80 a4 00 1a cmp %l0, %i2
<== NOT EXECUTED
rc = fat_file_truncate(&fs_info->fat, fat_fd, length);
} else {
uint32_t new_length;
rc = fat_file_extend(&fs_info->fat,
4005b694: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4005b698: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4005b69c: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4005b6a0: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
4005b6a4: 7f ff 91 83 call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
4005b6a8: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
fat_fd,
true,
length,
&new_length);
if (rc == RC_OK && length != new_length) {
4005b6ac: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4005b6b0: 12 80 00 12 bne 4005b6f8 <msdos_file_ftruncate+0x98>
<== NOT EXECUTED
4005b6b4: 80 a6 00 19 cmp %i0, %i1
<== NOT EXECUTED
4005b6b8: 12 80 00 28 bne 4005b758 <msdos_file_ftruncate+0xf8>
<== NOT EXECUTED
4005b6bc: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
4005b6c0: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
4005b6c4: 12 80 00 26 bne 4005b75c <msdos_file_ftruncate+0xfc>
<== NOT EXECUTED
4005b6c8: 94 10 00 10 mov %l0, %o2
<== NOT EXECUTED
4005b6cc: c2 0f 60 30 ldub [ %i5 + 0x30 ], %g1
<== NOT EXECUTED
4005b6d0: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->fat_file_size = s;
4005b6d4: f4 27 60 18 st %i2, [ %i5 + 0x18 ]
<== NOT EXECUTED
}
if (rc == RC_OK)
{
fat_file_set_file_size(fat_fd, length);
fat_file_set_ctime_mtime(fat_fd, time(NULL));
4005b6d8: 90 10 20 00 clr %o0
<== NOT EXECUTED
4005b6dc: 40 00 40 de call 4006ba54 <time>
<== NOT EXECUTED
4005b6e0: c2 2f 60 30 stb %g1, [ %i5 + 0x30 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b6e4: c2 0f 60 30 ldub [ %i5 + 0x30 ], %g1
<== NOT EXECUTED
4005b6e8: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->ctime = t;
4005b6ec: d0 3f 60 40 std %o0, [ %i5 + 0x40 ]
<== NOT EXECUTED
fat_fd->mtime = t;
4005b6f0: d0 3f 60 48 std %o0, [ %i5 + 0x48 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b6f4: c2 2f 60 30 stb %g1, [ %i5 + 0x30 ]
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b6f8: 7f ff 02 1c call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b6fc: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
}
msdos_fs_unlock(fs_info);
return rc;
}
4005b700: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b704: 81 e8 00 00 restore
<== NOT EXECUTED
if (length < old_length) {
4005b708: 08 bf ff e4 bleu 4005b698 <msdos_file_ftruncate+0x38>
<== NOT EXECUTED
4005b70c: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
rc = fat_file_truncate(&fs_info->fat, fat_fd, length);
4005b710: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4005b714: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
4005b718: 7f ff 90 b9 call 4003f9fc <fat_file_truncate>
<== NOT EXECUTED
4005b71c: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc == RC_OK)
4005b720: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4005b724: 12 bf ff f5 bne 4005b6f8 <msdos_file_ftruncate+0x98>
<== NOT EXECUTED
4005b728: 90 10 20 00 clr %o0
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b72c: c2 0f 60 30 ldub [ %i5 + 0x30 ], %g1
<== NOT EXECUTED
4005b730: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->fat_file_size = s;
4005b734: f4 27 60 18 st %i2, [ %i5 + 0x18 ]
<== NOT EXECUTED
fat_file_set_ctime_mtime(fat_fd, time(NULL));
4005b738: 40 00 40 c7 call 4006ba54 <time>
<== NOT EXECUTED
4005b73c: c2 2f 60 30 stb %g1, [ %i5 + 0x30 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b740: c2 0f 60 30 ldub [ %i5 + 0x30 ], %g1
<== NOT EXECUTED
4005b744: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->ctime = t;
4005b748: d0 3f 60 40 std %o0, [ %i5 + 0x40 ]
<== NOT EXECUTED
fat_fd->mtime = t;
4005b74c: d0 3f 60 48 std %o0, [ %i5 + 0x48 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b750: 10 bf ff ea b 4005b6f8 <msdos_file_ftruncate+0x98>
<== NOT EXECUTED
4005b754: c2 2f 60 30 stb %g1, [ %i5 + 0x30 ]
<== NOT EXECUTED
fat_file_truncate(&fs_info->fat, fat_fd, old_length);
4005b758: 94 10 00 10 mov %l0, %o2
<== NOT EXECUTED
4005b75c: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
4005b760: 7f ff 90 a7 call 4003f9fc <fat_file_truncate>
<== NOT EXECUTED
4005b764: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
errno = ENOSPC;
4005b768: 40 00 04 6b call 4005c914 <__errno>
<== NOT EXECUTED
4005b76c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4005b770: 82 10 20 1c mov 0x1c, %g1
<== NOT EXECUTED
4005b774: 10 bf ff e1 b 4005b6f8 <msdos_file_ftruncate+0x98>
<== NOT EXECUTED
4005b778: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40085f48 <msdos_file_handlers>:
40085f48: 40 00 80 8c 40 00 7f 00 40 05 b4 6c 40 05 b4 d0 @...@...@..l@...
40085f58: 40 03 eb 08 40 00 7f 54 40 05 b5 c4 40 05 b6 60 @...@..T@...@..`
40085f68: 40 05 b7 7c 40 04 ff 60 40 00 7f 08 40 00 80 94 @..|@..`@...@...
40085f78: 40 00 7f 34 40 00 80 9c 40 00 81 34 40 00 80 70 @..4@...@..4@..p
40085f88: 20 2b 2c 3b 3d 5b 5d 00 24 25 27 2d 5f 40 7e 60 +,;=[].$%'-_@~`
40085f98: 21 28 29 7b 7d 5e 23 26 00 00 00 00 00 00 00 00 !(){}^#&........
40085fa8: 72 65 74 20 3d 3d 20 66 73 5f 69 6e 66 6f 2d 3e ret == fs_info->
40085fb8: 66 61 74 2e 76 6f 6c 2e 62 70 73 00 00 00 00 00 fat.vol.bps.....
40085fc8: 2f 68 6f 6d 65 2f 6c 75 6e 61 74 69 63 2f 64 65 /home/lunatic/de
40085fd8: 76 65 6c 6f 70 6d 65 6e 74 2f 72 74 65 6d 73 2f velopment/rtems/
40085fe8: 6b 65 72 6e 65 6c 2f 72 74 65 6d 73 2f 63 2f 73 kernel/rtems/c/s
40085ff8: 72 63 2f 2e 2e 2f 2e 2e 2f 63 70 75 6b 69 74 2f rc/../../cpukit/
40086008: 6c 69 62 66 73 2f 73 72 63 2f 64 6f 73 66 73 2f libfs/src/dosfs/
40086018: 6d 73 64 6f 73 5f 6d 69 73 63 2e 63 00 00 00 00 msdos_misc.c....
40086028: 2e 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 . .....
40086038: 2e 2e 20 20 20 20 20 20 20 20 20 00 00 00 00 00 .. .....
40086048: 6e 61 6d 65 5f 75 74 66 38 5f 6c 65 6e 20 3e 20 name_utf8_len >
40086058: 30 00 00 00 00 00 00 00 62 79 74 65 73 5f 72 65 0.......bytes_re
40086068: 61 64 20 3d 3d 20 62 74 73 32 72 64 00 00 00 00 ad == bts2rd....
40086078: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0123456789ABCDEF
...
40086090: 72 65 74 20 3d 3d 20 62 74 73 32 72 64 00 00 00 ret == bts2rd...
4005b46c <msdos_file_read>:
* the number of bytes read on success, or -1 if error occured (errno set
* appropriately)
*/
ssize_t
msdos_file_read(rtems_libio_t *iop, void *buffer, size_t count)
{
4005b46c: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
ssize_t ret = 0;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4005b470: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4005b474: f6 00 60 08 ld [ %g1 + 8 ], %i3
<== NOT EXECUTED
{
4005b478: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
4005b47c: b8 06 e0 a4 add %i3, 0xa4, %i4
<== NOT EXECUTED
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
4005b480: f0 06 20 14 ld [ %i0 + 0x14 ], %i0
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b484: 7f ff 02 94 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b488: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
msdos_fs_lock(fs_info);
ret = fat_file_read(&fs_info->fat, fat_fd, iop->offset, count,
4005b48c: d4 07 60 04 ld [ %i5 + 4 ], %o2
<== NOT EXECUTED
4005b490: 92 10 00 18 mov %i0, %o1
<== NOT EXECUTED
4005b494: 98 10 00 19 mov %i1, %o4
<== NOT EXECUTED
4005b498: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4005b49c: 7f ff 90 dc call 4003f80c <fat_file_read>
<== NOT EXECUTED
4005b4a0: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
buffer);
if (ret > 0)
4005b4a4: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4005b4a8: 04 80 00 06 ble 4005b4c0 <msdos_file_read+0x54>
<== NOT EXECUTED
4005b4ac: 85 3e 20 1f sra %i0, 0x1f, %g2
<== NOT EXECUTED
iop->offset += ret;
4005b4b0: f4 1f 40 00 ldd [ %i5 ], %i2
<== NOT EXECUTED
4005b4b4: 9a 86 c0 18 addcc %i3, %i0, %o5
<== NOT EXECUTED
4005b4b8: 98 46 80 02 addx %i2, %g2, %o4
<== NOT EXECUTED
4005b4bc: d8 3f 40 00 std %o4, [ %i5 ]
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b4c0: 7f ff 02 aa call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b4c4: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
msdos_fs_unlock(fs_info);
return ret;
}
4005b4c8: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b4cc: 81 e8 00 00 restore
<== NOT EXECUTED
4005b5c4 <msdos_file_stat>:
int
msdos_file_stat(
const rtems_filesystem_location_info_t *loc,
struct stat *buf
)
{
4005b5c4: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = loc->mt_entry->fs_info;
4005b5c8: c2 06 20 14 ld [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
4005b5cc: f6 00 60 08 ld [ %g1 + 8 ], %i3
<== NOT EXECUTED
fat_file_fd_t *fat_fd = loc->node_access;
4005b5d0: f8 06 20 08 ld [ %i0 + 8 ], %i4
<== NOT EXECUTED
uint32_t cl_mask = fs_info->fat.vol.bpc - 1;
4005b5d4: fa 06 e0 08 ld [ %i3 + 8 ], %i5
<== NOT EXECUTED
4005b5d8: b0 06 e0 a4 add %i3, 0xa4, %i0
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b5dc: 7f ff 02 3e call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b5e0: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
4005b5e4: c2 06 e0 6c ld [ %i3 + 0x6c ], %g1
<== NOT EXECUTED
buf->st_dev = rtems_disk_get_device_identifier(fs_info->fat.vol.dd);
buf->st_ino = fat_fd->ino;
buf->st_mode = S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO;
buf->st_rdev = 0ll;
buf->st_size = fat_fd->fat_file_size;
4005b5e8: c4 07 20 18 ld [ %i4 + 0x18 ], %g2
<== NOT EXECUTED
4005b5ec: d4 18 40 00 ldd [ %g1 ], %o2
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
>> FAT_SECTOR512_BITS;
buf->st_blksize = fs_info->fat.vol.bpc;
4005b5f0: c6 06 e0 08 ld [ %i3 + 8 ], %g3
<== NOT EXECUTED
buf->st_ino = fat_fd->ino;
4005b5f4: c8 07 20 0c ld [ %i4 + 0xc ], %g4
<== NOT EXECUTED
buf->st_atime = fat_fd->mtime;
4005b5f8: f4 1f 20 48 ldd [ %i4 + 0x48 ], %i2
<== NOT EXECUTED
buf->st_ctime = fat_fd->ctime;
4005b5fc: d8 1f 20 40 ldd [ %i4 + 0x40 ], %o4
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
4005b600: 82 00 bf ff add %g2, -1, %g1
<== NOT EXECUTED
buf->st_size = fat_fd->fat_file_size;
4005b604: c4 26 60 24 st %g2, [ %i1 + 0x24 ]
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
4005b608: 82 00 40 1d add %g1, %i5, %g1
<== NOT EXECUTED
buf->st_dev = rtems_disk_get_device_identifier(fs_info->fat.vol.dd);
4005b60c: d4 3e 40 00 std %o2, [ %i1 ]
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
4005b610: ba 20 00 1d neg %i5
<== NOT EXECUTED
buf->st_ino = fat_fd->ino;
4005b614: c8 26 60 08 st %g4, [ %i1 + 8 ]
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
4005b618: 82 08 40 1d and %g1, %i5, %g1
<== NOT EXECUTED
buf->st_size = fat_fd->fat_file_size;
4005b61c: c0 26 60 20 clr [ %i1 + 0x20 ]
<== NOT EXECUTED
>> FAT_SECTOR512_BITS;
4005b620: 83 30 60 09 srl %g1, 9, %g1
<== NOT EXECUTED
buf->st_mode = S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO;
4005b624: 05 00 00 20 sethi %hi(0x8000), %g2
<== NOT EXECUTED
buf->st_blksize = fs_info->fat.vol.bpc;
4005b628: c6 26 60 58 st %g3, [ %i1 + 0x58 ]
<== NOT EXECUTED
buf->st_mode = S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO;
4005b62c: 84 10 a1 ff or %g2, 0x1ff, %g2
<== NOT EXECUTED
buf->st_atime = fat_fd->mtime;
4005b630: f4 3e 60 28 std %i2, [ %i1 + 0x28 ]
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b634: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
buf->st_mode = S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO;
4005b638: c4 26 60 0c st %g2, [ %i1 + 0xc ]
<== NOT EXECUTED
buf->st_mtime = fat_fd->mtime;
msdos_fs_unlock(fs_info);
return RC_OK;
}
4005b63c: b0 10 20 00 clr %i0
<== NOT EXECUTED
buf->st_rdev = 0ll;
4005b640: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
4005b644: c0 26 60 1c clr [ %i1 + 0x1c ]
<== NOT EXECUTED
buf->st_blocks = ((fat_fd->fat_file_size + cl_mask) & ~cl_mask)
4005b648: c2 26 60 5c st %g1, [ %i1 + 0x5c ]
<== NOT EXECUTED
buf->st_ctime = fat_fd->ctime;
4005b64c: d8 3e 60 48 std %o4, [ %i1 + 0x48 ]
<== NOT EXECUTED
4005b650: 7f ff 02 46 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b654: f4 3e 60 38 std %i2, [ %i1 + 0x38 ]
<== NOT EXECUTED
}
4005b658: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b65c: 81 e8 00 00 restore
<== NOT EXECUTED
4005b77c <msdos_file_sync>:
* RETURNS:
* RC_OK on success, or -1 if error occured (errno set appropriately)
*/
int
msdos_file_sync(rtems_libio_t *iop)
{
4005b77c: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
int rc = RC_OK;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4005b780: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4005b784: fa 00 60 08 ld [ %g1 + 8 ], %i5
<== NOT EXECUTED
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
4005b788: f6 06 20 14 ld [ %i0 + 0x14 ], %i3
<== NOT EXECUTED
4005b78c: b8 07 60 a4 add %i5, 0xa4, %i4
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b790: 7f ff 01 d1 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b794: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
msdos_fs_lock(fs_info);
rc = fat_file_update(&fs_info->fat, fat_fd);
4005b798: 92 10 00 1b mov %i3, %o1
<== NOT EXECUTED
4005b79c: 7f ff 8f fb call 4003f788 <fat_file_update>
<== NOT EXECUTED
4005b7a0: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4005b7a4: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4005b7a8: 12 80 00 04 bne 4005b7b8 <msdos_file_sync+0x3c>
<== NOT EXECUTED
4005b7ac: 01 00 00 00 nop
<== NOT EXECUTED
{
msdos_fs_unlock(fs_info);
return rc;
}
rc = fat_sync(&fs_info->fat);
4005b7b0: 7f ff 96 65 call 40041144 <fat_sync>
<== NOT EXECUTED
4005b7b4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b7b8: 7f ff 01 ec call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b7bc: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
msdos_fs_unlock(fs_info);
return RC_OK;
}
4005b7c0: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b7c4: 81 e8 00 00 restore
<== NOT EXECUTED
4005b4d0 <msdos_file_write>:
* the number of bytes written on success, or -1 if error occured
* and errno set appropriately
*/
ssize_t
msdos_file_write(rtems_libio_t *iop,const void *buffer, size_t count)
{
4005b4d0: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
ssize_t ret = 0;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4005b4d4: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4005b4d8: f6 00 60 08 ld [ %g1 + 8 ], %i3
<== NOT EXECUTED
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
4005b4dc: f8 06 20 14 ld [ %i0 + 0x14 ], %i4
<== NOT EXECUTED
4005b4e0: a0 06 e0 a4 add %i3, 0xa4, %l0
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4005b4e4: 7f ff 02 7c call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4005b4e8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
{
4005b4ec: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
4005b4f0: c2 06 20 08 ld [ %i0 + 8 ], %g1
<== NOT EXECUTED
msdos_fs_lock(fs_info);
if (rtems_libio_iop_is_append(iop))
4005b4f4: 80 88 62 00 btst 0x200, %g1
<== NOT EXECUTED
4005b4f8: 32 80 00 24 bne,a 4005b588 <msdos_file_write+0xb8>
<== NOT EXECUTED
4005b4fc: d4 07 20 18 ld [ %i4 + 0x18 ], %o2
<== NOT EXECUTED
4005b500: d4 06 20 04 ld [ %i0 + 4 ], %o2
<== NOT EXECUTED
iop->offset = fat_fd->fat_file_size;
ret = fat_file_write(&fs_info->fat, fat_fd, iop->offset, count,
4005b504: 98 10 00 19 mov %i1, %o4
<== NOT EXECUTED
4005b508: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4005b50c: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
4005b510: 7f ff 92 84 call 4003ff20 <fat_file_write>
<== NOT EXECUTED
4005b514: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
buffer);
if (ret < 0)
4005b518: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4005b51c: 06 80 00 25 bl 4005b5b0 <msdos_file_write+0xe0>
<== NOT EXECUTED
4005b520: 85 3e 20 1f sra %i0, 0x1f, %g2
<== NOT EXECUTED
/*
* update file size in both fat-file descriptor and file control block if
* file was extended
*/
iop->offset += ret;
4005b524: f4 1f 40 00 ldd [ %i5 ], %i2
<== NOT EXECUTED
4005b528: 9a 86 00 1b addcc %i0, %i3, %o5
<== NOT EXECUTED
4005b52c: 98 40 80 1a addx %g2, %i2, %o4
<== NOT EXECUTED
4005b530: d8 3f 40 00 std %o4, [ %i5 ]
<== NOT EXECUTED
if (iop->offset > fat_fd->fat_file_size)
4005b534: 80 a3 20 00 cmp %o4, 0
<== NOT EXECUTED
4005b538: 04 80 00 17 ble 4005b594 <msdos_file_write+0xc4>
<== NOT EXECUTED
4005b53c: c2 07 20 18 ld [ %i4 + 0x18 ], %g1
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b540: c2 0f 20 30 ldub [ %i4 + 0x30 ], %g1
<== NOT EXECUTED
4005b544: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_file_set_file_size(fat_fd, (uint32_t) iop->offset);
4005b548: da 27 20 18 st %o5, [ %i4 + 0x18 ]
<== NOT EXECUTED
4005b54c: c2 2f 20 30 stb %g1, [ %i4 + 0x30 ]
<== NOT EXECUTED
if (ret > 0)
4005b550: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
4005b554: 02 80 00 09 be 4005b578 <msdos_file_write+0xa8>
<== NOT EXECUTED
4005b558: 01 00 00 00 nop
<== NOT EXECUTED
fat_file_set_ctime_mtime(fat_fd, time(NULL));
4005b55c: 40 00 41 3e call 4006ba54 <time>
<== NOT EXECUTED
4005b560: 90 10 20 00 clr %o0 ! 0 <PROM_START>
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b564: c2 0f 20 30 ldub [ %i4 + 0x30 ], %g1
<== NOT EXECUTED
4005b568: 82 10 60 02 or %g1, 2, %g1
<== NOT EXECUTED
fat_fd->ctime = t;
4005b56c: d0 3f 20 40 std %o0, [ %i4 + 0x40 ]
<== NOT EXECUTED
fat_fd->mtime = t;
4005b570: d0 3f 20 48 std %o0, [ %i4 + 0x48 ]
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b574: c2 2f 20 30 stb %g1, [ %i4 + 0x30 ]
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4005b578: 7f ff 02 7c call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b57c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
msdos_fs_unlock(fs_info);
return ret;
}
4005b580: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b584: 81 e8 00 00 restore
<== NOT EXECUTED
iop->offset = fat_fd->fat_file_size;
4005b588: d4 26 20 04 st %o2, [ %i0 + 4 ]
<== NOT EXECUTED
4005b58c: 10 bf ff de b 4005b504 <msdos_file_write+0x34>
<== NOT EXECUTED
4005b590: c0 26 00 00 clr [ %i0 ]
<== NOT EXECUTED
if (iop->offset > fat_fd->fat_file_size)
4005b594: 12 bf ff f0 bne 4005b554 <msdos_file_write+0x84>
<== NOT EXECUTED
4005b598: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
4005b59c: 80 a3 40 01 cmp %o5, %g1
<== NOT EXECUTED
4005b5a0: 08 bf ff ed bleu 4005b554 <msdos_file_write+0x84>
<== NOT EXECUTED
4005b5a4: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
fat_fd->flags |= FAT_FILE_META_DATA_CHANGED;
4005b5a8: 10 bf ff e7 b 4005b544 <msdos_file_write+0x74>
<== NOT EXECUTED
4005b5ac: c2 0f 20 30 ldub [ %i4 + 0x30 ], %g1
<== NOT EXECUTED
return -1;
4005b5b0: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4005b5b4: 7f ff 02 6d call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4005b5b8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4005b5bc: 81 c7 e0 08 ret
<== NOT EXECUTED
4005b5c0: 81 e8 00 00 restore
<== NOT EXECUTED
4005a7fc <msdos_filename_utf8_to_long_name_for_compare>:
rtems_dosfs_convert_control *converter,
const uint8_t *utf8_name,
const size_t utf8_name_size,
uint8_t *long_name,
const size_t long_name_size)
{
4005a7fc: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
ssize_t returned_size = 0;
int eno = 0;
size_t name_size;
size_t dest_size = long_name_size;
4005a800: f8 27 bf fc st %i4, [ %fp + -4 ]
<== NOT EXECUTED
returned_size = msdos_filename_process_dot_names (
4005a804: 96 10 00 1c mov %i4, %o3
<== NOT EXECUTED
4005a808: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
4005a80c: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
4005a810: 7f ff ff 1f call 4005a48c <msdos_filename_process_dot_names>
<== NOT EXECUTED
4005a814: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
utf8_name,
utf8_name_size,
long_name,
long_name_size);
if (returned_size == 0) {
4005a818: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4005a81c: 12 80 00 12 bne 4005a864 <msdos_filename_utf8_to_long_name_for_compare+0x68>
<== NOT EXECUTED
4005a820: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
for ( i = size_returned - UTF8_FULL_STOP_SIZE;
4005a824: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005a828: 14 80 00 15 bg 4005a87c <msdos_filename_utf8_to_long_name_for_compare+0x80>
<== NOT EXECUTED
4005a82c: 82 06 bf ff add %i2, -1, %g1
<== NOT EXECUTED
name_size = msdos_filename_delete_trailing_dots (
&utf8_name[0],
utf8_name_size);
if (name_size > 0) {
4005a830: 80 a2 a0 00 cmp %o2, 0
<== NOT EXECUTED
4005a834: 02 80 00 18 be 4005a894 <msdos_filename_utf8_to_long_name_for_compare+0x98>
<== NOT EXECUTED
4005a838: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
eno = (*converter->handler->utf8_normalize_and_fold) (
4005a83c: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
4005a840: c2 00 60 10 ld [ %g1 + 0x10 ], %g1
<== NOT EXECUTED
4005a844: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4005a848: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4005a84c: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005a850: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
converter,
utf8_name,
name_size,
long_name,
&dest_size);
if (eno == 0) {
4005a854: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4005a858: 12 80 00 10 bne 4005a898 <msdos_filename_utf8_to_long_name_for_compare+0x9c>
<== NOT EXECUTED
4005a85c: 01 00 00 00 nop
<== NOT EXECUTED
returned_size = (ssize_t)dest_size;
4005a860: d0 07 bf fc ld [ %fp + -4 ], %o0
<== NOT EXECUTED
errno = eno;
returned_size = -1;
}
return returned_size;
}
4005a864: 81 c7 e0 08 ret
<== NOT EXECUTED
4005a868: 91 e8 00 08 restore %g0, %o0, %o0
<== NOT EXECUTED
i -= UTF8_FULL_STOP_SIZE;
4005a86c: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
for ( i = size_returned - UTF8_FULL_STOP_SIZE;
4005a870: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
4005a874: 02 bf ff f0 be 4005a834 <msdos_filename_utf8_to_long_name_for_compare+0x38>
<== NOT EXECUTED
4005a878: 80 a2 a0 00 cmp %o2, 0
<== NOT EXECUTED
&& filename_utf8[i] == UTF8_FULL_STOP;) {
4005a87c: c4 0e 40 01 ldub [ %i1 + %g1 ], %g2
<== NOT EXECUTED
4005a880: 80 a0 a0 2e cmp %g2, 0x2e
<== NOT EXECUTED
4005a884: 22 bf ff fa be,a 4005a86c <msdos_filename_utf8_to_long_name_for_compare+0x70>
<== NOT EXECUTED
4005a888: 94 10 00 01 mov %g1, %o2
<== NOT EXECUTED
if (name_size > 0) {
4005a88c: 10 bf ff ea b 4005a834 <msdos_filename_utf8_to_long_name_for_compare+0x38>
<== NOT EXECUTED
4005a890: 80 a2 a0 00 cmp %o2, 0
<== NOT EXECUTED
eno = EINVAL;
4005a894: ba 10 20 16 mov 0x16, %i5
<== NOT EXECUTED
errno = eno;
4005a898: 40 00 08 1f call 4005c914 <__errno>
<== NOT EXECUTED
4005a89c: 01 00 00 00 nop
<== NOT EXECUTED
4005a8a0: fa 22 00 00 st %i5, [ %o0 ]
<== NOT EXECUTED
return returned_size;
4005a8a4: 10 bf ff f0 b 4005a864 <msdos_filename_utf8_to_long_name_for_compare+0x68>
<== NOT EXECUTED
4005a8a8: 90 10 3f ff mov -1, %o0
<== NOT EXECUTED
4005a9ec <msdos_filename_utf8_to_long_name_for_save>:
rtems_dosfs_convert_control *converter,
const uint8_t *utf8_name,
const size_t utf8_name_size,
uint16_t *long_name,
const size_t long_name_size)
{
4005a9ec: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
size_t name_size_tmp;
int i;
uint16_t c;
unsigned int chars_written;
name_size_tmp = long_name_size;
4005a9f0: f8 27 bf fc st %i4, [ %fp + -4 ]
<== NOT EXECUTED
for ( i = size_returned - UTF8_FULL_STOP_SIZE;
4005a9f4: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005a9f8: 14 80 00 07 bg 4005aa14 <msdos_filename_utf8_to_long_name_for_save+0x28>
<== NOT EXECUTED
4005a9fc: 82 06 bf ff add %i2, -1, %g1
<== NOT EXECUTED
4005aa00: 30 80 00 0a b,a 4005aa28 <msdos_filename_utf8_to_long_name_for_save+0x3c>
<== NOT EXECUTED
i -= UTF8_FULL_STOP_SIZE;
4005aa04: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
for ( i = size_returned - UTF8_FULL_STOP_SIZE;
4005aa08: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
4005aa0c: 02 80 00 07 be 4005aa28 <msdos_filename_utf8_to_long_name_for_save+0x3c>
<== NOT EXECUTED
4005aa10: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
&& filename_utf8[i] == UTF8_FULL_STOP;) {
4005aa14: c4 0e 40 01 ldub [ %i1 + %g1 ], %g2
<== NOT EXECUTED
4005aa18: 80 a0 a0 2e cmp %g2, 0x2e
<== NOT EXECUTED
4005aa1c: 22 bf ff fa be,a 4005aa04 <msdos_filename_utf8_to_long_name_for_save+0x18>
<== NOT EXECUTED
4005aa20: b4 10 00 01 mov %g1, %i2
<== NOT EXECUTED
name_size = msdos_filename_delete_trailing_dots (
&utf8_name[0],
utf8_name_size);
if (name_size > 0) {
4005aa24: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005aa28: 02 80 00 64 be 4005abb8 <msdos_filename_utf8_to_long_name_for_save+0x1cc>
<== NOT EXECUTED
4005aa2c: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
/*
* Finally convert from UTF-8 to UTF-16
*/
eno = (*converter->handler->utf8_to_utf16) (
4005aa30: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
4005aa34: c2 00 60 08 ld [ %g1 + 8 ], %g1
<== NOT EXECUTED
4005aa38: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4005aa3c: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4005aa40: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4005aa44: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005aa48: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
converter,
utf8_name,
name_size,
&long_name[0],
&name_size_tmp);
if (eno == 0) {
4005aa4c: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4005aa50: 12 80 00 3b bne 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005aa54: c8 07 bf fc ld [ %fp + -4 ], %g4
<== NOT EXECUTED
if (name_size_tmp <= (MSDOS_NAME_MAX_LNF_LEN * MSDOS_NAME_LFN_BYTES_PER_CHAR))
4005aa58: 80 a1 21 fe cmp %g4, 0x1fe
<== NOT EXECUTED
4005aa5c: 38 80 00 38 bgu,a 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005aa60: ba 10 20 5b mov 0x5b, %i5
<== NOT EXECUTED
if ( eno == 0 )
{
/*
* Validate the characters and assign them to the UTF-16 file name
*/
for ( i = 0;
4005aa64: 80 a1 20 00 cmp %g4, 0
<== NOT EXECUTED
4005aa68: 02 80 00 56 be 4005abc0 <msdos_filename_utf8_to_long_name_for_save+0x1d4>
<== NOT EXECUTED
4005aa6c: 86 10 00 1b mov %i3, %g3
<== NOT EXECUTED
retval = codepage_valid_char_map[char_num];
4005aa70: 1f 10 02 23 sethi %hi(0x40088c00), %o7
<== NOT EXECUTED
switch ( char_num )
4005aa74: 31 10 01 6a sethi %hi(0x4005a800), %i0
<== NOT EXECUTED
retval = codepage_valid_char_map[char_num];
4005aa78: 9e 13 e3 b8 or %o7, 0x3b8, %o7
<== NOT EXECUTED
switch ( char_num )
4005aa7c: b0 16 20 ac or %i0, 0xac, %i0
<== NOT EXECUTED
uint16_t char_num = CF_LE_W( utf16_character );
4005aa80: c4 10 c0 00 lduh [ %g3 ], %g2
<== NOT EXECUTED
4005aa84: 83 28 a0 08 sll %g2, 8, %g1
<== NOT EXECUTED
4005aa88: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4005aa8c: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
if ( char_num <= 0x00ff ) {
4005aa90: b5 28 60 10 sll %g1, 0x10, %i2
<== NOT EXECUTED
4005aa94: b3 36 a0 10 srl %i2, 0x10, %i1
<== NOT EXECUTED
4005aa98: 80 a6 60 ff cmp %i1, 0xff
<== NOT EXECUTED
4005aa9c: 18 80 00 0d bgu 4005aad0 <msdos_filename_utf8_to_long_name_for_save+0xe4>
<== NOT EXECUTED
4005aaa0: 84 10 00 01 mov %g1, %g2
<== NOT EXECUTED
switch ( char_num )
4005aaa4: 82 00 7f d5 add %g1, -43, %g1
<== NOT EXECUTED
4005aaa8: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
4005aaac: 83 30 60 10 srl %g1, 0x10, %g1
<== NOT EXECUTED
4005aab0: 80 a0 60 4f cmp %g1, 0x4f
<== NOT EXECUTED
4005aab4: 18 80 00 05 bgu 4005aac8 <msdos_filename_utf8_to_long_name_for_save+0xdc>
<== NOT EXECUTED
4005aab8: 83 28 60 02 sll %g1, 2, %g1
<== NOT EXECUTED
4005aabc: c2 06 00 01 ld [ %i0 + %g1 ], %g1
<== NOT EXECUTED
4005aac0: 81 c0 40 00 jmp %g1
<== NOT EXECUTED
4005aac4: 01 00 00 00 nop
<== NOT EXECUTED
4005aac8: b5 36 a0 10 srl %i2, 0x10, %i2
<== NOT EXECUTED
retval = codepage_valid_char_map[char_num];
4005aacc: c4 0b c0 1a ldub [ %o7 + %i2 ], %g2
<== NOT EXECUTED
return CT_LE_W( retval );
4005aad0: 83 28 a0 08 sll %g2, 8, %g1
<== NOT EXECUTED
4005aad4: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
4005aad8: 85 30 a0 18 srl %g2, 0x18, %g2
<== NOT EXECUTED
4005aadc: 84 10 40 02 or %g1, %g2, %g2
<== NOT EXECUTED
name_size
&& (c = msdos_get_valid_utf16_filename_character ( long_name[i]) );
4005aae0: 83 28 a0 10 sll %g2, 0x10, %g1
<== NOT EXECUTED
4005aae4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005aae8: 02 80 00 1a be 4005ab50 <msdos_filename_utf8_to_long_name_for_save+0x164>
<== NOT EXECUTED
4005aaec: 80 a1 20 02 cmp %g4, 2
<== NOT EXECUTED
++i ) {
long_name[i] = c;
4005aaf0: c4 30 c0 00 sth %g2, [ %g3 ]
<== NOT EXECUTED
returned_size += MSDOS_NAME_LFN_BYTES_PER_CHAR;
4005aaf4: ba 07 60 02 add %i5, 2, %i5
<== NOT EXECUTED
for ( i = 0;
4005aaf8: 88 81 3f fe addcc %g4, -2, %g4
<== NOT EXECUTED
4005aafc: 12 bf ff e1 bne 4005aa80 <msdos_filename_utf8_to_long_name_for_save+0x94>
<== NOT EXECUTED
4005ab00: 86 00 e0 02 add %g3, 2, %g3
<== NOT EXECUTED
4005ab04: 85 3f 60 01 sra %i5, 1, %g2
<== NOT EXECUTED
4005ab08: 83 28 a0 01 sll %g2, 1, %g1
<== NOT EXECUTED
4005ab0c: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
returned_size += MSDOS_NAME_LFN_BYTES_PER_CHAR;
}
else if ( name_size != 0 )
eno = EINVAL;
chars_written = returned_size / MSDOS_NAME_LFN_BYTES_PER_CHAR;
if ( long_name [chars_written - 1] != UTF16_NULL
4005ab10: c2 16 c0 01 lduh [ %i3 + %g1 ], %g1
<== NOT EXECUTED
4005ab14: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005ab18: 02 80 00 2d be 4005abcc <msdos_filename_utf8_to_long_name_for_save+0x1e0>
<== NOT EXECUTED
4005ab1c: 82 07 60 02 add %i5, 2, %g1
<== NOT EXECUTED
&& (returned_size + UTF16_NULL_SIZE ) <= long_name_size ) {
4005ab20: 80 a0 40 1c cmp %g1, %i4
<== NOT EXECUTED
4005ab24: 18 80 00 04 bgu 4005ab34 <msdos_filename_utf8_to_long_name_for_save+0x148>
<== NOT EXECUTED
4005ab28: b0 10 00 1d mov %i5, %i0
<== NOT EXECUTED
long_name[chars_written] = UTF16_NULL;
4005ab2c: 85 28 a0 01 sll %g2, 1, %g2
<== NOT EXECUTED
4005ab30: c0 36 c0 02 clrh [ %i3 + %g2 ]
<== NOT EXECUTED
4005ab34: 81 c7 e0 08 ret
<== NOT EXECUTED
4005ab38: 81 e8 00 00 restore
<== NOT EXECUTED
}
else
eno = EINVAL;
if ( eno != 0 ) {
errno = eno;
4005ab3c: 40 00 07 76 call 4005c914 <__errno>
<== NOT EXECUTED
4005ab40: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4005ab44: fa 22 00 00 st %i5, [ %o0 ]
<== NOT EXECUTED
4005ab48: 81 c7 e0 08 ret
<== NOT EXECUTED
4005ab4c: 81 e8 00 00 restore
<== NOT EXECUTED
if ( name_size == UTF16_NULL_SIZE && c == UTF16_NULL ) {
4005ab50: 12 80 00 0c bne 4005ab80 <msdos_filename_utf8_to_long_name_for_save+0x194>
<== NOT EXECUTED
4005ab54: b0 07 60 02 add %i5, 2, %i0
<== NOT EXECUTED
long_name[i] = c;
4005ab58: c0 30 c0 00 clrh [ %g3 ]
<== NOT EXECUTED
chars_written = returned_size / MSDOS_NAME_LFN_BYTES_PER_CHAR;
4005ab5c: 85 3e 20 01 sra %i0, 1, %g2
<== NOT EXECUTED
if ( long_name [chars_written - 1] != UTF16_NULL
4005ab60: 83 28 a0 01 sll %g2, 1, %g1
<== NOT EXECUTED
4005ab64: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4005ab68: c2 16 c0 01 lduh [ %i3 + %g1 ], %g1
<== NOT EXECUTED
4005ab6c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005ab70: 12 80 00 19 bne 4005abd4 <msdos_filename_utf8_to_long_name_for_save+0x1e8>
<== NOT EXECUTED
4005ab74: ba 07 60 04 add %i5, 4, %i5
<== NOT EXECUTED
returned_size = -1;
}
return returned_size;
}
4005ab78: 81 c7 e0 08 ret
<== NOT EXECUTED
4005ab7c: 81 e8 00 00 restore
<== NOT EXECUTED
4005ab80: 85 3f 60 01 sra %i5, 1, %g2
<== NOT EXECUTED
if ( long_name [chars_written - 1] != UTF16_NULL
4005ab84: 83 28 a0 01 sll %g2, 1, %g1
<== NOT EXECUTED
4005ab88: 82 00 7f fe add %g1, -2, %g1
<== NOT EXECUTED
4005ab8c: c2 16 c0 01 lduh [ %i3 + %g1 ], %g1
<== NOT EXECUTED
4005ab90: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4005ab94: 22 bf ff ea be,a 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005ab98: ba 10 20 16 mov 0x16, %i5
<== NOT EXECUTED
&& (returned_size + UTF16_NULL_SIZE ) <= long_name_size ) {
4005ab9c: ba 07 60 02 add %i5, 2, %i5
<== NOT EXECUTED
4005aba0: 80 a7 40 1c cmp %i5, %i4
<== NOT EXECUTED
4005aba4: 18 bf ff e6 bgu 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005aba8: ba 10 20 16 mov 0x16, %i5
<== NOT EXECUTED
long_name[chars_written] = UTF16_NULL;
4005abac: 85 28 a0 01 sll %g2, 1, %g2
<== NOT EXECUTED
4005abb0: 10 bf ff e3 b 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005abb4: c0 36 c0 02 clrh [ %i3 + %g2 ]
<== NOT EXECUTED
eno = EINVAL;
4005abb8: 10 bf ff e1 b 4005ab3c <msdos_filename_utf8_to_long_name_for_save+0x150>
<== NOT EXECUTED
4005abbc: ba 10 20 16 mov 0x16, %i5
<== NOT EXECUTED
for ( i = 0;
4005abc0: 84 10 20 00 clr %g2
<== NOT EXECUTED
4005abc4: 10 bf ff d3 b 4005ab10 <msdos_filename_utf8_to_long_name_for_save+0x124>
<== NOT EXECUTED
4005abc8: 82 10 3f fe mov -2, %g1
<== NOT EXECUTED
}
4005abcc: 81 c7 e0 08 ret
<== NOT EXECUTED
4005abd0: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
&& (returned_size + UTF16_NULL_SIZE ) <= long_name_size ) {
4005abd4: 80 a7 00 1d cmp %i4, %i5
<== NOT EXECUTED
4005abd8: 1a bf ff d6 bcc 4005ab30 <msdos_filename_utf8_to_long_name_for_save+0x144>
<== NOT EXECUTED
4005abdc: 85 28 a0 01 sll %g2, 1, %g2
<== NOT EXECUTED
4005abe0: 81 c7 e0 08 ret
<== NOT EXECUTED
4005abe4: 81 e8 00 00 restore
<== NOT EXECUTED
4005abe8 <msdos_filename_utf8_to_short_name_for_compare>:
rtems_dosfs_convert_control *converter,
const uint8_t *utf8_name,
const size_t utf8_name_size,
void *short_name,
const size_t short_name_size)
{
4005abe8: 9d e3 bf 68 save %sp, -152, %sp
<== NOT EXECUTED
int eno = 0;
const uint8_t *name_ptr = utf8_name;
char *dest_ptr = (char*)short_name;
size_t name_size = utf8_name_size;
uint8_t name_normalized_buf[(MSDOS_SHORT_NAME_LEN +1) * MSDOS_NAME_MAX_UTF8_BYTES_PER_CHAR];
size_t name_size_tmp = sizeof(name_normalized_buf);
4005abec: 82 10 20 30 mov 0x30, %g1
<== NOT EXECUTED
returned_size = msdos_filename_process_dot_names (
4005abf0: 96 10 00 1c mov %i4, %o3
<== NOT EXECUTED
size_t name_size_tmp = sizeof(name_normalized_buf);
4005abf4: c2 27 bf cc st %g1, [ %fp + -52 ]
<== NOT EXECUTED
returned_size = msdos_filename_process_dot_names (
4005abf8: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
4005abfc: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
4005ac00: 7f ff fe 23 call 4005a48c <msdos_filename_process_dot_names>
<== NOT EXECUTED
4005ac04: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
utf8_name,
utf8_name_size,
short_name,
short_name_size);
if (returned_size == 0) {
4005ac08: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4005ac0c: 12 80 00 1e bne 4005ac84 <msdos_filename_utf8_to_short_name_for_compare+0x9c>
<== NOT EXECUTED
4005ac10: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
while ( *name_size >= UTF8_FULL_STOP_SIZE
4005ac14: 32 80 00 07 bne,a 4005ac30 <msdos_filename_utf8_to_short_name_for_compare+0x48>
<== NOT EXECUTED
4005ac18: c2 0e 40 00 ldub [ %i1 ], %g1
<== NOT EXECUTED
if ( eno == 0 ) {
memcpy (&dest_ptr[0], &name_ptr[0], name_size);
returned_size = name_size;
}
} else
eno = EINVAL;
4005ac1c: 10 80 00 17 b 4005ac78 <msdos_filename_utf8_to_short_name_for_compare+0x90>
<== NOT EXECUTED
4005ac20: b8 10 20 16 mov 0x16, %i4
<== NOT EXECUTED
while ( *name_size >= UTF8_FULL_STOP_SIZE
4005ac24: 02 bf ff fe be 4005ac1c <msdos_filename_utf8_to_short_name_for_compare+0x34>
<== NOT EXECUTED
4005ac28: b2 06 60 01 inc %i1
<== NOT EXECUTED
&& **name_utf8 == UTF8_FULL_STOP) {
4005ac2c: c2 0e 40 00 ldub [ %i1 ], %g1
<== NOT EXECUTED
4005ac30: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4005ac34: 22 bf ff fc be,a 4005ac24 <msdos_filename_utf8_to_short_name_for_compare+0x3c>
<== NOT EXECUTED
4005ac38: b4 86 bf ff addcc %i2, -1, %i2
<== NOT EXECUTED
eno = (*converter->handler->utf8_normalize_and_fold) (
4005ac3c: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
4005ac40: c2 00 60 10 ld [ %g1 + 0x10 ], %g1
<== NOT EXECUTED
4005ac44: 98 07 bf cc add %fp, -52, %o4
<== NOT EXECUTED
4005ac48: 96 07 bf d0 add %fp, -48, %o3
<== NOT EXECUTED
4005ac4c: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4005ac50: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4005ac54: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005ac58: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
name_size = name_size_tmp;
4005ac5c: fa 07 bf cc ld [ %fp + -52 ], %i5
<== NOT EXECUTED
if ( eno == ENOMEM ) {
4005ac60: 80 a2 20 0c cmp %o0, 0xc
<== NOT EXECUTED
4005ac64: 02 80 00 0a be 4005ac8c <msdos_filename_utf8_to_short_name_for_compare+0xa4>
<== NOT EXECUTED
4005ac68: b8 10 00 08 mov %o0, %i4
<== NOT EXECUTED
if ( eno == 0 ) {
4005ac6c: 80 a7 20 00 cmp %i4, 0
<== NOT EXECUTED
4005ac70: 02 80 00 08 be 4005ac90 <msdos_filename_utf8_to_short_name_for_compare+0xa8>
<== NOT EXECUTED
4005ac74: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
}
if ( eno != 0 ) {
errno = eno;
4005ac78: 40 00 07 27 call 4005c914 <__errno>
<== NOT EXECUTED
4005ac7c: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4005ac80: f8 22 00 00 st %i4, [ %o0 ]
<== NOT EXECUTED
returned_size = -1;
}
return returned_size;
}
4005ac84: 81 c7 e0 08 ret
<== NOT EXECUTED
4005ac88: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
memcpy (&dest_ptr[0], &name_ptr[0], name_size);
4005ac8c: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
4005ac90: 92 07 bf d0 add %fp, -48, %o1
<== NOT EXECUTED
4005ac94: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
4005ac98: 40 00 18 ce call 40060fd0 <memcpy>
<== NOT EXECUTED
4005ac9c: b0 10 00 1d mov %i5, %i0
<== NOT EXECUTED
}
4005aca0: 81 c7 e0 08 ret
<== NOT EXECUTED
4005aca4: 81 e8 00 00 restore
<== NOT EXECUTED
4005aca8 <msdos_filename_utf8_to_short_name_for_save>:
rtems_dosfs_convert_control *converter,
const uint8_t *utf8_name,
const size_t utf8_name_size,
void *short_name,
const size_t short_name_size)
{
4005aca8: 9d e3 bf 88 save %sp, -120, %sp
<== NOT EXECUTED
char *dest_ptr = (char*)short_name;
unsigned int i;
size_t name_size_tmp;
char name_to_format_buf[MSDOS_SHORT_NAME_LEN +1];
returned_size = msdos_filename_process_dot_names (
4005acac: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
4005acb0: 96 10 00 1c mov %i4, %o3
<== NOT EXECUTED
4005acb4: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
4005acb8: 7f ff fd f5 call 4005a48c <msdos_filename_process_dot_names>
<== NOT EXECUTED
4005acbc: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
utf8_name,
utf8_name_size,
short_name,
short_name_size);
if (returned_size == 0) {
4005acc0: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4005acc4: 12 80 00 08 bne 4005ace4 <msdos_filename_utf8_to_short_name_for_save+0x3c>
<== NOT EXECUTED
4005acc8: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
while ( *name_size >= UTF8_FULL_STOP_SIZE
4005accc: 32 80 00 0b bne,a 4005acf8 <msdos_filename_utf8_to_short_name_for_save+0x50>
<== NOT EXECUTED
4005acd0: c2 0e 40 00 ldub [ %i1 ], %g1
<== NOT EXECUTED
else
eno = EINVAL;
}
if ( eno != 0 ) {
errno = eno;
4005acd4: 40 00 07 10 call 4005c914 <__errno>
<== NOT EXECUTED
4005acd8: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
4005acdc: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
4005ace0: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
return -1;
}
return returned_size;
}
4005ace4: 81 c7 e0 08 ret
<== NOT EXECUTED
4005ace8: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
while ( *name_size >= UTF8_FULL_STOP_SIZE
4005acec: 02 bf ff fa be 4005acd4 <msdos_filename_utf8_to_short_name_for_save+0x2c>
<== NOT EXECUTED
4005acf0: b2 06 60 01 inc %i1
<== NOT EXECUTED
&& **name_utf8 == UTF8_FULL_STOP) {
4005acf4: c2 0e 40 00 ldub [ %i1 ], %g1
<== NOT EXECUTED
4005acf8: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4005acfc: 22 bf ff fc be,a 4005acec <msdos_filename_utf8_to_short_name_for_save+0x44>
<== NOT EXECUTED
4005ad00: b4 86 bf ff addcc %i2, -1, %i2
<== NOT EXECUTED
eno = (*converter->handler->utf8_to_codepage) (
4005ad04: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
name_size_tmp = sizeof ( name_to_format_buf );
4005ad08: 84 10 20 0c mov 0xc, %g2
<== NOT EXECUTED
4005ad0c: c4 27 bf ec st %g2, [ %fp + -20 ]
<== NOT EXECUTED
eno = (*converter->handler->utf8_to_codepage) (
4005ad10: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4005ad14: c2 00 40 00 ld [ %g1 ], %g1
<== NOT EXECUTED
4005ad18: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4005ad1c: a0 07 bf f0 add %fp, -16, %l0
<== NOT EXECUTED
4005ad20: 98 07 bf ec add %fp, -20, %o4
<== NOT EXECUTED
4005ad24: 96 10 00 10 mov %l0, %o3
<== NOT EXECUTED
4005ad28: 9f c0 40 00 call %g1
<== NOT EXECUTED
4005ad2c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
name_size = name_size_tmp;
4005ad30: f2 07 bf ec ld [ %fp + -20 ], %i1
<== NOT EXECUTED
for (i = 0; i < name_size; ++i)
4005ad34: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
4005ad38: 02 bf ff eb be 4005ace4 <msdos_filename_utf8_to_short_name_for_save+0x3c>
<== NOT EXECUTED
4005ad3c: b4 10 20 00 clr %i2
<== NOT EXECUTED
name_to_format_buf[i] = toupper ( (unsigned char)(name_to_format_buf[i]) );
4005ad40: 40 00 17 2d call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4005ad44: fa 0c 00 1a ldub [ %l0 + %i2 ], %i5
<== NOT EXECUTED
4005ad48: 82 0f 60 ff and %i5, 0xff, %g1
<== NOT EXECUTED
4005ad4c: 90 02 00 01 add %o0, %g1, %o0
<== NOT EXECUTED
4005ad50: c4 0a 20 01 ldub [ %o0 + 1 ], %g2
<== NOT EXECUTED
4005ad54: 84 08 a0 03 and %g2, 3, %g2
<== NOT EXECUTED
4005ad58: 80 a0 a0 02 cmp %g2, 2
<== NOT EXECUTED
4005ad5c: 22 80 00 02 be,a 4005ad64 <msdos_filename_utf8_to_short_name_for_save+0xbc>
<== NOT EXECUTED
4005ad60: 82 00 7f e0 add %g1, -32, %g1
<== NOT EXECUTED
4005ad64: c2 2c 00 1a stb %g1, [ %l0 + %i2 ]
<== NOT EXECUTED
for (i = 0; i < name_size; ++i)
4005ad68: 82 06 a0 01 add %i2, 1, %g1
<== NOT EXECUTED
4005ad6c: 80 a6 40 01 cmp %i1, %g1
<== NOT EXECUTED
4005ad70: 32 bf ff f4 bne,a 4005ad40 <msdos_filename_utf8_to_short_name_for_save+0x98>
<== NOT EXECUTED
4005ad74: b4 10 00 01 mov %g1, %i2
<== NOT EXECUTED
if ( 0x20 == *name_ptr )
4005ad78: c2 0f bf f0 ldub [ %fp + -16 ], %g1
<== NOT EXECUTED
4005ad7c: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4005ad80: 02 80 00 09 be 4005ada4 <msdos_filename_utf8_to_short_name_for_save+0xfc>
<== NOT EXECUTED
4005ad84: 80 a0 60 e5 cmp %g1, 0xe5
<== NOT EXECUTED
else if ( 0xE5 == *name_ptr )
4005ad88: 02 80 00 0a be 4005adb0 <msdos_filename_utf8_to_short_name_for_save+0x108>
<== NOT EXECUTED
4005ad8c: 05 10 02 23 sethi %hi(0x40088c00), %g2
<== NOT EXECUTED
char c = codepage_valid_char_map[character];
4005ad90: 84 10 a3 b8 or %g2, 0x3b8, %g2 ! 40088fb8 <codepage_valid_char_map>
<== NOT EXECUTED
if (c == 0) {
4005ad94: c6 48 80 01 ldsb [ %g2 + %g1 ], %g3
<== NOT EXECUTED
4005ad98: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005ad9c: 12 80 00 03 bne 4005ada8 <msdos_filename_utf8_to_short_name_for_save+0x100>
<== NOT EXECUTED
4005ada0: c2 08 80 01 ldub [ %g2 + %g1 ], %g1
<== NOT EXECUTED
c = '_';
4005ada4: 82 10 20 5f mov 0x5f, %g1
<== NOT EXECUTED
dest_ptr[0] = msdos_get_valid_codepage_filename_character(*name_ptr);
4005ada8: 10 80 00 04 b 4005adb8 <msdos_filename_utf8_to_short_name_for_save+0x110>
<== NOT EXECUTED
4005adac: c2 2e c0 00 stb %g1, [ %i3 ]
<== NOT EXECUTED
dest_ptr[0] = 0x05;
4005adb0: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4005adb4: c2 2e c0 00 stb %g1, [ %i3 ]
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005adb8: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4005adbc: 02 80 00 68 be 4005af5c <msdos_filename_utf8_to_short_name_for_save+0x2b4>
<== NOT EXECUTED
4005adc0: c2 0f bf f1 ldub [ %fp + -15 ], %g1
<== NOT EXECUTED
4005adc4: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4005adc8: 02 80 00 2f be 4005ae84 <msdos_filename_utf8_to_short_name_for_save+0x1dc>
<== NOT EXECUTED
4005adcc: 05 10 02 23 sethi %hi(0x40088c00), %g2
<== NOT EXECUTED
4005add0: 84 10 a3 b8 or %g2, 0x3b8, %g2 ! 40088fb8 <codepage_valid_char_map>
<== NOT EXECUTED
if (c == 0) {
4005add4: c6 48 80 01 ldsb [ %g2 + %g1 ], %g3
<== NOT EXECUTED
++returned_size;
4005add8: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
if (c == 0) {
4005addc: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005ade0: 12 80 00 03 bne 4005adec <msdos_filename_utf8_to_short_name_for_save+0x144>
<== NOT EXECUTED
4005ade4: c2 08 80 01 ldub [ %g2 + %g1 ], %g1
<== NOT EXECUTED
c = '_';
4005ade8: 82 10 20 5f mov 0x5f, %g1
<== NOT EXECUTED
dest_ptr[i] = msdos_get_valid_codepage_filename_character(*name_ptr);
4005adec: c2 2e c0 1d stb %g1, [ %i3 + %i5 ]
<== NOT EXECUTED
--name_size;
4005adf0: 86 06 bf ff add %i2, -1, %g3
<== NOT EXECUTED
4005adf4: 82 07 bf f1 add %fp, -15, %g1
<== NOT EXECUTED
4005adf8: 88 00 40 1d add %g1, %i5, %g4
<== NOT EXECUTED
++returned_size;
4005adfc: ba 07 60 01 inc %i5
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005ae00: 80 a7 60 08 cmp %i5, 8
<== NOT EXECUTED
4005ae04: 02 80 00 16 be 4005ae5c <msdos_filename_utf8_to_short_name_for_save+0x1b4>
<== NOT EXECUTED
4005ae08: b2 10 00 1d mov %i5, %i1
<== NOT EXECUTED
4005ae0c: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005ae10: 02 80 00 22 be 4005ae98 <msdos_filename_utf8_to_short_name_for_save+0x1f0>
<== NOT EXECUTED
4005ae14: 82 10 00 19 mov %i1, %g1
<== NOT EXECUTED
4005ae18: c2 0c 00 1d ldub [ %l0 + %i5 ], %g1
<== NOT EXECUTED
4005ae1c: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4005ae20: 02 80 00 4d be 4005af54 <msdos_filename_utf8_to_short_name_for_save+0x2ac>
<== NOT EXECUTED
4005ae24: 88 01 20 01 inc %g4
<== NOT EXECUTED
4005ae28: b4 10 00 03 mov %g3, %i2
<== NOT EXECUTED
if (c == 0) {
4005ae2c: c6 48 80 01 ldsb [ %g2 + %g1 ], %g3
<== NOT EXECUTED
4005ae30: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005ae34: 02 bf ff ed be 4005ade8 <msdos_filename_utf8_to_short_name_for_save+0x140>
<== NOT EXECUTED
4005ae38: c2 08 80 01 ldub [ %g2 + %g1 ], %g1
<== NOT EXECUTED
dest_ptr[i] = msdos_get_valid_codepage_filename_character(*name_ptr);
4005ae3c: c2 2e c0 1d stb %g1, [ %i3 + %i5 ]
<== NOT EXECUTED
--name_size;
4005ae40: 86 06 bf ff add %i2, -1, %g3
<== NOT EXECUTED
4005ae44: 82 07 bf f1 add %fp, -15, %g1
<== NOT EXECUTED
4005ae48: 88 00 40 1d add %g1, %i5, %g4
<== NOT EXECUTED
++returned_size;
4005ae4c: ba 07 60 01 inc %i5
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005ae50: 80 a7 60 08 cmp %i5, 8
<== NOT EXECUTED
4005ae54: 12 bf ff ee bne 4005ae0c <msdos_filename_utf8_to_short_name_for_save+0x164>
<== NOT EXECUTED
4005ae58: b2 10 00 1d mov %i5, %i1
<== NOT EXECUTED
if ( name_size > 0 && *name_ptr == '.' ) {
4005ae5c: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005ae60: 02 80 00 2d be 4005af14 <msdos_filename_utf8_to_short_name_for_save+0x26c>
<== NOT EXECUTED
4005ae64: 82 10 20 08 mov 8, %g1
<== NOT EXECUTED
4005ae68: c2 09 00 00 ldub [ %g4 ], %g1
<== NOT EXECUTED
4005ae6c: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4005ae70: 32 80 00 17 bne,a 4005aecc <msdos_filename_utf8_to_short_name_for_save+0x224>
<== NOT EXECUTED
4005ae74: b4 10 20 08 mov 8, %i2
<== NOT EXECUTED
++name_ptr;
4005ae78: 88 01 20 01 inc %g4
<== NOT EXECUTED
--name_size;
4005ae7c: 10 80 00 0f b 4005aeb8 <msdos_filename_utf8_to_short_name_for_save+0x210>
<== NOT EXECUTED
4005ae80: 86 06 bf fe add %i2, -2, %g3
<== NOT EXECUTED
4005ae84: 86 06 bf ff add %i2, -1, %g3
<== NOT EXECUTED
++name_ptr;
4005ae88: 88 07 bf f2 add %fp, -14, %g4
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005ae8c: b2 10 20 01 mov 1, %i1
<== NOT EXECUTED
++returned_size;
4005ae90: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
4005ae94: 82 10 00 19 mov %i1, %g1
<== NOT EXECUTED
dest_ptr[i] = ' ';
4005ae98: 84 10 20 20 mov 0x20, %g2
<== NOT EXECUTED
4005ae9c: c4 2e c0 01 stb %g2, [ %i3 + %g1 ]
<== NOT EXECUTED
for (; i < 8; ++i) {
4005aea0: 82 00 60 01 inc %g1
<== NOT EXECUTED
4005aea4: 80 a0 60 08 cmp %g1, 8
<== NOT EXECUTED
4005aea8: 32 bf ff fe bne,a 4005aea0 <msdos_filename_utf8_to_short_name_for_save+0x1f8>
<== NOT EXECUTED
4005aeac: c4 2e c0 01 stb %g2, [ %i3 + %g1 ]
<== NOT EXECUTED
4005aeb0: ba 27 40 19 sub %i5, %i1, %i5
<== NOT EXECUTED
4005aeb4: ba 07 60 08 add %i5, 8, %i5
<== NOT EXECUTED
for (; i <= 10 && name_size ; i++) {
4005aeb8: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4005aebc: 02 80 00 24 be 4005af4c <msdos_filename_utf8_to_short_name_for_save+0x2a4>
<== NOT EXECUTED
4005aec0: 05 10 02 23 sethi %hi(0x40088c00), %g2
<== NOT EXECUTED
4005aec4: b4 10 00 1d mov %i5, %i2
<== NOT EXECUTED
4005aec8: 84 10 a3 b8 or %g2, 0x3b8, %g2
<== NOT EXECUTED
4005aecc: 82 10 20 08 mov 8, %g1
<== NOT EXECUTED
4005aed0: b4 21 00 1a sub %g4, %i2, %i2
<== NOT EXECUTED
4005aed4: 10 80 00 05 b 4005aee8 <msdos_filename_utf8_to_short_name_for_save+0x240>
<== NOT EXECUTED
4005aed8: 86 00 e0 08 add %g3, 8, %g3
<== NOT EXECUTED
4005aedc: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
4005aee0: 22 80 00 0e be,a 4005af18 <msdos_filename_utf8_to_short_name_for_save+0x270>
<== NOT EXECUTED
4005aee4: 84 06 c0 01 add %i3, %g1, %g2
<== NOT EXECUTED
char c = codepage_valid_char_map[character];
4005aee8: c8 0e 80 1d ldub [ %i2 + %i5 ], %g4
<== NOT EXECUTED
if (c == 0) {
4005aeec: f2 48 80 04 ldsb [ %g2 + %g4 ], %i1
<== NOT EXECUTED
4005aef0: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
4005aef4: 12 80 00 03 bne 4005af00 <msdos_filename_utf8_to_short_name_for_save+0x258>
<== NOT EXECUTED
4005aef8: c8 08 80 04 ldub [ %g2 + %g4 ], %g4
<== NOT EXECUTED
c = '_';
4005aefc: 88 10 20 5f mov 0x5f, %g4
<== NOT EXECUTED
dest_ptr[i] = msdos_get_valid_codepage_filename_character(*name_ptr);
4005af00: c8 2e c0 01 stb %g4, [ %i3 + %g1 ]
<== NOT EXECUTED
for (; i <= 10 && name_size ; i++) {
4005af04: 82 00 60 01 inc %g1
<== NOT EXECUTED
4005af08: 80 a0 60 0b cmp %g1, 0xb
<== NOT EXECUTED
4005af0c: 12 bf ff f4 bne 4005aedc <msdos_filename_utf8_to_short_name_for_save+0x234>
<== NOT EXECUTED
4005af10: ba 07 60 01 inc %i5
<== NOT EXECUTED
4005af14: 84 06 c0 01 add %i3, %g1, %g2
<== NOT EXECUTED
dest_ptr[i] = ' ';
4005af18: 86 10 20 20 mov 0x20, %g3
<== NOT EXECUTED
for ( ; i < short_name_size; ++i ) {
4005af1c: 80 a0 40 1c cmp %g1, %i4
<== NOT EXECUTED
4005af20: 1a bf ff 71 bcc 4005ace4 <msdos_filename_utf8_to_short_name_for_save+0x3c>
<== NOT EXECUTED
4005af24: b6 06 c0 1c add %i3, %i4, %i3
<== NOT EXECUTED
dest_ptr[i] = ' ';
4005af28: c6 28 80 00 stb %g3, [ %g2 ]
<== NOT EXECUTED
4005af2c: 84 00 a0 01 inc %g2
<== NOT EXECUTED
for ( ; i < short_name_size; ++i ) {
4005af30: 80 a6 c0 02 cmp %i3, %g2
<== NOT EXECUTED
4005af34: 32 bf ff fe bne,a 4005af2c <msdos_filename_utf8_to_short_name_for_save+0x284>
<== NOT EXECUTED
4005af38: c6 28 80 00 stb %g3, [ %g2 ]
<== NOT EXECUTED
4005af3c: ba 27 40 01 sub %i5, %g1, %i5
<== NOT EXECUTED
4005af40: ba 07 40 1c add %i5, %i4, %i5
<== NOT EXECUTED
}
4005af44: 81 c7 e0 08 ret
<== NOT EXECUTED
4005af48: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
for (; i <= 10 && name_size ; i++) {
4005af4c: 10 bf ff f2 b 4005af14 <msdos_filename_utf8_to_short_name_for_save+0x26c>
<== NOT EXECUTED
4005af50: 82 10 20 08 mov 8, %g1
<== NOT EXECUTED
--name_size;
4005af54: 10 bf ff d0 b 4005ae94 <msdos_filename_utf8_to_short_name_for_save+0x1ec>
<== NOT EXECUTED
4005af58: 86 06 bf fe add %i2, -2, %g3
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005af5c: 86 10 20 00 clr %g3
<== NOT EXECUTED
++name_ptr;
4005af60: 88 07 bf f1 add %fp, -15, %g4
<== NOT EXECUTED
for (i = 1; i <= 7 && name_size && *name_ptr != '.'; ++i) {
4005af64: b2 10 20 01 mov 1, %i1
<== NOT EXECUTED
++returned_size;
4005af68: 10 bf ff cb b 4005ae94 <msdos_filename_utf8_to_short_name_for_save+0x1ec>
<== NOT EXECUTED
4005af6c: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
4004fd14 <msdos_find_name>:
{
4004fd14: 9d e3 bf 60 save %sp, -160, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = parent_loc->mt_entry->fs_info;
4004fd18: c2 06 20 14 ld [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
4004fd1c: f8 00 60 08 ld [ %g1 + 8 ], %i4
<== NOT EXECUTED
name_type = msdos_long_to_short (
4004fd20: d0 07 20 c0 ld [ %i4 + 0xc0 ], %o0
<== NOT EXECUTED
memset(node_entry, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fd24: ba 07 bf e0 add %fp, -32, %i5
<== NOT EXECUTED
name_type = msdos_long_to_short (
4004fd28: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
4004fd2c: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
4004fd30: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004fd34: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
fat_file_fd_t *fat_fd = NULL;
4004fd38: c0 27 bf cc clr [ %fp + -52 ]
<== NOT EXECUTED
memset(node_entry, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fd3c: c0 27 bf e0 clr [ %fp + -32 ]
<== NOT EXECUTED
4004fd40: c0 27 bf e4 clr [ %fp + -28 ]
<== NOT EXECUTED
4004fd44: c0 27 bf e8 clr [ %fp + -24 ]
<== NOT EXECUTED
4004fd48: c0 27 bf ec clr [ %fp + -20 ]
<== NOT EXECUTED
4004fd4c: c0 27 bf f0 clr [ %fp + -16 ]
<== NOT EXECUTED
4004fd50: c0 27 bf f4 clr [ %fp + -12 ]
<== NOT EXECUTED
4004fd54: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
name_type = msdos_long_to_short (
4004fd58: 7f ff f9 bf call 4004e454 <msdos_long_to_short>
<== NOT EXECUTED
4004fd5c: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
rc = msdos_get_name_node(parent_loc, false, name, name_len, name_type,
4004fd60: fa 23 a0 5c st %i5, [ %sp + 0x5c ]
<== NOT EXECUTED
4004fd64: 98 10 00 08 mov %o0, %o4
<== NOT EXECUTED
4004fd68: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4004fd6c: 9a 07 bf d0 add %fp, -48, %o5
<== NOT EXECUTED
4004fd70: 94 10 00 19 mov %i1, %o2
<== NOT EXECUTED
4004fd74: 92 10 20 00 clr %o1
<== NOT EXECUTED
4004fd78: 7f ff ff aa call 4004fc20 <msdos_get_name_node>
<== NOT EXECUTED
4004fd7c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fd80: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fd84: 12 80 00 1d bne 4004fdf8 <msdos_find_name+0xe4>
<== NOT EXECUTED
4004fd88: c2 0f bf eb ldub [ %fp + -21 ], %g1
<== NOT EXECUTED
if (((*MSDOS_DIR_ATTR(node_entry)) & MSDOS_ATTR_VOLUME_ID) ||
4004fd8c: 80 88 60 08 btst 8, %g1
<== NOT EXECUTED
4004fd90: 12 80 00 1c bne 4004fe00 <msdos_find_name+0xec>
<== NOT EXECUTED
4004fd94: 82 08 60 3f and %g1, 0x3f, %g1
<== NOT EXECUTED
4004fd98: 80 a0 60 0f cmp %g1, 0xf
<== NOT EXECUTED
4004fd9c: 02 80 00 19 be 4004fe00 <msdos_find_name+0xec>
<== NOT EXECUTED
4004fda0: 94 07 bf cc add %fp, -52, %o2
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &dir_pos, &fat_fd);
4004fda4: 92 07 bf d0 add %fp, -48, %o1
<== NOT EXECUTED
4004fda8: 7f ff bd b0 call 4003f468 <fat_file_open>
<== NOT EXECUTED
4004fdac: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fdb0: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fdb4: 12 80 00 11 bne 4004fdf8 <msdos_find_name+0xe4>
<== NOT EXECUTED
4004fdb8: c2 07 bf cc ld [ %fp + -52 ], %g1
<== NOT EXECUTED
fat_fd->dir_pos = dir_pos;
4004fdbc: c4 1f bf d0 ldd [ %fp + -48 ], %g2
<== NOT EXECUTED
4004fdc0: c4 38 60 20 std %g2, [ %g1 + 0x20 ]
<== NOT EXECUTED
4004fdc4: c4 1f bf d8 ldd [ %fp + -40 ], %g2
<== NOT EXECUTED
4004fdc8: c4 38 60 28 std %g2, [ %g1 + 0x28 ]
<== NOT EXECUTED
if (fat_fd->links_num == 1)
4004fdcc: c4 00 60 08 ld [ %g1 + 8 ], %g2
<== NOT EXECUTED
4004fdd0: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
4004fdd4: 02 80 00 0f be 4004fe10 <msdos_find_name+0xfc>
<== NOT EXECUTED
4004fdd8: c4 17 bf fa lduh [ %fp + -6 ], %g2
<== NOT EXECUTED
rc = fat_file_close(&fs_info->fat, parent_loc->node_access);
4004fddc: d2 06 20 08 ld [ %i0 + 8 ], %o1
<== NOT EXECUTED
4004fde0: 7f ff bf 4a call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fde4: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fde8: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fdec: 12 80 00 4e bne 4004ff24 <msdos_find_name+0x210>
<== NOT EXECUTED
4004fdf0: c2 07 bf cc ld [ %fp + -52 ], %g1
<== NOT EXECUTED
parent_loc->node_access = fat_fd;
4004fdf4: c2 26 20 08 st %g1, [ %i0 + 8 ]
<== NOT EXECUTED
}
4004fdf8: 81 c7 e0 08 ret
<== NOT EXECUTED
4004fdfc: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
return MSDOS_NAME_NOT_FOUND_ERR;
4004fe00: 3b 00 00 1f sethi %hi(0x7c00), %i5
<== NOT EXECUTED
4004fe04: ba 17 61 01 or %i5, 0x101, %i5 ! 7d01 <_Configuration_Interrupt_stack_size+0x6d01>
<== NOT EXECUTED
}
4004fe08: 81 c7 e0 08 ret
<== NOT EXECUTED
4004fe0c: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
fat_fd->cln = MSDOS_EXTRACT_CLUSTER_NUM(node_entry);
4004fe10: c8 17 bf f4 lduh [ %fp + -12 ], %g4
<== NOT EXECUTED
4004fe14: bb 30 a0 08 srl %g2, 8, %i5
<== NOT EXECUTED
4004fe18: 87 28 a0 08 sll %g2, 8, %g3
<== NOT EXECUTED
4004fe1c: 85 29 20 08 sll %g4, 8, %g2
<== NOT EXECUTED
4004fe20: 86 10 c0 1d or %g3, %i5, %g3
<== NOT EXECUTED
4004fe24: 89 31 20 08 srl %g4, 8, %g4
<== NOT EXECUTED
4004fe28: 87 28 e0 10 sll %g3, 0x10, %g3
<== NOT EXECUTED
4004fe2c: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
4004fe30: 87 30 e0 10 srl %g3, 0x10, %g3
<== NOT EXECUTED
4004fe34: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
4004fe38: 84 10 80 03 or %g2, %g3, %g2
<== NOT EXECUTED
4004fe3c: c4 20 60 1c st %g2, [ %g1 + 0x1c ]
<== NOT EXECUTED
fat_fd->mtime = msdos_date_dos2unix(CF_LE_W(date), CF_LE_W(time_val));
4004fe40: c4 17 bf f8 lduh [ %fp + -8 ], %g2
<== NOT EXECUTED
4004fe44: c2 17 bf f6 lduh [ %fp + -10 ], %g1
<== NOT EXECUTED
4004fe48: 91 28 a0 08 sll %g2, 8, %o0
<== NOT EXECUTED
4004fe4c: 93 28 60 08 sll %g1, 8, %o1
<== NOT EXECUTED
4004fe50: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4004fe54: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004fe58: 90 12 00 02 or %o0, %g2, %o0
<== NOT EXECUTED
4004fe5c: 92 12 40 01 or %o1, %g1, %o1
<== NOT EXECUTED
4004fe60: 91 2a 20 10 sll %o0, 0x10, %o0
<== NOT EXECUTED
4004fe64: 93 2a 60 10 sll %o1, 0x10, %o1
<== NOT EXECUTED
4004fe68: 91 32 20 10 srl %o0, 0x10, %o0
<== NOT EXECUTED
4004fe6c: 40 00 2a 1e call 4005a6e4 <msdos_date_dos2unix>
<== NOT EXECUTED
4004fe70: 93 32 60 10 srl %o1, 0x10, %o1
<== NOT EXECUTED
4004fe74: c2 07 bf cc ld [ %fp + -52 ], %g1
<== NOT EXECUTED
4004fe78: d0 20 60 4c st %o0, [ %g1 + 0x4c ]
<== NOT EXECUTED
fat_fd->ctime = msdos_date_dos2unix(CF_LE_W(date), CF_LE_W(time_val));
4004fe7c: c4 17 bf f0 lduh [ %fp + -16 ], %g2
<== NOT EXECUTED
fat_fd->mtime = msdos_date_dos2unix(CF_LE_W(date), CF_LE_W(time_val));
4004fe80: c0 20 60 48 clr [ %g1 + 0x48 ]
<== NOT EXECUTED
fat_fd->ctime = msdos_date_dos2unix(CF_LE_W(date), CF_LE_W(time_val));
4004fe84: 91 28 a0 08 sll %g2, 8, %o0
<== NOT EXECUTED
4004fe88: c2 17 bf ee lduh [ %fp + -18 ], %g1
<== NOT EXECUTED
4004fe8c: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4004fe90: 93 28 60 08 sll %g1, 8, %o1
<== NOT EXECUTED
4004fe94: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
4004fe98: 90 12 00 02 or %o0, %g2, %o0
<== NOT EXECUTED
4004fe9c: 92 12 40 01 or %o1, %g1, %o1
<== NOT EXECUTED
4004fea0: 91 2a 20 10 sll %o0, 0x10, %o0
<== NOT EXECUTED
4004fea4: 93 2a 60 10 sll %o1, 0x10, %o1
<== NOT EXECUTED
4004fea8: 91 32 20 10 srl %o0, 0x10, %o0
<== NOT EXECUTED
4004feac: 40 00 2a 0e call 4005a6e4 <msdos_date_dos2unix>
<== NOT EXECUTED
4004feb0: 93 32 60 10 srl %o1, 0x10, %o1
<== NOT EXECUTED
4004feb4: fa 07 bf cc ld [ %fp + -52 ], %i5
<== NOT EXECUTED
4004feb8: c0 27 60 40 clr [ %i5 + 0x40 ]
<== NOT EXECUTED
4004febc: d0 27 60 44 st %o0, [ %i5 + 0x44 ]
<== NOT EXECUTED
if ((*MSDOS_DIR_ATTR(node_entry)) & MSDOS_ATTR_DIRECTORY)
4004fec0: c2 0f bf eb ldub [ %fp + -21 ], %g1
<== NOT EXECUTED
4004fec4: 80 88 60 10 btst 0x10, %g1
<== NOT EXECUTED
4004fec8: 32 80 00 1b bne,a 4004ff34 <msdos_find_name+0x220>
<== NOT EXECUTED
4004fecc: c0 27 60 10 clr [ %i5 + 0x10 ]
<== NOT EXECUTED
fat_fd->fat_file_size = CF_LE_L(*MSDOS_DIR_FILE_SIZE(node_entry));
4004fed0: 40 00 a6 ec call 40079a80 <__bswapsi2>
<== NOT EXECUTED
4004fed4: d0 07 bf fc ld [ %fp + -4 ], %o0
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_FILE;
4004fed8: 82 10 20 04 mov 4, %g1
<== NOT EXECUTED
fat_fd->fat_file_size = CF_LE_L(*MSDOS_DIR_FILE_SIZE(node_entry));
4004fedc: d0 27 60 18 st %o0, [ %i5 + 0x18 ]
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_FILE;
4004fee0: c2 27 60 10 st %g1, [ %i5 + 0x10 ]
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_FILE_SIZE;
4004fee4: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
4004fee8: c2 27 60 14 st %g1, [ %i5 + 0x14 ]
<== NOT EXECUTED
if ((fat_fd->fat_file_size != 0) &&
4004feec: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
fat_fd->map.disk_cln = fat_fd->cln;
4004fef0: c2 07 60 1c ld [ %i5 + 0x1c ], %g1
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
4004fef4: c0 27 60 34 clr [ %i5 + 0x34 ]
<== NOT EXECUTED
if ((fat_fd->fat_file_size != 0) &&
4004fef8: 02 80 00 08 be 4004ff18 <msdos_find_name+0x204>
<== NOT EXECUTED
4004fefc: c2 27 60 38 st %g1, [ %i5 + 0x38 ]
<== NOT EXECUTED
4004ff00: c4 07 20 08 ld [ %i4 + 8 ], %g2
<== NOT EXECUTED
4004ff04: 80 a0 80 08 cmp %g2, %o0
<== NOT EXECUTED
4004ff08: 2a 80 00 05 bcs,a 4004ff1c <msdos_find_name+0x208>
<== NOT EXECUTED
4004ff0c: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
fat_fd->map.last_cln = FAT_UNDEFINED_VALUE;
4004ff10: 10 bf ff b3 b 4004fddc <msdos_find_name+0xc8>
<== NOT EXECUTED
4004ff14: c2 27 60 3c st %g1, [ %i5 + 0x3c ]
<== NOT EXECUTED
4004ff18: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
4004ff1c: 10 bf ff b0 b 4004fddc <msdos_find_name+0xc8>
<== NOT EXECUTED
4004ff20: c2 27 60 3c st %g1, [ %i5 + 0x3c ]
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004ff24: d2 07 bf cc ld [ %fp + -52 ], %o1
<== NOT EXECUTED
4004ff28: 7f ff be f8 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004ff2c: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
return rc;
4004ff30: 30 bf ff b2 b,a 4004fdf8 <msdos_find_name+0xe4>
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004ff34: 03 00 08 00 sethi %hi(0x200000), %g1
<== NOT EXECUTED
4004ff38: c2 27 60 14 st %g1, [ %i5 + 0x14 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004ff3c: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
4004ff40: 7f ff c0 94 call 40040190 <fat_file_size>
<== NOT EXECUTED
4004ff44: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004ff48: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004ff4c: 12 bf ff f7 bne 4004ff28 <msdos_find_name+0x214>
<== NOT EXECUTED
4004ff50: d2 07 bf cc ld [ %fp + -52 ], %o1
<== NOT EXECUTED
4004ff54: fa 07 bf cc ld [ %fp + -52 ], %i5
<== NOT EXECUTED
4004ff58: 10 bf ff e5 b 4004feec <msdos_find_name+0x1d8>
<== NOT EXECUTED
4004ff5c: d0 07 60 18 ld [ %i5 + 0x18 ], %o0
<== NOT EXECUTED
4004edf0 <msdos_find_name_in_fat_file>:
const uint8_t *name_utf8,
int name_utf8_len,
msdos_name_type_t name_type,
fat_dir_pos_t *dir_pos,
char *name_dir_entry)
{
4004edf0: 9d e3 be d0 save %sp, -304, %sp
<== NOT EXECUTED
int retval = 0;
msdos_fs_info_t *fs_info = mt_entry->fs_info;
4004edf4: e0 06 20 08 ld [ %i0 + 8 ], %l0
<== NOT EXECUTED
ssize_t name_len_for_compare;
uint32_t bts2rd = 0;
uint32_t empty_file_offset = 0;
uint32_t empty_entry_count = 0;
unsigned int lfn_entries;
rtems_dosfs_convert_control *converter = fs_info->converter;
4004edf8: c2 04 20 c0 ld [ %l0 + 0xc0 ], %g1
<== NOT EXECUTED
void *buffer = converter->buffer.data;
4004edfc: c4 00 60 04 ld [ %g1 + 4 ], %g2
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4004ee00: c2 27 bf 4c st %g1, [ %fp + -180 ]
<== NOT EXECUTED
size_t buffer_size = converter->buffer.size;
4004ee04: c2 00 60 08 ld [ %g1 + 8 ], %g1
<== NOT EXECUTED
4004ee08: c2 27 bf 48 st %g1, [ %fp + -184 ]
<== NOT EXECUTED
assert(name_utf8_len > 0);
4004ee0c: 82 97 20 00 orcc %i4, 0, %g1
<== NOT EXECUTED
{
4004ee10: f8 27 a0 54 st %i4, [ %fp + 0x54 ]
<== NOT EXECUTED
4004ee14: f6 27 a0 50 st %i3, [ %fp + 0x50 ]
<== NOT EXECUTED
4004ee18: fa 27 a0 58 st %i5, [ %fp + 0x58 ]
<== NOT EXECUTED
assert(name_utf8_len > 0);
4004ee1c: 04 80 02 69 ble 4004f7c0 <msdos_find_name_in_fat_file+0x9d0>
<== NOT EXECUTED
4004ee20: c4 27 bf 58 st %g2, [ %fp + -168 ]
<== NOT EXECUTED
dir_pos->sname.cln = 0;
4004ee24: c2 07 a0 5c ld [ %fp + 0x5c ], %g1
<== NOT EXECUTED
4004ee28: c0 20 40 00 clr [ %g1 ]
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004ee2c: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4004ee30: c4 07 a0 5c ld [ %fp + 0x5c ], %g2
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004ee34: c2 20 a0 08 st %g1, [ %g2 + 8 ]
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004ee38: c2 20 a0 0c st %g1, [ %g2 + 0xc ]
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4004ee3c: c0 20 a0 04 clr [ %g2 + 4 ]
<== NOT EXECUTED
fat_dir_pos_init(dir_pos);
if (FAT_FD_OF_ROOT_DIR(fat_fd) &&
4004ee40: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4004ee44: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4004ee48: 22 80 00 1c be,a 4004eeb8 <msdos_find_name_in_fat_file+0xc8>
<== NOT EXECUTED
4004ee4c: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
(fs_info->fat.vol.type & (FAT_FAT12 | FAT_FAT16)))
bts2rd = fat_fd->fat_file_size;
else
bts2rd = fs_info->fat.vol.bpc;
4004ee50: e2 04 20 08 ld [ %l0 + 8 ], %l1
<== NOT EXECUTED
switch ( name_type ) {
4004ee54: c2 07 a0 58 ld [ %fp + 0x58 ], %g1
<== NOT EXECUTED
4004ee58: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4004ee5c: 02 80 00 20 be 4004eedc <msdos_find_name_in_fat_file+0xec>
<== NOT EXECUTED
4004ee60: 80 a0 60 02 cmp %g1, 2
<== NOT EXECUTED
4004ee64: 12 80 00 0f bne 4004eea0 <msdos_find_name_in_fat_file+0xb0>
<== NOT EXECUTED
4004ee68: f6 07 bf 58 ld [ %fp + -168 ], %i3
<== NOT EXECUTED
}
else
retval = -1;
break;
case MSDOS_NAME_LONG:
name_len_for_save = msdos_filename_utf8_to_long_name_for_save (
4004ee6c: f0 07 bf 48 ld [ %fp + -184 ], %i0
<== NOT EXECUTED
4004ee70: f8 07 bf 4c ld [ %fp + -180 ], %i4
<== NOT EXECUTED
4004ee74: d4 07 a0 54 ld [ %fp + 0x54 ], %o2
<== NOT EXECUTED
4004ee78: d2 07 a0 50 ld [ %fp + 0x50 ], %o1
<== NOT EXECUTED
4004ee7c: 98 10 00 18 mov %i0, %o4
<== NOT EXECUTED
4004ee80: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004ee84: 40 00 2e da call 4005a9ec <msdos_filename_utf8_to_long_name_for_save>
<== NOT EXECUTED
4004ee88: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
converter,
name_utf8,
name_utf8_len,
buffer,
buffer_size);
if (name_len_for_save > 0) {
4004ee8c: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004ee90: 14 80 01 5d bg 4004f404 <msdos_find_name_in_fat_file+0x614>
<== NOT EXECUTED
4004ee94: d4 07 a0 54 ld [ %fp + 0x54 ], %o2
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004ee98: 81 c7 e0 08 ret
<== NOT EXECUTED
4004ee9c: 91 e8 3f ff restore %g0, -1, %o0
<== NOT EXECUTED
}
else
retval = -1;
break;
default:
errno = EINVAL;
4004eea0: 40 00 36 9d call 4005c914 <__errno>
<== NOT EXECUTED
4004eea4: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4004eea8: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
4004eeac: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4004eeb0: 81 c7 e0 08 ret
<== NOT EXECUTED
4004eeb4: 81 e8 00 00 restore
<== NOT EXECUTED
if (FAT_FD_OF_ROOT_DIR(fat_fd) &&
4004eeb8: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004eebc: 32 bf ff e6 bne,a 4004ee54 <msdos_find_name_in_fat_file+0x64>
<== NOT EXECUTED
4004eec0: e2 04 20 08 ld [ %l0 + 8 ], %l1
<== NOT EXECUTED
4004eec4: c2 0c 20 16 ldub [ %l0 + 0x16 ], %g1
<== NOT EXECUTED
4004eec8: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4004eecc: 22 bf ff e2 be,a 4004ee54 <msdos_find_name_in_fat_file+0x64>
<== NOT EXECUTED
4004eed0: e2 04 20 08 ld [ %l0 + 8 ], %l1
<== NOT EXECUTED
bts2rd = fat_fd->fat_file_size;
4004eed4: 10 bf ff e0 b 4004ee54 <msdos_find_name_in_fat_file+0x64>
<== NOT EXECUTED
4004eed8: e2 06 60 18 ld [ %i1 + 0x18 ], %l1
<== NOT EXECUTED
name_len_for_compare = msdos_filename_utf8_to_short_name_for_compare (
4004eedc: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004eee0: d4 07 a0 54 ld [ %fp + 0x54 ], %o2
<== NOT EXECUTED
4004eee4: d2 07 a0 50 ld [ %fp + 0x50 ], %o1
<== NOT EXECUTED
4004eee8: d0 07 bf 4c ld [ %fp + -180 ], %o0
<== NOT EXECUTED
4004eeec: 40 00 2f 3f call 4005abe8 <msdos_filename_utf8_to_short_name_for_compare>
<== NOT EXECUTED
4004eef0: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
lfn_entries = 0;
4004eef4: 86 10 20 00 clr %g3
<== NOT EXECUTED
if (name_len_for_compare > 0) {
4004eef8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004eefc: 04 bf ff e7 ble 4004ee98 <msdos_find_name_in_fat_file+0xa8>
<== NOT EXECUTED
4004ef00: ac 10 00 08 mov %o0, %l6
<== NOT EXECUTED
uint32_t entries_per_block = bts2rd / MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE;
4004ef04: 83 34 60 05 srl %l1, 5, %g1
<== NOT EXECUTED
4004ef08: f2 27 a0 48 st %i1, [ %fp + 0x48 ]
<== NOT EXECUTED
uint32_t empty_file_offset = 0;
4004ef0c: a4 10 20 00 clr %l2
<== NOT EXECUTED
uint32_t entries_per_block = bts2rd / MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE;
4004ef10: c2 27 bf 44 st %g1, [ %fp + -188 ]
<== NOT EXECUTED
*entry_matched = false;
4004ef14: ae 10 20 00 clr %l7
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4004ef18: c2 04 20 c0 ld [ %l0 + 0xc0 ], %g1
<== NOT EXECUTED
4004ef1c: c2 27 bf 54 st %g1, [ %fp + -172 ]
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004ef20: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
while ( (bytes_read = fat_file_read (&fs_info->fat, fat_fd, (dir_offset * bts2rd),
4004ef24: d8 04 20 bc ld [ %l0 + 0xbc ], %o4
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004ef28: c2 27 bf 68 st %g1, [ %fp + -152 ]
<== NOT EXECUTED
if (*empty_entry_count == (lfn_entries + 1))
4004ef2c: 82 00 e0 01 add %g3, 1, %g1
<== NOT EXECUTED
while ( (bytes_read = fat_file_read (&fs_info->fat, fat_fd, (dir_offset * bts2rd),
4004ef30: d2 07 a0 48 ld [ %fp + 0x48 ], %o1
<== NOT EXECUTED
*entry_matched = false;
4004ef34: c0 2f bf 63 clrb [ %fp + -157 ]
<== NOT EXECUTED
4004ef38: b2 10 00 12 mov %l2, %i1
<== NOT EXECUTED
uint8_t lfn_checksum = 0;
4004ef3c: c0 2f bf 53 clrb [ %fp + -173 ]
<== NOT EXECUTED
4004ef40: a4 10 00 1a mov %i2, %l2
<== NOT EXECUTED
if (*empty_entry_count == (lfn_entries + 1))
4004ef44: c2 27 bf 5c st %g1, [ %fp + -164 ]
<== NOT EXECUTED
4004ef48: b4 10 00 17 mov %l7, %i2
<== NOT EXECUTED
while ( (bytes_read = fat_file_read (&fs_info->fat, fat_fd, (dir_offset * bts2rd),
4004ef4c: 96 10 00 11 mov %l1, %o3
<== NOT EXECUTED
4004ef50: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004ef54: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004ef58: 7f ff c2 2d call 4003f80c <fat_file_read>
<== NOT EXECUTED
4004ef5c: aa 10 00 16 mov %l6, %l5
<== NOT EXECUTED
uint32_t empty_entry_count = 0;
4004ef60: b6 10 20 00 clr %i3
<== NOT EXECUTED
uint32_t dir_offset = 0;
4004ef64: a8 10 20 00 clr %l4
<== NOT EXECUTED
int lfn_entry = 0;
4004ef68: b0 10 20 00 clr %i0
<== NOT EXECUTED
&& rc == RC_OK)
4004ef6c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004ef70: 02 80 00 b2 be 4004f238 <msdos_find_name_in_fat_file+0x448>
<== NOT EXECUTED
4004ef74: a6 10 20 00 clr %l3
<== NOT EXECUTED
if (bytes_read < MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004ef78: 80 a2 20 1f cmp %o0, 0x1f
<== NOT EXECUTED
4004ef7c: 04 80 01 65 ble 4004f510 <msdos_find_name_in_fat_file+0x720>
<== NOT EXECUTED
4004ef80: 80 a4 40 08 cmp %l1, %o0
<== NOT EXECUTED
assert(bytes_read == bts2rd);
4004ef84: 12 80 02 03 bne 4004f790 <msdos_find_name_in_fat_file+0x9a0>
<== NOT EXECUTED
4004ef88: ba 10 20 00 clr %i5
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004ef8c: 10 80 00 1c b 4004effc <msdos_find_name_in_fat_file+0x20c>
<== NOT EXECUTED
4004ef90: ae 10 3f ff mov -1, %l7
<== NOT EXECUTED
if (create_node && !empty_space_found)
4004ef94: 12 80 00 06 bne 4004efac <msdos_find_name_in_fat_file+0x1bc>
<== NOT EXECUTED
4004ef98: 80 a4 a0 00 cmp %l2, 0
<== NOT EXECUTED
4004ef9c: 22 80 00 05 be,a 4004efb0 <msdos_find_name_in_fat_file+0x1c0>
<== NOT EXECUTED
4004efa0: c4 0f 20 0b ldub [ %i4 + 0xb ], %g2
<== NOT EXECUTED
*empty_entry_count = 0;
4004efa4: b6 10 20 00 clr %i3
<== NOT EXECUTED
*empty_file_offset = 0;
4004efa8: b2 10 20 00 clr %i1
<== NOT EXECUTED
if ((*MSDOS_DIR_ATTR(entry) & MSDOS_ATTR_LFN_MASK) ==
4004efac: c4 0f 20 0b ldub [ %i4 + 0xb ], %g2
<== NOT EXECUTED
4004efb0: 86 08 a0 3f and %g2, 0x3f, %g3
<== NOT EXECUTED
4004efb4: 80 a0 e0 0f cmp %g3, 0xf
<== NOT EXECUTED
4004efb8: 02 80 00 26 be 4004f050 <msdos_find_name_in_fat_file+0x260>
<== NOT EXECUTED
4004efbc: c6 0f bf 63 ldub [ %fp + -157 ], %g3
<== NOT EXECUTED
if (entry_matched)
4004efc0: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4004efc4: 02 80 00 31 be 4004f088 <msdos_find_name_in_fat_file+0x298>
<== NOT EXECUTED
4004efc8: 80 88 a0 08 btst 8, %g2
<== NOT EXECUTED
if (lfn_entry ||
4004efcc: 80 a5 60 00 cmp %l5, 0
<== NOT EXECUTED
4004efd0: 14 80 00 04 bg 4004efe0 <msdos_find_name_in_fat_file+0x1f0>
<== NOT EXECUTED
4004efd4: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
4004efd8: 02 80 00 ea be 4004f380 <msdos_find_name_in_fat_file+0x590>
<== NOT EXECUTED
4004efdc: 88 10 20 00 clr %g4
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004efe0: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
*entry_matched = false;
4004efe4: aa 10 00 16 mov %l6, %l5
<== NOT EXECUTED
4004efe8: c0 2f bf 63 clrb [ %fp + -157 ]
<== NOT EXECUTED
dir_entry += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004efec: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
for (dir_entry = 0;
4004eff0: 80 a4 40 1d cmp %l1, %i5
<== NOT EXECUTED
4004eff4: 28 80 00 87 bleu,a 4004f210 <msdos_find_name_in_fat_file+0x420>
<== NOT EXECUTED
4004eff8: d8 04 20 bc ld [ %l0 + 0xbc ], %o4
<== NOT EXECUTED
char* entry = (char*) fs_info->cl_buf + dir_entry;
4004effc: c2 04 20 bc ld [ %l0 + 0xbc ], %g1
<== NOT EXECUTED
4004f000: b8 00 40 1d add %g1, %i5, %i4
<== NOT EXECUTED
if (*empty_entry_count == 0)
4004f004: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
4004f008: 12 80 00 03 bne 4004f014 <msdos_find_name_in_fat_file+0x224>
<== NOT EXECUTED
4004f00c: c2 08 40 1d ldub [ %g1 + %i5 ], %g1
<== NOT EXECUTED
4004f010: b2 06 80 1d add %i2, %i5, %i1
<== NOT EXECUTED
if (remainder_empty)
4004f014: 84 88 60 ff andcc %g1, 0xff, %g2
<== NOT EXECUTED
4004f018: 02 80 00 c5 be 4004f32c <msdos_find_name_in_fat_file+0x53c>
<== NOT EXECUTED
4004f01c: 80 a0 a0 e5 cmp %g2, 0xe5
<== NOT EXECUTED
else if (entry_empty)
4004f020: 12 bf ff dd bne 4004ef94 <msdos_find_name_in_fat_file+0x1a4>
<== NOT EXECUTED
4004f024: 80 8c e0 ff btst 0xff, %l3
<== NOT EXECUTED
if (create_node)
4004f028: 80 a4 a0 00 cmp %l2, 0
<== NOT EXECUTED
4004f02c: 22 bf ff ee be,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f030: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
if (*empty_entry_count == (lfn_entries + 1))
4004f034: c2 07 bf 5c ld [ %fp + -164 ], %g1
<== NOT EXECUTED
(*empty_entry_count)++;
4004f038: b6 06 e0 01 inc %i3
<== NOT EXECUTED
if (*empty_entry_count == (lfn_entries + 1))
4004f03c: 80 a6 c0 01 cmp %i3, %g1
<== NOT EXECUTED
4004f040: 22 bf ff e8 be,a 4004efe0 <msdos_find_name_in_fat_file+0x1f0>
<== NOT EXECUTED
4004f044: a6 10 20 01 mov 1, %l3
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004f048: 10 bf ff e7 b 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f04c: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
(lfn_start.cln == FAT_FILE_SHORT_NAME);
4004f050: c4 07 bf 68 ld [ %fp + -152 ], %g2
<== NOT EXECUTED
if (is_first_lfn_entry)
4004f054: 80 a0 bf ff cmp %g2, -1
<== NOT EXECUTED
4004f058: 02 80 00 7d be 4004f24c <msdos_find_name_in_fat_file+0x45c>
<== NOT EXECUTED
4004f05c: 82 08 60 3f and %g1, 0x3f, %g1
<== NOT EXECUTED
if ((lfn_entry != (*MSDOS_DIR_ENTRY_TYPE(entry) &
4004f060: 80 a6 00 01 cmp %i0, %g1
<== NOT EXECUTED
4004f064: 32 bf ff e0 bne,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f068: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
MSDOS_LAST_LONG_ENTRY_MASK)) ||
4004f06c: c2 0f 20 0d ldub [ %i4 + 0xd ], %g1
<== NOT EXECUTED
4004f070: c6 0f bf 53 ldub [ %fp + -173 ], %g3
<== NOT EXECUTED
4004f074: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
4004f078: 32 bf ff db bne,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f07c: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
bool is_first_lfn_entry =
4004f080: 10 80 00 7f b 4004f27c <msdos_find_name_in_fat_file+0x48c>
<== NOT EXECUTED
4004f084: 84 38 00 02 xnor %g0, %g2, %g2
<== NOT EXECUTED
} else if ((*MSDOS_DIR_ATTR(entry) & MSDOS_ATTR_VOLUME_ID)
4004f088: 32 bf ff da bne,a 4004eff0 <msdos_find_name_in_fat_file+0x200>
<== NOT EXECUTED
4004f08c: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
size_t bytes_converted = buf_size;
4004f090: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
ssize_t bytes_written = msdos_format_dirent_with_dot(char_buf, entry);
4004f094: 92 10 00 1c mov %i4, %o1
<== NOT EXECUTED
size_t bytes_converted = buf_size;
4004f098: c2 27 bf 64 st %g1, [ %fp + -156 ]
<== NOT EXECUTED
ssize_t bytes_written = msdos_format_dirent_with_dot(char_buf, entry);
4004f09c: 7f ff ff 04 call 4004ecac <msdos_format_dirent_with_dot>
<== NOT EXECUTED
4004f0a0: 90 07 bf 70 add %fp, -144, %o0
<== NOT EXECUTED
if (bytes_written > 0) {
4004f0a4: 94 92 20 00 orcc %o0, 0, %o2
<== NOT EXECUTED
4004f0a8: 04 80 01 b8 ble 4004f788 <msdos_find_name_in_fat_file+0x998>
<== NOT EXECUTED
4004f0ac: c2 4f bf 70 ldsb [ %fp + -144 ], %g1
<== NOT EXECUTED
if (char_buf[0] == 0x05)
4004f0b0: 80 a0 60 05 cmp %g1, 5
<== NOT EXECUTED
4004f0b4: 12 80 00 04 bne 4004f0c4 <msdos_find_name_in_fat_file+0x2d4>
<== NOT EXECUTED
4004f0b8: 98 07 bf 64 add %fp, -156, %o4
<== NOT EXECUTED
char_buf[0] = 0xE5;
4004f0bc: 82 10 3f e5 mov -27, %g1
<== NOT EXECUTED
4004f0c0: c2 2f bf 70 stb %g1, [ %fp + -144 ]
<== NOT EXECUTED
eno = (*converter->handler->codepage_to_utf8) (
4004f0c4: d0 07 bf 54 ld [ %fp + -172 ], %o0
<== NOT EXECUTED
4004f0c8: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
4004f0cc: c2 00 60 04 ld [ %g1 + 4 ], %g1
<== NOT EXECUTED
4004f0d0: 96 07 bf 90 add %fp, -112, %o3
<== NOT EXECUTED
4004f0d4: 9f c0 40 00 call %g1
<== NOT EXECUTED
4004f0d8: 92 07 bf 70 add %fp, -144, %o1
<== NOT EXECUTED
if (eno == 0)
4004f0dc: aa 92 20 00 orcc %o0, 0, %l5
<== NOT EXECUTED
4004f0e0: 02 80 00 8e be 4004f318 <msdos_find_name_in_fat_file+0x528>
<== NOT EXECUTED
4004f0e4: d4 07 bf 64 ld [ %fp + -156 ], %o2
<== NOT EXECUTED
errno = eno;
4004f0e8: 40 00 36 0b call 4005c914 <__errno>
<== NOT EXECUTED
4004f0ec: 01 00 00 00 nop
<== NOT EXECUTED
4004f0f0: ea 22 00 00 st %l5, [ %o0 ]
<== NOT EXECUTED
bytes_in_entry = msdos_short_entry_to_utf8_name (
4004f0f4: 94 10 3f ff mov -1, %o2
<== NOT EXECUTED
name_len_remaining = msdos_compare_entry_against_filename (
4004f0f8: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f0fc: d0 07 bf 54 ld [ %fp + -172 ], %o0
<== NOT EXECUTED
4004f100: 9a 07 bf 63 add %fp, -157, %o5
<== NOT EXECUTED
4004f104: 98 10 00 16 mov %l6, %o4
<== NOT EXECUTED
4004f108: 7f ff fc 5c call 4004e278 <msdos_compare_entry_against_filename>
<== NOT EXECUTED
4004f10c: 92 07 bf 90 add %fp, -112, %o1
<== NOT EXECUTED
if (entry_matched && name_len_remaining == 0) {
4004f110: c2 0f bf 63 ldub [ %fp + -157 ], %g1
<== NOT EXECUTED
4004f114: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004f118: 02 bf ff b2 be 4004efe0 <msdos_find_name_in_fat_file+0x1f0>
<== NOT EXECUTED
4004f11c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f120: 32 bf ff b1 bne,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f124: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
rc = msdos_on_entry_found (
4004f128: fa 23 a0 60 st %i5, [ %sp + 0x60 ]
<== NOT EXECUTED
4004f12c: 82 07 bf 68 add %fp, -152, %g1
<== NOT EXECUTED
4004f130: e8 23 a0 5c st %l4, [ %sp + 0x5c ]
<== NOT EXECUTED
4004f134: b4 10 00 12 mov %l2, %i2
<== NOT EXECUTED
4004f138: c2 23 a0 64 st %g1, [ %sp + 0x64 ]
<== NOT EXECUTED
4004f13c: a4 10 00 19 mov %i1, %l2
<== NOT EXECUTED
4004f140: da 07 a0 5c ld [ %fp + 0x5c ], %o5
<== NOT EXECUTED
4004f144: f2 07 a0 48 ld [ %fp + 0x48 ], %i1
<== NOT EXECUTED
4004f148: d6 07 a0 60 ld [ %fp + 0x60 ], %o3
<== NOT EXECUTED
4004f14c: 98 10 00 1c mov %i4, %o4
<== NOT EXECUTED
4004f150: 94 10 00 11 mov %l1, %o2
<== NOT EXECUTED
4004f154: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f158: 7f ff fc 6c call 4004e308 <msdos_on_entry_found>
<== NOT EXECUTED
4004f15c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
dir_entry += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004f160: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
for (dir_entry = 0;
4004f164: 80 a7 40 11 cmp %i5, %l1
<== NOT EXECUTED
4004f168: 1a 80 01 92 bcc 4004f7b0 <msdos_find_name_in_fat_file+0x9c0>
<== NOT EXECUTED
4004f16c: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
4004f170: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f174: 12 80 01 8f bne 4004f7b0 <msdos_find_name_in_fat_file+0x9c0>
<== NOT EXECUTED
4004f178: 82 10 00 1a mov %i2, %g1
<== NOT EXECUTED
if ( retval == RC_OK
4004f17c: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
4004f180: 02 bf ff 4c be 4004eeb0 <msdos_find_name_in_fat_file+0xc0>
<== NOT EXECUTED
4004f184: c2 07 a0 58 ld [ %fp + 0x58 ], %g1
<== NOT EXECUTED
switch (name_type) {
4004f188: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4004f18c: 02 80 00 ac be 4004f43c <msdos_find_name_in_fat_file+0x64c>
<== NOT EXECUTED
4004f190: 80 a0 60 02 cmp %g1, 2
<== NOT EXECUTED
4004f194: 12 bf ff 43 bne 4004eea0 <msdos_find_name_in_fat_file+0xb0>
<== NOT EXECUTED
4004f198: d8 07 bf 48 ld [ %fp + -184 ], %o4
<== NOT EXECUTED
name_len_for_save = msdos_filename_utf8_to_long_name_for_save (
4004f19c: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f1a0: d4 07 a0 54 ld [ %fp + 0x54 ], %o2
<== NOT EXECUTED
4004f1a4: d2 07 a0 50 ld [ %fp + 0x50 ], %o1
<== NOT EXECUTED
4004f1a8: 40 00 2e 11 call 4005a9ec <msdos_filename_utf8_to_long_name_for_save>
<== NOT EXECUTED
4004f1ac: d0 07 bf 4c ld [ %fp + -180 ], %o0
<== NOT EXECUTED
if (name_len_for_save > 0) {
4004f1b0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f1b4: 04 bf ff 39 ble 4004ee98 <msdos_find_name_in_fat_file+0xa8>
<== NOT EXECUTED
4004f1b8: b8 02 20 19 add %o0, 0x19, %i4
<== NOT EXECUTED
/ MSDOS_LFN_ENTRY_SIZE;
4004f1bc: 03 13 b1 3b sethi %hi(0x4ec4ec00), %g1
<== NOT EXECUTED
4004f1c0: 82 10 60 4f or %g1, 0x4f, %g1 ! 4ec4ec4f <RAM_END+0xe84ec4f>
<== NOT EXECUTED
4004f1c4: 80 57 00 01 umul %i4, %g1, %g0
<== NOT EXECUTED
4004f1c8: b9 40 00 00 rd %y, %i4
<== NOT EXECUTED
4004f1cc: b9 37 20 03 srl %i4, 3, %i4
<== NOT EXECUTED
if (empty_entry_count < lfn_entries + 1)
4004f1d0: b4 07 20 01 add %i4, 1, %i2
<== NOT EXECUTED
4004f1d4: 80 a6 80 1b cmp %i2, %i3
<== NOT EXECUTED
4004f1d8: 08 80 00 d7 bleu 4004f534 <msdos_find_name_in_fat_file+0x744>
<== NOT EXECUTED
4004f1dc: 98 07 bf 90 add %fp, -112, %o4
<== NOT EXECUTED
empty_file_offset = fat_fd->fat_file_size -
4004f1e0: e4 06 60 18 ld [ %i1 + 0x18 ], %l2
<== NOT EXECUTED
ret = fat_file_extend(&fs_info->fat,
4004f1e4: d6 04 20 08 ld [ %l0 + 8 ], %o3
<== NOT EXECUTED
4004f1e8: 96 04 80 0b add %l2, %o3, %o3
<== NOT EXECUTED
4004f1ec: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f1f0: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f1f4: 7f ff c2 af call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
4004f1f8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret != RC_OK)
4004f1fc: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004f200: 02 80 00 cc be 4004f530 <msdos_find_name_in_fat_file+0x740>
<== NOT EXECUTED
4004f204: b7 2e e0 05 sll %i3, 5, %i3
<== NOT EXECUTED
empty_entry_count
);
}
return retval;
}
4004f208: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f20c: 81 e8 00 00 restore
<== NOT EXECUTED
while ( (bytes_read = fat_file_read (&fs_info->fat, fat_fd, (dir_offset * bts2rd),
4004f210: d2 07 a0 48 ld [ %fp + 0x48 ], %o1
<== NOT EXECUTED
4004f214: b4 06 80 11 add %i2, %l1, %i2
<== NOT EXECUTED
4004f218: 96 10 00 11 mov %l1, %o3
<== NOT EXECUTED
4004f21c: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004f220: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004f224: 7f ff c1 7a call 4003f80c <fat_file_read>
<== NOT EXECUTED
4004f228: a8 05 20 01 inc %l4
<== NOT EXECUTED
&& rc == RC_OK)
4004f22c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f230: 12 bf ff 53 bne 4004ef7c <msdos_find_name_in_fat_file+0x18c>
<== NOT EXECUTED
4004f234: 80 a2 20 1f cmp %o0, 0x1f
<== NOT EXECUTED
4004f238: b4 10 00 12 mov %l2, %i2
<== NOT EXECUTED
4004f23c: b0 10 20 00 clr %i0
<== NOT EXECUTED
4004f240: a4 10 00 19 mov %i1, %l2
<== NOT EXECUTED
4004f244: 10 80 00 4a b 4004f36c <msdos_find_name_in_fat_file+0x57c>
<== NOT EXECUTED
4004f248: f2 07 a0 48 ld [ %fp + 0x48 ], %i1
<== NOT EXECUTED
entry_matched = false;
4004f24c: c0 2f bf 63 clrb [ %fp + -157 ]
<== NOT EXECUTED
if ((*MSDOS_DIR_ENTRY_TYPE(entry) &
4004f250: c2 0f 00 00 ldub [ %i4 ], %g1
<== NOT EXECUTED
4004f254: 80 88 60 40 btst 0x40, %g1
<== NOT EXECUTED
4004f258: 22 bf ff 66 be,a 4004eff0 <msdos_find_name_in_fat_file+0x200>
<== NOT EXECUTED
4004f25c: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
lfn_start.cln = dir_offset;
4004f260: e8 27 bf 68 st %l4, [ %fp + -152 ]
<== NOT EXECUTED
lfn_start.ofs = dir_entry;
4004f264: fa 27 bf 6c st %i5, [ %fp + -148 ]
<== NOT EXECUTED
lfn_checksum = *MSDOS_DIR_LFN_CHECKSUM(entry);
4004f268: c2 0f 20 0d ldub [ %i4 + 0xd ], %g1
<== NOT EXECUTED
4004f26c: c2 2f bf 53 stb %g1, [ %fp + -173 ]
<== NOT EXECUTED
lfn_entry = (*MSDOS_DIR_ENTRY_TYPE(entry)
4004f270: f0 0f 00 00 ldub [ %i4 ], %i0
<== NOT EXECUTED
4004f274: b0 0e 20 3f and %i0, 0x3f, %i0
<== NOT EXECUTED
bool is_first_lfn_entry =
4004f278: 84 38 00 02 xnor %g0, %g2, %g2
<== NOT EXECUTED
size_t bytes_in_utf8 = buf_size;
4004f27c: 82 10 20 70 mov 0x70, %g1
<== NOT EXECUTED
4004f280: 80 a0 00 02 cmp %g0, %g2
<== NOT EXECUTED
4004f284: 94 60 3f ff subx %g0, -1, %o2
<== NOT EXECUTED
4004f288: c2 27 bf 64 st %g1, [ %fp + -156 ]
<== NOT EXECUTED
4004f28c: 92 07 bf 70 add %fp, -144, %o1
<== NOT EXECUTED
4004f290: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
4004f294: 7f ff fc 43 call 4004e3a0 <msdos_get_utf16_string_from_long_entry.part.2>
<== NOT EXECUTED
4004f298: b0 06 3f ff add %i0, -1, %i0
<== NOT EXECUTED
if (retval >= 0) {
4004f29c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f2a0: 06 80 00 0c bl 4004f2d0 <msdos_find_name_in_fat_file+0x4e0>
<== NOT EXECUTED
4004f2a4: 94 10 00 08 mov %o0, %o2
<== NOT EXECUTED
eno = (*converter->handler->utf16_to_utf8) (
4004f2a8: d0 07 bf 54 ld [ %fp + -172 ], %o0
<== NOT EXECUTED
4004f2ac: c2 02 00 00 ld [ %o0 ], %g1
<== NOT EXECUTED
4004f2b0: c2 00 60 0c ld [ %g1 + 0xc ], %g1
<== NOT EXECUTED
4004f2b4: 98 07 bf 64 add %fp, -156, %o4
<== NOT EXECUTED
4004f2b8: 96 07 bf 90 add %fp, -112, %o3
<== NOT EXECUTED
4004f2bc: 9f c0 40 00 call %g1
<== NOT EXECUTED
4004f2c0: 92 07 bf 70 add %fp, -144, %o1
<== NOT EXECUTED
if ( eno == 0 ) {
4004f2c4: b8 92 20 00 orcc %o0, 0, %i4
<== NOT EXECUTED
4004f2c8: 12 80 00 40 bne 4004f3c8 <msdos_find_name_in_fat_file+0x5d8>
<== NOT EXECUTED
4004f2cc: d4 07 bf 64 ld [ %fp + -156 ], %o2
<== NOT EXECUTED
if (bytes_in_entry > 0) {
4004f2d0: 80 a2 a0 00 cmp %o2, 0
<== NOT EXECUTED
4004f2d4: 22 bf ff 44 be,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f2d8: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
name_len_remaining = msdos_compare_entry_against_filename (
4004f2dc: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f2e0: d0 07 bf 54 ld [ %fp + -172 ], %o0
<== NOT EXECUTED
4004f2e4: 98 10 00 15 mov %l5, %o4
<== NOT EXECUTED
4004f2e8: 9a 07 bf 63 add %fp, -157, %o5
<== NOT EXECUTED
4004f2ec: 7f ff fb e3 call 4004e278 <msdos_compare_entry_against_filename>
<== NOT EXECUTED
4004f2f0: 92 07 bf 90 add %fp, -112, %o1
<== NOT EXECUTED
if (name_len_remaining < 0 || !entry_matched) {
4004f2f4: aa 92 20 00 orcc %o0, 0, %l5
<== NOT EXECUTED
4004f2f8: 26 bf ff 3b bl,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f2fc: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
4004f300: c2 0f bf 63 ldub [ %fp + -157 ], %g1
<== NOT EXECUTED
4004f304: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004f308: 32 bf ff 3a bne,a 4004eff0 <msdos_find_name_in_fat_file+0x200>
<== NOT EXECUTED
4004f30c: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004f310: 10 bf ff 35 b 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f314: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
if (bytes_in_entry > 0) {
4004f318: 80 a2 a0 00 cmp %o2, 0
<== NOT EXECUTED
4004f31c: 22 bf ff 32 be,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f320: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
name_len_remaining = msdos_compare_entry_against_filename (
4004f324: 10 bf ff 76 b 4004f0fc <msdos_find_name_in_fat_file+0x30c>
<== NOT EXECUTED
4004f328: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f32c: b4 10 00 12 mov %l2, %i2
<== NOT EXECUTED
4004f330: a4 10 00 19 mov %i1, %l2
<== NOT EXECUTED
if (!create_node)
4004f334: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4004f338: 12 80 00 06 bne 4004f350 <msdos_find_name_in_fat_file+0x560>
<== NOT EXECUTED
4004f33c: f2 07 a0 48 ld [ %fp + 0x48 ], %i1
<== NOT EXECUTED
rc = MSDOS_NAME_NOT_FOUND_ERR;
4004f340: 31 00 00 1f sethi %hi(0x7c00), %i0
<== NOT EXECUTED
4004f344: b0 16 21 01 or %i0, 0x101, %i0 ! 7d01 <_Configuration_Interrupt_stack_size+0x6d01>
<== NOT EXECUTED
4004f348: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f34c: 81 e8 00 00 restore
<== NOT EXECUTED
if ( !empty_space_found
4004f350: 80 8c e0 ff btst 0xff, %l3
<== NOT EXECUTED
4004f354: 12 80 00 06 bne 4004f36c <msdos_find_name_in_fat_file+0x57c>
<== NOT EXECUTED
4004f358: b0 10 20 00 clr %i0
<== NOT EXECUTED
*empty_entry_count +=
4004f35c: c2 07 bf 44 ld [ %fp + -188 ], %g1
<== NOT EXECUTED
4004f360: b6 00 40 1b add %g1, %i3, %i3
<== NOT EXECUTED
entries_per_block - (dir_entry / MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f364: bb 37 60 05 srl %i5, 5, %i5
<== NOT EXECUTED
*empty_entry_count +=
4004f368: b6 26 c0 1d sub %i3, %i5, %i3
<== NOT EXECUTED
if (!create_node)
4004f36c: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4004f370: 02 bf ff f4 be 4004f340 <msdos_find_name_in_fat_file+0x550>
<== NOT EXECUTED
4004f374: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
if ( retval == RC_OK
4004f378: 10 bf ff 82 b 4004f180 <msdos_find_name_in_fat_file+0x390>
<== NOT EXECUTED
4004f37c: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
cs = 0;
4004f380: 10 80 00 03 b 4004f38c <msdos_find_name_in_fat_file+0x59c>
<== NOT EXECUTED
4004f384: 84 10 20 00 clr %g2
<== NOT EXECUTED
4004f388: c2 0f 00 04 ldub [ %i4 + %g4 ], %g1
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f38c: 84 08 a0 ff and %g2, 0xff, %g2
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f390: 88 01 20 01 inc %g4
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f394: 87 28 a0 07 sll %g2, 7, %g3
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f398: 80 a1 20 0b cmp %g4, 0xb
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f39c: 85 30 a0 01 srl %g2, 1, %g2
<== NOT EXECUTED
4004f3a0: 84 00 c0 02 add %g3, %g2, %g2
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f3a4: 12 bf ff f9 bne 4004f388 <msdos_find_name_in_fat_file+0x598>
<== NOT EXECUTED
4004f3a8: 84 00 80 01 add %g2, %g1, %g2
<== NOT EXECUTED
name_len_remaining > 0 ||
4004f3ac: c2 0f bf 53 ldub [ %fp + -173 ], %g1
<== NOT EXECUTED
4004f3b0: 84 08 a0 ff and %g2, 0xff, %g2
<== NOT EXECUTED
4004f3b4: 80 a0 80 01 cmp %g2, %g1
<== NOT EXECUTED
4004f3b8: 32 bf ff 0b bne,a 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f3bc: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
rc = msdos_on_entry_found (
4004f3c0: 10 bf ff 5b b 4004f12c <msdos_find_name_in_fat_file+0x33c>
<== NOT EXECUTED
4004f3c4: fa 23 a0 60 st %i5, [ %sp + 0x60 ]
<== NOT EXECUTED
errno = eno;
4004f3c8: 40 00 35 53 call 4005c914 <__errno>
<== NOT EXECUTED
4004f3cc: 01 00 00 00 nop
<== NOT EXECUTED
4004f3d0: f8 22 00 00 st %i4, [ %o0 ]
<== NOT EXECUTED
name_len_remaining = msdos_compare_entry_against_filename (
4004f3d4: 98 10 00 15 mov %l5, %o4
<== NOT EXECUTED
4004f3d8: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f3dc: d0 07 bf 54 ld [ %fp + -172 ], %o0
<== NOT EXECUTED
bytes_in_entry = msdos_long_entry_to_utf8_name (
4004f3e0: 94 10 3f ff mov -1, %o2
<== NOT EXECUTED
name_len_remaining = msdos_compare_entry_against_filename (
4004f3e4: 9a 07 bf 63 add %fp, -157, %o5
<== NOT EXECUTED
4004f3e8: 7f ff fb a4 call 4004e278 <msdos_compare_entry_against_filename>
<== NOT EXECUTED
4004f3ec: 92 07 bf 90 add %fp, -112, %o1
<== NOT EXECUTED
if (name_len_remaining < 0 || !entry_matched) {
4004f3f0: aa 92 20 00 orcc %o0, 0, %l5
<== NOT EXECUTED
4004f3f4: 36 bf ff c4 bge,a 4004f304 <msdos_find_name_in_fat_file+0x514>
<== NOT EXECUTED
4004f3f8: c2 0f bf 63 ldub [ %fp + -157 ], %g1
<== NOT EXECUTED
lfn_start->cln = FAT_FILE_SHORT_NAME;
4004f3fc: 10 bf fe fa b 4004efe4 <msdos_find_name_in_fat_file+0x1f4>
<== NOT EXECUTED
4004f400: ee 27 bf 68 st %l7, [ %fp + -152 ]
<== NOT EXECUTED
name_len_for_compare = msdos_filename_utf8_to_long_name_for_compare (
4004f404: d2 07 a0 50 ld [ %fp + 0x50 ], %o1
<== NOT EXECUTED
4004f408: 98 10 00 18 mov %i0, %o4
<== NOT EXECUTED
4004f40c: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004f410: 40 00 2c fb call 4005a7fc <msdos_filename_utf8_to_long_name_for_compare>
<== NOT EXECUTED
4004f414: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (0 >= name_len_for_compare) {
4004f418: ac 92 20 00 orcc %o0, 0, %l6
<== NOT EXECUTED
4004f41c: 04 bf fe 9f ble 4004ee98 <msdos_find_name_in_fat_file+0xa8>
<== NOT EXECUTED
4004f420: 86 07 60 19 add %i5, 0x19, %g3
<== NOT EXECUTED
/ MSDOS_LFN_ENTRY_SIZE;
4004f424: 03 13 b1 3b sethi %hi(0x4ec4ec00), %g1
<== NOT EXECUTED
4004f428: 82 10 60 4f or %g1, 0x4f, %g1 ! 4ec4ec4f <RAM_END+0xe84ec4f>
<== NOT EXECUTED
4004f42c: 80 50 c0 01 umul %g3, %g1, %g0
<== NOT EXECUTED
4004f430: 87 40 00 00 rd %y, %g3
<== NOT EXECUTED
4004f434: 10 bf fe b4 b 4004ef04 <msdos_find_name_in_fat_file+0x114>
<== NOT EXECUTED
4004f438: 87 30 e0 03 srl %g3, 3, %g3
<== NOT EXECUTED
name_len_for_save = msdos_filename_utf8_to_short_name_for_save (
4004f43c: d6 07 bf 58 ld [ %fp + -168 ], %o3
<== NOT EXECUTED
4004f440: d4 07 a0 54 ld [ %fp + 0x54 ], %o2
<== NOT EXECUTED
4004f444: d2 07 a0 50 ld [ %fp + 0x50 ], %o1
<== NOT EXECUTED
4004f448: d0 07 bf 4c ld [ %fp + -180 ], %o0
<== NOT EXECUTED
4004f44c: 40 00 2e 17 call 4005aca8 <msdos_filename_utf8_to_short_name_for_save>
<== NOT EXECUTED
4004f450: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
if (name_len_for_save > 0 ) {
4004f454: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f458: 04 bf fe 90 ble 4004ee98 <msdos_find_name_in_fat_file+0xa8>
<== NOT EXECUTED
4004f45c: 80 a6 e0 00 cmp %i3, 0
<== NOT EXECUTED
if (empty_entry_count < lfn_entries + 1)
4004f460: 12 80 00 0c bne 4004f490 <msdos_find_name_in_fat_file+0x6a0>
<== NOT EXECUTED
4004f464: 98 07 bf 90 add %fp, -112, %o4
<== NOT EXECUTED
empty_file_offset = fat_fd->fat_file_size -
4004f468: e4 06 60 18 ld [ %i1 + 0x18 ], %l2
<== NOT EXECUTED
ret = fat_file_extend(&fs_info->fat,
4004f46c: d6 04 20 08 ld [ %l0 + 8 ], %o3
<== NOT EXECUTED
4004f470: 96 04 80 0b add %l2, %o3, %o3
<== NOT EXECUTED
4004f474: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f478: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f47c: 7f ff c2 0d call 4003fcb0 <fat_file_extend>
<== NOT EXECUTED
4004f480: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret != RC_OK)
4004f484: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004f488: 12 80 00 28 bne 4004f528 <msdos_find_name_in_fat_file+0x738>
<== NOT EXECUTED
4004f48c: 01 00 00 00 nop
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004f490: c6 07 a0 5c ld [ %fp + 0x5c ], %g3
<== NOT EXECUTED
4004f494: 84 10 3f ff mov -1, %g2
<== NOT EXECUTED
pos->ofs = file_offset & (bts2rd - 1);
4004f498: 82 04 7f ff add %l1, -1, %g1
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004f49c: c4 20 e0 08 st %g2, [ %g3 + 8 ]
<== NOT EXECUTED
pos->ofs = file_offset & (bts2rd - 1);
4004f4a0: 82 08 40 12 and %g1, %l2, %g1
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004f4a4: c4 20 e0 0c st %g2, [ %g3 + 0xc ]
<== NOT EXECUTED
return fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM,
4004f4a8: 98 10 00 03 mov %g3, %o4
<== NOT EXECUTED
pos->ofs = file_offset & (bts2rd - 1);
4004f4ac: c2 20 e0 04 st %g1, [ %g3 + 4 ]
<== NOT EXECUTED
return fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM,
4004f4b0: 96 10 00 12 mov %l2, %o3
<== NOT EXECUTED
4004f4b4: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f4b8: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f4bc: 7f ff c1 c8 call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4004f4c0: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004f4c4: f4 04 20 bc ld [ %l0 + 0xbc ], %i2
<== NOT EXECUTED
4004f4c8: a2 10 20 20 mov 0x20, %l1
<== NOT EXECUTED
4004f4cc: b6 10 20 20 mov 0x20, %i3
<== NOT EXECUTED
memcpy(entry, name_dir_entry, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f4d0: d2 07 a0 60 ld [ %fp + 0x60 ], %o1
<== NOT EXECUTED
4004f4d4: 94 10 20 20 mov 0x20, %o2
<== NOT EXECUTED
4004f4d8: 40 00 46 be call 40060fd0 <memcpy>
<== NOT EXECUTED
4004f4dc: 90 10 00 1a mov %i2, %o0
<== NOT EXECUTED
bytes_written = fat_file_write(&fs_info->fat, fat_fd,
4004f4e0: d8 04 20 bc ld [ %l0 + 0xbc ], %o4
<== NOT EXECUTED
4004f4e4: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004f4e8: 94 10 00 12 mov %l2, %o2
<== NOT EXECUTED
4004f4ec: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f4f0: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004f4f4: 7f ff c2 8b call 4003ff20 <fat_file_write>
<== NOT EXECUTED
4004f4f8: b0 10 20 00 clr %i0
<== NOT EXECUTED
if (bytes_written == (ssize_t) length)
4004f4fc: 80 a2 00 11 cmp %o0, %l1
<== NOT EXECUTED
4004f500: 02 bf fe 6c be 4004eeb0 <msdos_find_name_in_fat_file+0xc0>
<== NOT EXECUTED
4004f504: 80 a2 3f ff cmp %o0, -1
<== NOT EXECUTED
else if (bytes_written == -1)
4004f508: 02 bf fe 64 be 4004ee98 <msdos_find_name_in_fat_file+0xa8>
<== NOT EXECUTED
4004f50c: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EIO);
4004f510: 40 00 35 01 call 4005c914 <__errno>
<== NOT EXECUTED
4004f514: b0 10 3f ff mov -1, %i0 ! ffffffff <RAM_END+0xbfbfffff>
<== NOT EXECUTED
4004f518: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4004f51c: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4004f520: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f524: 81 e8 00 00 restore
<== NOT EXECUTED
4004f528: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f52c: 81 e8 00 00 restore
<== NOT EXECUTED
empty_file_offset = fat_fd->fat_file_size -
4004f530: a4 24 80 1b sub %l2, %i3, %l2
<== NOT EXECUTED
if ((*c == ' ') || (*c == '.'))
4004f534: c2 07 a0 60 ld [ %fp + 0x60 ], %g1
<== NOT EXECUTED
4004f538: c2 48 40 00 ldsb [ %g1 ], %g1
<== NOT EXECUTED
slot = (empty_file_offset /
4004f53c: 89 34 a0 05 srl %l2, 5, %g4
<== NOT EXECUTED
if ((*c == ' ') || (*c == '.'))
4004f540: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4004f544: 02 80 00 86 be 4004f75c <msdos_find_name_in_fat_file+0x96c>
<== NOT EXECUTED
4004f548: 88 01 00 1a add %g4, %i2, %g4
<== NOT EXECUTED
4004f54c: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4004f550: 02 80 00 84 be 4004f760 <msdos_find_name_in_fat_file+0x970>
<== NOT EXECUTED
4004f554: c4 07 a0 60 ld [ %fp + 0x60 ], %g2
<== NOT EXECUTED
4004f558: c2 07 a0 60 ld [ %fp + 0x60 ], %g1
<== NOT EXECUTED
4004f55c: c2 48 60 01 ldsb [ %g1 + 1 ], %g1
<== NOT EXECUTED
4004f560: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4004f564: 02 80 00 82 be 4004f76c <msdos_find_name_in_fat_file+0x97c>
<== NOT EXECUTED
4004f568: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4004f56c: 02 80 00 81 be 4004f770 <msdos_find_name_in_fat_file+0x980>
<== NOT EXECUTED
4004f570: c4 07 a0 60 ld [ %fp + 0x60 ], %g2
<== NOT EXECUTED
for (i = 0; i < 2; i++, c++)
4004f574: c2 07 a0 60 ld [ %fp + 0x60 ], %g1
<== NOT EXECUTED
4004f578: 86 00 60 02 add %g1, 2, %g3
<== NOT EXECUTED
4004f57c: 3b 10 02 18 sethi %hi(0x40086000), %i5
<== NOT EXECUTED
4004f580: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
4004f584: ba 17 60 78 or %i5, 0x78, %i5
<== NOT EXECUTED
*c = hex[(num >> ((3 - i) * 4)) & 0xf];
4004f588: 85 31 00 01 srl %g4, %g1, %g2
<== NOT EXECUTED
4004f58c: 84 08 a0 0f and %g2, 0xf, %g2
<== NOT EXECUTED
4004f590: c4 0f 40 02 ldub [ %i5 + %g2 ], %g2
<== NOT EXECUTED
4004f594: c4 28 c0 00 stb %g2, [ %g3 ]
<== NOT EXECUTED
4004f598: 82 00 7f fc add %g1, -4, %g1
<== NOT EXECUTED
for (i = 0; i < 4; i++, c++)
4004f59c: 80 a0 7f fc cmp %g1, -4
<== NOT EXECUTED
4004f5a0: 12 bf ff fa bne 4004f588 <msdos_find_name_in_fat_file+0x798>
<== NOT EXECUTED
4004f5a4: 86 00 e0 01 inc %g3
<== NOT EXECUTED
*c++ = '~';
4004f5a8: 82 10 20 7e mov 0x7e, %g1
<== NOT EXECUTED
4004f5ac: c4 07 a0 60 ld [ %fp + 0x60 ], %g2
<== NOT EXECUTED
4004f5b0: c2 28 a0 06 stb %g1, [ %g2 + 6 ]
<== NOT EXECUTED
*c = '1';
4004f5b4: 82 10 20 31 mov 0x31, %g1
<== NOT EXECUTED
4004f5b8: c2 28 a0 07 stb %g1, [ %g2 + 7 ]
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f5bc: 86 10 20 00 clr %g3
<== NOT EXECUTED
cs = 0;
4004f5c0: ba 10 20 00 clr %i5
<== NOT EXECUTED
4004f5c4: c2 07 a0 60 ld [ %fp + 0x60 ], %g1
<== NOT EXECUTED
4004f5c8: c4 08 40 03 ldub [ %g1 + %g3 ], %g2
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f5cc: 82 0f 60 ff and %i5, 0xff, %g1
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f5d0: 86 00 e0 01 inc %g3
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f5d4: bb 28 60 07 sll %g1, 7, %i5
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f5d8: 80 a0 e0 0b cmp %g3, 0xb
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004f5dc: 83 30 60 01 srl %g1, 1, %g1
<== NOT EXECUTED
4004f5e0: 82 00 40 02 add %g1, %g2, %g1
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004f5e4: 12 bf ff f8 bne 4004f5c4 <msdos_find_name_in_fat_file+0x7d4>
<== NOT EXECUTED
4004f5e8: ba 07 40 01 add %i5, %g1, %i5
<== NOT EXECUTED
pos->ofs = file_offset & (bts2rd - 1);
4004f5ec: c4 07 a0 5c ld [ %fp + 0x5c ], %g2
<== NOT EXECUTED
4004f5f0: a2 04 7f ff add %l1, -1, %l1
<== NOT EXECUTED
4004f5f4: 82 0c 40 12 and %l1, %l2, %g1
<== NOT EXECUTED
4004f5f8: c2 20 a0 0c st %g1, [ %g2 + 0xc ]
<== NOT EXECUTED
return fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM,
4004f5fc: 98 00 a0 08 add %g2, 8, %o4
<== NOT EXECUTED
4004f600: 96 10 00 12 mov %l2, %o3
<== NOT EXECUTED
4004f604: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f608: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f60c: 7f ff c1 74 call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4004f610: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret != RC_OK)
4004f614: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004f618: 12 bf fe 26 bne 4004eeb0 <msdos_find_name_in_fat_file+0xc0>
<== NOT EXECUTED
4004f61c: c2 07 a0 5c ld [ %fp + 0x5c ], %g1
<== NOT EXECUTED
* MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE;
4004f620: b1 2f 20 05 sll %i4, 5, %i0
<== NOT EXECUTED
short_file_offset = empty_file_offset + lfn_entries
4004f624: 96 06 00 12 add %i0, %l2, %o3
<== NOT EXECUTED
pos->ofs = file_offset & (bts2rd - 1);
4004f628: a2 0a c0 11 and %o3, %l1, %l1
<== NOT EXECUTED
4004f62c: e2 20 60 04 st %l1, [ %g1 + 4 ]
<== NOT EXECUTED
return fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM,
4004f630: 98 10 00 01 mov %g1, %o4
<== NOT EXECUTED
4004f634: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f638: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f63c: 7f ff c1 68 call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4004f640: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4004f644: b7 2e a0 05 sll %i2, 5, %i3
<== NOT EXECUTED
for (lfn_entry = 0; lfn_entry < lfn_entries; ++lfn_entry) {
4004f648: 80 a7 20 00 cmp %i4, 0
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004f64c: f4 04 20 bc ld [ %l0 + 0xbc ], %i2
<== NOT EXECUTED
for (lfn_entry = 0; lfn_entry < lfn_entries; ++lfn_entry) {
4004f650: 02 bf ff a0 be 4004f4d0 <msdos_find_name_in_fat_file+0x6e0>
<== NOT EXECUTED
4004f654: a2 10 00 1b mov %i3, %l1
<== NOT EXECUTED
4004f658: c2 07 bf 58 ld [ %fp + -168 ], %g1
<== NOT EXECUTED
4004f65c: aa 5f 20 1a smul %i4, 0x1a, %l5
<== NOT EXECUTED
4004f660: a8 10 00 1c mov %i4, %l4
<== NOT EXECUTED
4004f664: aa 05 7f e6 add %l5, -26, %l5
<== NOT EXECUTED
4004f668: a6 10 20 00 clr %l3
<== NOT EXECUTED
4004f66c: aa 00 40 15 add %g1, %l5, %l5
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004f670: 98 10 00 1a mov %i2, %o4
<== NOT EXECUTED
memset (entry, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f674: 90 10 00 0c mov %o4, %o0
<== NOT EXECUTED
4004f678: 94 10 20 20 mov 0x20, %o2
<== NOT EXECUTED
4004f67c: 40 00 46 df call 400611f8 <memset>
<== NOT EXECUTED
4004f680: 92 10 20 00 clr %o1
<== NOT EXECUTED
*MSDOS_DIR_LFN_CHECKSUM(entry) = lfn_checksum;
4004f684: fa 2a 20 0d stb %i5, [ %o0 + 0xd ]
<== NOT EXECUTED
n = (const uint8_t *) name_converted +
4004f688: 84 10 00 15 mov %l5, %g2
<== NOT EXECUTED
if (*n != 0 || *(n + 1) != 0)
4004f68c: c8 08 80 00 ldub [ %g2 ], %g4
<== NOT EXECUTED
memset (entry, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f690: 98 10 00 08 mov %o0, %o4
<== NOT EXECUTED
4004f694: 82 02 20 01 add %o0, 1, %g1
<== NOT EXECUTED
for (i = 0; i < MSDOS_LFN_LEN_PER_ENTRY; ++i)
4004f698: 86 10 20 00 clr %g3
<== NOT EXECUTED
if (*n != 0 || *(n + 1) != 0)
4004f69c: 80 89 20 ff btst 0xff, %g4
<== NOT EXECUTED
4004f6a0: 12 80 00 15 bne 4004f6f4 <msdos_find_name_in_fat_file+0x904>
<== NOT EXECUTED
4004f6a4: 9a 10 20 00 clr %o5
<== NOT EXECUTED
4004f6a8: de 08 a0 01 ldub [ %g2 + 1 ], %o7
<== NOT EXECUTED
4004f6ac: 80 a3 e0 00 cmp %o7, 0
<== NOT EXECUTED
4004f6b0: 32 80 00 12 bne,a 4004f6f8 <msdos_find_name_in_fat_file+0x908>
<== NOT EXECUTED
4004f6b4: c8 28 40 00 stb %g4, [ %g1 ]
<== NOT EXECUTED
p [0] = fill;
4004f6b8: da 28 40 00 stb %o5, [ %g1 ]
<== NOT EXECUTED
4004f6bc: 88 00 e0 01 add %g3, 1, %g4
<== NOT EXECUTED
p [1] = fill;
4004f6c0: da 28 60 01 stb %o5, [ %g1 + 1 ]
<== NOT EXECUTED
switch (i)
4004f6c4: 80 a0 e0 04 cmp %g3, 4
<== NOT EXECUTED
4004f6c8: 02 80 00 12 be 4004f710 <msdos_find_name_in_fat_file+0x920>
<== NOT EXECUTED
4004f6cc: 9a 10 3f ff mov -1, %o5
<== NOT EXECUTED
4004f6d0: 80 a0 e0 0a cmp %g3, 0xa
<== NOT EXECUTED
4004f6d4: 12 80 00 12 bne 4004f71c <msdos_find_name_in_fat_file+0x92c>
<== NOT EXECUTED
4004f6d8: 80 a1 20 0d cmp %g4, 0xd
<== NOT EXECUTED
p += 4;
4004f6dc: 82 00 60 04 add %g1, 4, %g1
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004f6e0: 86 10 00 04 mov %g4, %g3
<== NOT EXECUTED
if (*n != 0 || *(n + 1) != 0)
4004f6e4: c8 08 80 00 ldub [ %g2 ], %g4
<== NOT EXECUTED
4004f6e8: 80 89 20 ff btst 0xff, %g4
<== NOT EXECUTED
4004f6ec: 22 bf ff f0 be,a 4004f6ac <msdos_find_name_in_fat_file+0x8bc>
<== NOT EXECUTED
4004f6f0: de 08 a0 01 ldub [ %g2 + 1 ], %o7
<== NOT EXECUTED
*p = *n;
4004f6f4: c8 28 40 00 stb %g4, [ %g1 ]
<== NOT EXECUTED
n += MSDOS_NAME_LFN_BYTES_PER_CHAR;
4004f6f8: 84 00 a0 02 add %g2, 2, %g2
<== NOT EXECUTED
*(p + 1) = *(n + 1);
4004f6fc: c8 08 bf ff ldub [ %g2 + -1 ], %g4
<== NOT EXECUTED
4004f700: c8 28 60 01 stb %g4, [ %g1 + 1 ]
<== NOT EXECUTED
switch (i)
4004f704: 80 a0 e0 04 cmp %g3, 4
<== NOT EXECUTED
4004f708: 12 bf ff f2 bne 4004f6d0 <msdos_find_name_in_fat_file+0x8e0>
<== NOT EXECUTED
4004f70c: 88 00 e0 01 add %g3, 1, %g4
<== NOT EXECUTED
p += 5;
4004f710: 82 00 60 05 add %g1, 5, %g1
<== NOT EXECUTED
entry = fs_info->cl_buf;
4004f714: 10 bf ff f4 b 4004f6e4 <msdos_find_name_in_fat_file+0x8f4>
<== NOT EXECUTED
4004f718: 86 10 00 04 mov %g4, %g3
<== NOT EXECUTED
for (i = 0; i < MSDOS_LFN_LEN_PER_ENTRY; ++i)
4004f71c: 12 bf ff f1 bne 4004f6e0 <msdos_find_name_in_fat_file+0x8f0>
<== NOT EXECUTED
4004f720: 82 00 60 02 add %g1, 2, %g1
<== NOT EXECUTED
if (lfn_entry == 0)
4004f724: 80 a4 e0 00 cmp %l3, 0
<== NOT EXECUTED
4004f728: 02 80 00 15 be 4004f77c <msdos_find_name_in_fat_file+0x98c>
<== NOT EXECUTED
4004f72c: e8 2b 00 00 stb %l4, [ %o4 ]
<== NOT EXECUTED
*MSDOS_DIR_ATTR(entry) |= MSDOS_ATTR_LFN;
4004f730: c2 0b 20 0b ldub [ %o4 + 0xb ], %g1
<== NOT EXECUTED
4004f734: 82 10 60 0f or %g1, 0xf, %g1
<== NOT EXECUTED
4004f738: c2 2b 20 0b stb %g1, [ %o4 + 0xb ]
<== NOT EXECUTED
for (lfn_entry = 0; lfn_entry < lfn_entries; ++lfn_entry) {
4004f73c: a6 04 e0 01 inc %l3
<== NOT EXECUTED
4004f740: a8 05 3f ff add %l4, -1, %l4
<== NOT EXECUTED
entry += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE;
4004f744: 98 03 20 20 add %o4, 0x20, %o4
<== NOT EXECUTED
for (lfn_entry = 0; lfn_entry < lfn_entries; ++lfn_entry) {
4004f748: 80 a7 00 13 cmp %i4, %l3
<== NOT EXECUTED
4004f74c: 12 bf ff ca bne 4004f674 <msdos_find_name_in_fat_file+0x884>
<== NOT EXECUTED
4004f750: aa 05 7f e6 add %l5, -26, %l5
<== NOT EXECUTED
4004f754: 10 bf ff 5f b 4004f4d0 <msdos_find_name_in_fat_file+0x6e0>
<== NOT EXECUTED
4004f758: b4 06 80 18 add %i2, %i0, %i2
<== NOT EXECUTED
*c = '_';
4004f75c: c4 07 a0 60 ld [ %fp + 0x60 ], %g2
<== NOT EXECUTED
4004f760: 82 10 20 5f mov 0x5f, %g1
<== NOT EXECUTED
4004f764: 10 bf ff 7d b 4004f558 <msdos_find_name_in_fat_file+0x768>
<== NOT EXECUTED
4004f768: c2 28 80 00 stb %g1, [ %g2 ]
<== NOT EXECUTED
4004f76c: c4 07 a0 60 ld [ %fp + 0x60 ], %g2
<== NOT EXECUTED
4004f770: 82 10 20 5f mov 0x5f, %g1
<== NOT EXECUTED
4004f774: 10 bf ff 80 b 4004f574 <msdos_find_name_in_fat_file+0x784>
<== NOT EXECUTED
4004f778: c2 28 a0 01 stb %g1, [ %g2 + 1 ]
<== NOT EXECUTED
*MSDOS_DIR_ENTRY_TYPE(entry) |= MSDOS_LAST_LONG_ENTRY;
4004f77c: 82 15 20 40 or %l4, 0x40, %g1
<== NOT EXECUTED
4004f780: 10 bf ff ec b 4004f730 <msdos_find_name_in_fat_file+0x940>
<== NOT EXECUTED
4004f784: c2 2b 00 00 stb %g1, [ %o4 ]
<== NOT EXECUTED
eno = EINVAL;
4004f788: 10 bf fe 58 b 4004f0e8 <msdos_find_name_in_fat_file+0x2f8>
<== NOT EXECUTED
4004f78c: aa 10 20 16 mov 0x16, %l5
<== NOT EXECUTED
assert(bytes_read == bts2rd);
4004f790: 17 10 02 18 sethi %hi(0x40086000), %o3
<== NOT EXECUTED
4004f794: 15 10 02 18 sethi %hi(0x40086000), %o2
<== NOT EXECUTED
4004f798: 11 10 02 17 sethi %hi(0x40085c00), %o0
<== NOT EXECUTED
4004f79c: 96 12 e0 60 or %o3, 0x60, %o3
<== NOT EXECUTED
4004f7a0: 94 12 a0 d0 or %o2, 0xd0, %o2
<== NOT EXECUTED
4004f7a4: 92 10 25 4c mov 0x54c, %o1
<== NOT EXECUTED
4004f7a8: 7f ff c7 af call 40041664 <__assert_func>
<== NOT EXECUTED
4004f7ac: 90 12 23 c8 or %o0, 0x3c8, %o0
<== NOT EXECUTED
4004f7b0: 80 a0 00 18 cmp %g0, %i0
<== NOT EXECUTED
4004f7b4: 82 60 3f ff subx %g0, -1, %g1
<== NOT EXECUTED
4004f7b8: 10 bf fe 71 b 4004f17c <msdos_find_name_in_fat_file+0x38c>
<== NOT EXECUTED
4004f7bc: 82 0e 80 01 and %i2, %g1, %g1
<== NOT EXECUTED
assert(name_utf8_len > 0);
4004f7c0: 17 10 02 18 sethi %hi(0x40086000), %o3
<== NOT EXECUTED
4004f7c4: 15 10 02 18 sethi %hi(0x40086000), %o2
<== NOT EXECUTED
4004f7c8: 11 10 02 17 sethi %hi(0x40085c00), %o0
<== NOT EXECUTED
4004f7cc: 96 12 e0 48 or %o3, 0x48, %o3
<== NOT EXECUTED
4004f7d0: 94 12 a0 f0 or %o2, 0xf0, %o2
<== NOT EXECUTED
4004f7d4: 92 10 27 45 mov 0x745, %o1
<== NOT EXECUTED
4004f7d8: 7f ff c7 a3 call 40041664 <__assert_func>
<== NOT EXECUTED
4004f7dc: 90 12 23 c8 or %o0, 0x3c8, %o0
<== NOT EXECUTED
4004f7e0: 01 00 00 00 nop
<== NOT EXECUTED
4004f7e4 <msdos_find_node_by_cluster_num_in_fat_file>:
fat_file_fd_t *fat_fd,
uint32_t cl4find,
fat_dir_pos_t *dir_pos,
char *dir_entry
)
{
4004f7e4: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
ssize_t ret = 0;
msdos_fs_info_t *fs_info = mt_entry->fs_info;
uint32_t bts2rd = 0;
uint32_t i = 0, j = 0;
if (FAT_FD_OF_ROOT_DIR(fat_fd) &&
4004f7e8: c2 06 60 20 ld [ %i1 + 0x20 ], %g1
<== NOT EXECUTED
4004f7ec: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4004f7f0: 02 80 00 32 be 4004f8b8 <msdos_find_node_by_cluster_num_in_fat_file+0xd4>
<== NOT EXECUTED
4004f7f4: e2 06 20 08 ld [ %i0 + 8 ], %l1
<== NOT EXECUTED
(fs_info->fat.vol.type & (FAT_FAT12 | FAT_FAT16)))
bts2rd = fat_fd->fat_file_size;
else
bts2rd = fs_info->fat.vol.bpc;
4004f7f8: f0 04 60 08 ld [ %l1 + 8 ], %i0
<== NOT EXECUTED
4004f7fc: d8 04 60 bc ld [ %l1 + 0xbc ], %o4
<== NOT EXECUTED
if ( ret < MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE )
rtems_set_errno_and_return_minus_one( EIO );
assert(ret == bts2rd);
for (i = 0; i < bts2rd; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004f800: a4 10 20 00 clr %l2
<== NOT EXECUTED
while ((ret = fat_file_read(&fs_info->fat, fat_fd, j * bts2rd, bts2rd,
4004f804: 96 10 00 18 mov %i0, %o3
<== NOT EXECUTED
4004f808: 94 10 00 12 mov %l2, %o2
<== NOT EXECUTED
4004f80c: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f810: 7f ff bf ff call 4003f80c <fat_file_read>
<== NOT EXECUTED
4004f814: 90 10 00 11 mov %l1, %o0
<== NOT EXECUTED
4004f818: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004f81c: 02 80 00 23 be 4004f8a8 <msdos_find_node_by_cluster_num_in_fat_file+0xc4>
<== NOT EXECUTED
4004f820: 80 a2 20 1f cmp %o0, 0x1f
<== NOT EXECUTED
if ( ret < MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE )
4004f824: 04 80 00 40 ble 4004f924 <msdos_find_node_by_cluster_num_in_fat_file+0x140>
<== NOT EXECUTED
4004f828: 80 a2 00 18 cmp %o0, %i0
<== NOT EXECUTED
assert(ret == bts2rd);
4004f82c: 12 80 00 44 bne 4004f93c <msdos_find_node_by_cluster_num_in_fat_file+0x158>
<== NOT EXECUTED
4004f830: a0 10 20 00 clr %l0
<== NOT EXECUTED
{
char* entry = (char*) fs_info->cl_buf + i;
4004f834: d8 04 60 bc ld [ %l1 + 0xbc ], %o4
<== NOT EXECUTED
4004f838: ba 10 00 0c mov %o4, %i5
<== NOT EXECUTED
/* if this and all rest entries are empty - return not-found */
if ((*MSDOS_DIR_ENTRY_TYPE(entry)) ==
4004f83c: c2 0f 40 00 ldub [ %i5 ], %g1
<== NOT EXECUTED
4004f840: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004f844: 02 80 00 19 be 4004f8a8 <msdos_find_node_by_cluster_num_in_fat_file+0xc4>
<== NOT EXECUTED
4004f848: 80 a0 60 e5 cmp %g1, 0xe5
<== NOT EXECUTED
MSDOS_THIS_DIR_ENTRY_AND_REST_EMPTY)
return MSDOS_NAME_NOT_FOUND_ERR;
/* if this entry is empty - skip it */
if ((*MSDOS_DIR_ENTRY_TYPE(entry)) ==
4004f84c: 22 80 00 12 be,a 4004f894 <msdos_find_node_by_cluster_num_in_fat_file+0xb0>
<== NOT EXECUTED
4004f850: a0 04 20 20 add %l0, 0x20, %l0
<== NOT EXECUTED
MSDOS_THIS_DIR_ENTRY_EMPTY)
continue;
/* if get a non-empty entry - compare clusters num */
if (MSDOS_EXTRACT_CLUSTER_NUM(entry) == cl4find)
4004f854: c2 17 60 1a lduh [ %i5 + 0x1a ], %g1
<== NOT EXECUTED
4004f858: c6 17 60 14 lduh [ %i5 + 0x14 ], %g3
<== NOT EXECUTED
4004f85c: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004f860: 89 30 60 08 srl %g1, 8, %g4
<== NOT EXECUTED
4004f864: 83 28 e0 08 sll %g3, 8, %g1
<== NOT EXECUTED
4004f868: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
4004f86c: 87 30 e0 08 srl %g3, 8, %g3
<== NOT EXECUTED
4004f870: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
4004f874: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
4004f878: 85 30 a0 10 srl %g2, 0x10, %g2
<== NOT EXECUTED
4004f87c: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
4004f880: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
4004f884: 80 a0 40 1a cmp %g1, %i2
<== NOT EXECUTED
4004f888: 22 80 00 16 be,a 4004f8e0 <msdos_find_node_by_cluster_num_in_fat_file+0xfc>
<== NOT EXECUTED
4004f88c: 98 10 00 1b mov %i3, %o4
<== NOT EXECUTED
for (i = 0; i < bts2rd; i += MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE)
4004f890: a0 04 20 20 add %l0, 0x20, %l0
<== NOT EXECUTED
4004f894: 80 a4 00 18 cmp %l0, %i0
<== NOT EXECUTED
4004f898: 0a bf ff e9 bcs 4004f83c <msdos_find_node_by_cluster_num_in_fat_file+0x58>
<== NOT EXECUTED
4004f89c: ba 07 60 20 add %i5, 0x20, %i5
<== NOT EXECUTED
4004f8a0: 10 bf ff d9 b 4004f804 <msdos_find_node_by_cluster_num_in_fat_file+0x20>
<== NOT EXECUTED
4004f8a4: a4 04 80 08 add %l2, %o0, %l2
<== NOT EXECUTED
return MSDOS_NAME_NOT_FOUND_ERR;
4004f8a8: 31 00 00 1f sethi %hi(0x7c00), %i0
<== NOT EXECUTED
4004f8ac: b0 16 21 01 or %i0, 0x101, %i0 ! 7d01 <_Configuration_Interrupt_stack_size+0x6d01>
<== NOT EXECUTED
}
}
j++;
}
return MSDOS_NAME_NOT_FOUND_ERR;
}
4004f8b0: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f8b4: 81 e8 00 00 restore
<== NOT EXECUTED
if (FAT_FD_OF_ROOT_DIR(fat_fd) &&
4004f8b8: c2 06 60 24 ld [ %i1 + 0x24 ], %g1
<== NOT EXECUTED
4004f8bc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004f8c0: 32 bf ff cf bne,a 4004f7fc <msdos_find_node_by_cluster_num_in_fat_file+0x18>
<== NOT EXECUTED
4004f8c4: f0 04 60 08 ld [ %l1 + 8 ], %i0
<== NOT EXECUTED
4004f8c8: c2 0c 60 16 ldub [ %l1 + 0x16 ], %g1
<== NOT EXECUTED
4004f8cc: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4004f8d0: 22 bf ff cb be,a 4004f7fc <msdos_find_node_by_cluster_num_in_fat_file+0x18>
<== NOT EXECUTED
4004f8d4: f0 04 60 08 ld [ %l1 + 8 ], %i0
<== NOT EXECUTED
bts2rd = fat_fd->fat_file_size;
4004f8d8: 10 bf ff c9 b 4004f7fc <msdos_find_node_by_cluster_num_in_fat_file+0x18>
<== NOT EXECUTED
4004f8dc: f0 06 60 18 ld [ %i1 + 0x18 ], %i0
<== NOT EXECUTED
rc = fat_file_ioctl(&fs_info->fat, fat_fd, F_CLU_NUM, j * bts2rd,
4004f8e0: 96 10 00 12 mov %l2, %o3
<== NOT EXECUTED
4004f8e4: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f8e8: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004f8ec: 7f ff c0 bc call 4003fbdc <fat_file_ioctl>
<== NOT EXECUTED
4004f8f0: 90 10 00 11 mov %l1, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004f8f4: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004f8f8: 12 bf ff ee bne 4004f8b0 <msdos_find_node_by_cluster_num_in_fat_file+0xcc>
<== NOT EXECUTED
4004f8fc: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
dir_pos->sname.ofs = i;
4004f900: e0 26 e0 04 st %l0, [ %i3 + 4 ]
<== NOT EXECUTED
memcpy(dir_entry, entry,
4004f904: 94 10 20 20 mov 0x20, %o2
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004f908: c2 26 e0 08 st %g1, [ %i3 + 8 ]
<== NOT EXECUTED
memcpy(dir_entry, entry,
4004f90c: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004f910: c2 26 e0 0c st %g1, [ %i3 + 0xc ]
<== NOT EXECUTED
memcpy(dir_entry, entry,
4004f914: 40 00 45 af call 40060fd0 <memcpy>
<== NOT EXECUTED
4004f918: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
return RC_OK;
4004f91c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f920: 81 e8 00 00 restore
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one( EIO );
4004f924: 40 00 33 fc call 4005c914 <__errno>
<== NOT EXECUTED
4004f928: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
4004f92c: 82 10 20 05 mov 5, %g1
<== NOT EXECUTED
4004f930: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4004f934: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f938: 81 e8 00 00 restore
<== NOT EXECUTED
assert(ret == bts2rd);
4004f93c: 17 10 02 18 sethi %hi(0x40086000), %o3
<== NOT EXECUTED
4004f940: 15 10 02 18 sethi %hi(0x40086000), %o2
<== NOT EXECUTED
4004f944: 11 10 02 17 sethi %hi(0x40085c00), %o0
<== NOT EXECUTED
4004f948: 96 12 e0 90 or %o3, 0x90, %o3
<== NOT EXECUTED
4004f94c: 94 12 a0 a0 or %o2, 0xa0, %o2
<== NOT EXECUTED
4004f950: 92 10 27 f0 mov 0x7f0, %o1
<== NOT EXECUTED
4004f954: 7f ff c7 44 call 40041664 <__assert_func>
<== NOT EXECUTED
4004f958: 90 12 23 c8 or %o0, 0x3c8, %o0
<== NOT EXECUTED
4004f95c: 01 00 00 00 nop
<== NOT EXECUTED
400373d8 <msdos_format>:
)
/*-------------------------------------------------------------------------*\
| Return Value: |
| 0, if success, -1 and errno if failed |
\*=========================================================================*/
{
400373d8: 9d e3 bc d0 save %sp, -816, %sp
<== NOT EXECUTED
msdos_format_param_t fmt_params;
/*
* open device for writing
*/
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL, "open device\n");
400373dc: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400373e0: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
400373e4: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
400373e8: 7f ff ff 3d call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400373ec: 94 12 a0 18 or %o2, 0x18, %o2 ! 40081c18 <__func__.8659+0x4d8>
<== NOT EXECUTED
fd = open(devname, O_RDWR);
400373f0: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400373f4: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
400373f8: 7f ff 53 c9 call 4000c31c <open>
<== NOT EXECUTED
400373fc: ba 10 00 18 mov %i0, %i5
<== NOT EXECUTED
if (fd == -1) {
40037400: 80 a2 3f ff cmp %o0, -1
<== NOT EXECUTED
40037404: 02 80 01 09 be 40037828 <msdos_format+0x450>
<== NOT EXECUTED
40037408: a0 10 00 08 mov %o0, %l0
<== NOT EXECUTED
}
/*
* sanity check on device
*/
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
4003740c: 96 10 00 18 mov %i0, %o3
<== NOT EXECUTED
40037410: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
40037414: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
40037418: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
4003741c: 7f ff ff 30 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40037420: 94 12 a0 28 or %o2, 0x28, %o2 ! 40081c28 <__func__.8659+0x4e8>
<== NOT EXECUTED
"stat check: %s\n", devname);
if (ret_val == 0) {
ret_val = fstat(fd, &stat_buf);
40037424: 92 07 bd a0 add %fp, -608, %o1
<== NOT EXECUTED
40037428: 7f ff 50 ac call 4000b6d8 <fstat>
<== NOT EXECUTED
4003742c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
}
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_INFO,
40037430: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
ret_val = fstat(fd, &stat_buf);
40037434: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_INFO,
40037438: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
4003743c: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
40037440: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
40037444: 7f ff ff 26 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40037448: 94 12 a0 38 or %o2, 0x38, %o2
<== NOT EXECUTED
"formating: %s\n", devname);
/* rtems feature: no block devices, all are character devices */
if ((ret_val == 0) && (!S_ISBLK(stat_buf.st_mode))) {
4003744c: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
40037450: 12 80 00 ea bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037454: 05 00 00 3c sethi %hi(0xf000), %g2
<== NOT EXECUTED
40037458: c2 07 bd ac ld [ %fp + -596 ], %g1
<== NOT EXECUTED
4003745c: 82 08 40 02 and %g1, %g2, %g1
<== NOT EXECUTED
40037460: 05 00 00 18 sethi %hi(0x6000), %g2
<== NOT EXECUTED
40037464: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40037468: 12 80 00 e8 bne 40037808 <msdos_format+0x430>
<== NOT EXECUTED
4003746c: 92 10 20 00 clr %o1
<== NOT EXECUTED
memset(fmt_params,0,sizeof(*fmt_params));
40037470: 94 10 20 54 mov 0x54, %o2
<== NOT EXECUTED
40037474: 40 00 a7 61 call 400611f8 <memset>
<== NOT EXECUTED
40037478: 90 07 bd 4c add %fp, -692, %o0
<== NOT EXECUTED
return ioctl(fd, RTEMS_BLKIO_GETMEDIABLKSIZE, media_block_size);
4003747c: 94 07 bd 4c add %fp, -692, %o2
<== NOT EXECUTED
40037480: 3b 10 01 10 sethi %hi(0x40044000), %i5
<== NOT EXECUTED
40037484: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
40037488: 7f ff 50 fb call 4000b874 <ioctl>
<== NOT EXECUTED
4003748c: 92 17 62 02 or %i5, 0x202, %o1
<== NOT EXECUTED
40037490: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
if (ret_val == 0) {
40037494: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40037498: 02 80 00 f3 be 40037864 <msdos_format+0x48c>
<== NOT EXECUTED
4003749c: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
if ( fmt_params->totl_sector_cnt == 0 )
400374a0: 80 a3 20 00 cmp %o4, 0
<== NOT EXECUTED
400374a4: 02 80 01 d4 be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
400374a8: fa 07 bd 54 ld [ %fp + -684 ], %i5
<== NOT EXECUTED
400374ac: c2 0f bd 7c ldub [ %fp + -644 ], %g1
<== NOT EXECUTED
400374b0: c6 07 bd 5c ld [ %fp + -676 ], %g3
<== NOT EXECUTED
400374b4: 82 58 40 03 smul %g1, %g3, %g1
<== NOT EXECUTED
400374b8: 82 00 40 1d add %g1, %i5, %g1
<== NOT EXECUTED
fmt_params->root_dir_start_sec =
400374bc: c2 27 bd 6c st %g1, [ %fp + -660 ]
<== NOT EXECUTED
if (fmt_params->root_dir_sectors > 0) {
400374c0: c4 07 bd 68 ld [ %fp + -664 ], %g2
<== NOT EXECUTED
400374c4: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
400374c8: 02 80 01 da be 40037c30 <msdos_format+0x858>
<== NOT EXECUTED
400374cc: c2 07 bd 58 ld [ %fp + -680 ], %g1
<== NOT EXECUTED
fmt_params->root_dir_fmt_sec_cnt = fmt_params->root_dir_sectors;
400374d0: c4 27 bd 70 st %g2, [ %fp + -656 ]
<== NOT EXECUTED
if (ret_val == 0) {
400374d4: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
400374d8: 12 80 00 c8 bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
400374dc: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
if ((rqdata != NULL) && (rqdata->OEMName != NULL)) {
400374e0: 02 80 02 aa be 40037f88 <msdos_format+0xbb0>
<== NOT EXECUTED
400374e4: 39 10 01 ff sethi %hi(0x4007fc00), %i4
<== NOT EXECUTED
400374e8: f8 06 40 00 ld [ %i1 ], %i4
<== NOT EXECUTED
400374ec: 80 a7 20 00 cmp %i4, 0
<== NOT EXECUTED
400374f0: 22 80 02 a6 be,a 40037f88 <msdos_format+0xbb0>
<== NOT EXECUTED
400374f4: 39 10 01 ff sethi %hi(0x4007fc00), %i4
<== NOT EXECUTED
400374f8: b6 07 bd 87 add %fp, -633, %i3
<== NOT EXECUTED
from = "RTEMS"; /* default: make "from" point to OS Name */
400374fc: ba 07 bd 7f add %fp, -641, %i5
<== NOT EXECUTED
*to++=' ';
40037500: 10 80 00 06 b 40037518 <msdos_format+0x140>
<== NOT EXECUTED
40037504: b4 10 20 20 mov 0x20, %i2
<== NOT EXECUTED
*to++ = *from++;
40037508: b8 07 20 01 inc %i4
<== NOT EXECUTED
for (cnt = 0; cnt < (sizeof(fmt_params->OEMName)-1); cnt++) {
4003750c: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
40037510: 02 80 00 0e be 40037548 <msdos_format+0x170>
<== NOT EXECUTED
40037514: c0 2f 40 00 clrb [ %i5 ]
<== NOT EXECUTED
if (isprint((unsigned char)*from)) {
40037518: 40 00 a5 37 call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4003751c: ba 07 60 01 inc %i5
<== NOT EXECUTED
40037520: c2 0f 00 00 ldub [ %i4 ], %g1
<== NOT EXECUTED
40037524: 90 02 00 01 add %o0, %g1, %o0
<== NOT EXECUTED
40037528: c4 4a 20 01 ldsb [ %o0 + 1 ], %g2
<== NOT EXECUTED
4003752c: 80 88 a0 97 btst 0x97, %g2
<== NOT EXECUTED
40037530: 32 bf ff f6 bne,a 40037508 <msdos_format+0x130>
<== NOT EXECUTED
40037534: c2 2f 7f ff stb %g1, [ %i5 + -1 ]
<== NOT EXECUTED
*to++=' ';
40037538: f4 2f 7f ff stb %i2, [ %i5 + -1 ]
<== NOT EXECUTED
for (cnt = 0; cnt < (sizeof(fmt_params->OEMName)-1); cnt++) {
4003753c: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
40037540: 12 bf ff f6 bne 40037518 <msdos_format+0x140>
<== NOT EXECUTED
40037544: c0 2f 40 00 clrb [ %i5 ]
<== NOT EXECUTED
if ((rqdata != NULL) &&
40037548: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
4003754c: 02 80 02 8d be 40037f80 <msdos_format+0xba8>
<== NOT EXECUTED
40037550: 39 10 01 fa sethi %hi(0x4007e800), %i4
<== NOT EXECUTED
(rqdata->VolLabel != NULL)) {
40037554: f8 06 60 04 ld [ %i1 + 4 ], %i4
<== NOT EXECUTED
if ((rqdata != NULL) &&
40037558: 80 a7 20 00 cmp %i4, 0
<== NOT EXECUTED
4003755c: 02 80 02 88 be 40037f7c <msdos_format+0xba4>
<== NOT EXECUTED
40037560: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
fmt_params->VolLabel_present = true;
40037564: c2 2f bd 94 stb %g1, [ %fp + -620 ]
<== NOT EXECUTED
40037568: b6 07 bd 93 add %fp, -621, %i3
<== NOT EXECUTED
from = ""; /* default: make "from" point to empty string */
4003756c: ba 07 bd 88 add %fp, -632, %i5
<== NOT EXECUTED
*to++=' ';
40037570: 10 80 00 06 b 40037588 <msdos_format+0x1b0>
<== NOT EXECUTED
40037574: b4 10 20 20 mov 0x20, %i2
<== NOT EXECUTED
*to++ = *from++;
40037578: b8 07 20 01 inc %i4
<== NOT EXECUTED
for (cnt = 0; cnt < (sizeof(fmt_params->VolLabel)-1); cnt++) {
4003757c: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
40037580: 02 80 00 0e be 400375b8 <msdos_format+0x1e0>
<== NOT EXECUTED
40037584: c0 2f 40 00 clrb [ %i5 ]
<== NOT EXECUTED
if (isprint((unsigned char)*from)) {
40037588: 40 00 a5 1b call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4003758c: ba 07 60 01 inc %i5
<== NOT EXECUTED
40037590: c2 0f 00 00 ldub [ %i4 ], %g1
<== NOT EXECUTED
40037594: 90 02 00 01 add %o0, %g1, %o0
<== NOT EXECUTED
40037598: c4 4a 20 01 ldsb [ %o0 + 1 ], %g2
<== NOT EXECUTED
4003759c: 80 88 a0 97 btst 0x97, %g2
<== NOT EXECUTED
400375a0: 32 bf ff f6 bne,a 40037578 <msdos_format+0x1a0>
<== NOT EXECUTED
400375a4: c2 2f 7f ff stb %g1, [ %i5 + -1 ]
<== NOT EXECUTED
*to++=' ';
400375a8: f4 2f 7f ff stb %i2, [ %i5 + -1 ]
<== NOT EXECUTED
for (cnt = 0; cnt < (sizeof(fmt_params->VolLabel)-1); cnt++) {
400375ac: 80 a7 40 1b cmp %i5, %i3
<== NOT EXECUTED
400375b0: 12 bf ff f6 bne 40037588 <msdos_format+0x1b0>
<== NOT EXECUTED
400375b4: c0 2f 40 00 clrb [ %i5 ]
<== NOT EXECUTED
rc = rtems_clock_get_tod_timeval(&time_value);
400375b8: 40 00 32 16 call 40043e10 <rtems_clock_get_tod_timeval>
<== NOT EXECUTED
400375bc: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
if (rc == RTEMS_SUCCESSFUL) {
400375c0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
400375c4: 12 80 03 9d bne 40038438 <msdos_format+0x1060>
<== NOT EXECUTED
400375c8: c2 07 be 04 ld [ %fp + -508 ], %g1
<== NOT EXECUTED
*volid_ptr = time_value.tv_sec + time_value.tv_sec;
400375cc: 83 28 60 01 sll %g1, 1, %g1
<== NOT EXECUTED
400375d0: c2 27 bd 98 st %g1, [ %fp + -616 ]
<== NOT EXECUTED
ret_val = msdos_format_determine_fmt_params(fd,rqdata,&fmt_params);
}
/*
* if requested, write whole disk/partition with 0xe5
*/
if ((ret_val == 0) &&
400375d4: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
400375d8: 02 80 00 06 be 400375f0 <msdos_format+0x218>
<== NOT EXECUTED
400375dc: b6 10 20 00 clr %i3
<== NOT EXECUTED
(rqdata != NULL) &&
!(rqdata->quick_format)) {
400375e0: f6 0e 60 15 ldub [ %i1 + 0x15 ], %i3
<== NOT EXECUTED
(rqdata != NULL) &&
400375e4: 80 8e e0 ff btst 0xff, %i3
<== NOT EXECUTED
400375e8: 02 80 02 33 be 40037eb4 <msdos_format+0xadc>
<== NOT EXECUTED
400375ec: d8 07 bd 4c ld [ %fp + -692 ], %o4
<== NOT EXECUTED
*/
if (ret_val == 0) {
/*
* Read the current MBR to obtain the partition table.
*/
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400375f0: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400375f4: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
400375f8: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
400375fc: 7f ff fe b8 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40037600: 94 12 a1 10 or %o2, 0x110, %o2 ! 40081d10 <__func__.8659+0x5d0>
<== NOT EXECUTED
if (0 > lseek(fd,((off_t)start_sector)*sector_size,SEEK_SET)) {
40037604: 96 10 20 00 clr %o3
<== NOT EXECUTED
"read MRB sector\n");
ret_val = msdos_format_read_sec(fd,
40037608: fa 07 bd 4c ld [ %fp + -692 ], %i5
<== NOT EXECUTED
if (0 > lseek(fd,((off_t)start_sector)*sector_size,SEEK_SET)) {
4003760c: 92 10 20 00 clr %o1
<== NOT EXECUTED
40037610: 94 10 20 00 clr %o2
<== NOT EXECUTED
40037614: 40 00 2b 15 call 40042268 <lseek>
<== NOT EXECUTED
40037618: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
4003761c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40037620: 06 80 03 8a bl 40038448 <msdos_format+0x1070>
<== NOT EXECUTED
40037624: 94 10 00 1d mov %i5, %o2
<== NOT EXECUTED
if (0 > read(fd,buffer,sector_size)) {
40037628: 92 07 be 00 add %fp, -512, %o1
<== NOT EXECUTED
4003762c: 7f ff 54 58 call 4000c78c <read>
<== NOT EXECUTED
40037630: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
40037634: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40037638: 06 80 03 84 bl 40038448 <msdos_format+0x1070>
<== NOT EXECUTED
4003763c: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
0,
fmt_params.bytes_per_sector,
tmp_sec);
if (ret_val == 0) {
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40037640: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
40037644: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
40037648: 7f ff fe a5 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
4003764c: 94 12 a0 c0 or %o2, 0xc0, %o2
<== NOT EXECUTED
if (fmt_params->totl_sector_cnt < 0x10000) {
40037650: c2 07 bd 50 ld [ %fp + -688 ], %g1
<== NOT EXECUTED
40037654: 05 00 00 3f sethi %hi(0xfc00), %g2
<== NOT EXECUTED
40037658: 84 10 a3 ff or %g2, 0x3ff, %g2 ! ffff <_Configuration_Interrupt_stack_size+0xefff>
<== NOT EXECUTED
4003765c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40037660: 18 80 02 20 bgu 40037ee0 <msdos_format+0xb08>
<== NOT EXECUTED
40037664: a3 30 60 08 srl %g1, 8, %l1
<== NOT EXECUTED
40037668: b5 30 60 08 srl %g1, 8, %i2
<== NOT EXECUTED
4003766c: ba 10 00 01 mov %g1, %i5
<== NOT EXECUTED
40037670: b0 10 20 00 clr %i0
<== NOT EXECUTED
40037674: b8 10 20 00 clr %i4
<== NOT EXECUTED
40037678: a2 10 20 00 clr %l1
<== NOT EXECUTED
4003767c: a4 10 20 00 clr %l2
<== NOT EXECUTED
memset(mbr,0,RTEMS_IDE_PARTITION_TABLE_OFFSET);
40037680: 94 10 21 be mov 0x1be, %o2
<== NOT EXECUTED
40037684: 92 10 20 00 clr %o1
<== NOT EXECUTED
40037688: 40 00 a6 dc call 400611f8 <memset>
<== NOT EXECUTED
4003768c: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_OEMNAME(mbr),
40037690: 94 10 20 08 mov 8, %o2
<== NOT EXECUTED
memset(mbr + RTEMS_IDE_PARTITION_TABLE_OFFSET + RTEMS_IDE_PARTITION_TABLE_SIZE,
40037694: c0 37 bf fe clrh [ %fp + -2 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_OEMNAME(mbr),
40037698: 92 07 bd 7f add %fp, -641, %o1
<== NOT EXECUTED
4003769c: 40 00 a6 4d call 40060fd0 <memcpy>
<== NOT EXECUTED
400376a0: 90 07 be 03 add %fp, -509, %o0
<== NOT EXECUTED
FAT_SET_BR_FILES_PER_ROOT_DIR(mbr , fmt_params->files_per_root_dir);
400376a4: c4 07 bd 64 ld [ %fp + -668 ], %g2
<== NOT EXECUTED
400376a8: 83 30 a0 08 srl %g2, 8, %g1
<== NOT EXECUTED
FAT_SET_BR_BYTES_PER_SECTOR(mbr , fmt_params->bytes_per_sector);
400376ac: c8 07 bd 4c ld [ %fp + -692 ], %g4
<== NOT EXECUTED
FAT_SET_BR_FILES_PER_ROOT_DIR(mbr , fmt_params->files_per_root_dir);
400376b0: c2 2f be 12 stb %g1, [ %fp + -494 ]
<== NOT EXECUTED
FAT_SET_BR_BYTES_PER_SECTOR(mbr , fmt_params->bytes_per_sector);
400376b4: 97 31 20 08 srl %g4, 8, %o3
<== NOT EXECUTED
FAT_SET_BR_MEDIA(mbr , fmt_params->media_code);
400376b8: c2 0f bd 7d ldub [ %fp + -643 ], %g1
<== NOT EXECUTED
FAT_SET_BR_RESERVED_SECTORS_NUM(mbr, fmt_params->rsvd_sector_cnt);
400376bc: c6 07 bd 54 ld [ %fp + -684 ], %g3
<== NOT EXECUTED
FAT_SET_BR_BYTES_PER_SECTOR(mbr , fmt_params->bytes_per_sector);
400376c0: c8 2f be 0b stb %g4, [ %fp + -501 ]
<== NOT EXECUTED
FAT_SET_BR_RESERVED_SECTORS_NUM(mbr, fmt_params->rsvd_sector_cnt);
400376c4: 99 30 e0 08 srl %g3, 8, %o4
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_CLUSTER(mbr , fmt_params->sectors_per_cluster);
400376c8: c8 07 bd 58 ld [ %fp + -680 ], %g4
<== NOT EXECUTED
FAT_SET_BR_MEDIA(mbr , fmt_params->media_code);
400376cc: c2 2f be 15 stb %g1, [ %fp + -491 ]
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_TRACK(mbr , 255); /* only needed for INT13... */
400376d0: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
FAT_SET_BR_FAT_NUM(mbr , 2); /* standard/recommended value */
400376d4: 9a 10 20 02 mov 2, %o5
<== NOT EXECUTED
FAT_SET_BR_HIDDEN_SECTORS(mbr , 1); /* only needed for INT13... */
400376d8: 9e 10 20 01 mov 1, %o7
<== NOT EXECUTED
FAT_SET_BR_RESERVED_SECTORS_NUM(mbr, fmt_params->rsvd_sector_cnt);
400376dc: c6 2f be 0e stb %g3, [ %fp + -498 ]
<== NOT EXECUTED
FAT_SET_BR_TOTAL_SECTORS_NUM16(mbr , total_sectors_num16);
400376e0: fa 2f be 13 stb %i5, [ %fp + -493 ]
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_TRACK(mbr , 255); /* only needed for INT13... */
400376e4: c2 2f be 18 stb %g1, [ %fp + -488 ]
<== NOT EXECUTED
FAT_SET_BR_NUMBER_OF_HEADS(mbr , 6); /* only needed for INT13... */
400376e8: 82 10 20 06 mov 6, %g1
<== NOT EXECUTED
FAT_SET_BR_BYTES_PER_SECTOR(mbr , fmt_params->bytes_per_sector);
400376ec: d6 2f be 0c stb %o3, [ %fp + -500 ]
<== NOT EXECUTED
FAT_SET_BR_NUMBER_OF_HEADS(mbr , 6); /* only needed for INT13... */
400376f0: c2 2f be 1a stb %g1, [ %fp + -486 ]
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_CLUSTER(mbr , fmt_params->sectors_per_cluster);
400376f4: c8 2f be 0d stb %g4, [ %fp + -499 ]
<== NOT EXECUTED
FAT_SET_BR_RESERVED_SECTORS_NUM(mbr, fmt_params->rsvd_sector_cnt);
400376f8: d8 2f be 0f stb %o4, [ %fp + -497 ]
<== NOT EXECUTED
FAT_SET_BR_FAT_NUM(mbr , 2); /* standard/recommended value */
400376fc: da 2f be 10 stb %o5, [ %fp + -496 ]
<== NOT EXECUTED
FAT_SET_BR_FILES_PER_ROOT_DIR(mbr , fmt_params->files_per_root_dir);
40037700: c4 2f be 11 stb %g2, [ %fp + -495 ]
<== NOT EXECUTED
FAT_SET_BR_TOTAL_SECTORS_NUM16(mbr , total_sectors_num16);
40037704: f4 2f be 14 stb %i2, [ %fp + -492 ]
<== NOT EXECUTED
FAT_SET_BR_HIDDEN_SECTORS(mbr , 1); /* only needed for INT13... */
40037708: de 2f be 1c stb %o7, [ %fp + -484 ]
<== NOT EXECUTED
FAT_SET_BR_TOTAL_SECTORS_NUM32(mbr , total_sectors_num32);
4003770c: e4 2f be 20 stb %l2, [ %fp + -480 ]
<== NOT EXECUTED
40037710: e2 2f be 21 stb %l1, [ %fp + -479 ]
<== NOT EXECUTED
40037714: f8 2f be 22 stb %i4, [ %fp + -478 ]
<== NOT EXECUTED
40037718: f0 2f be 23 stb %i0, [ %fp + -477 ]
<== NOT EXECUTED
4003771c: c2 07 bd 5c ld [ %fp + -676 ], %g1
<== NOT EXECUTED
if (fmt_params->fattype != FAT_FAT32) {
40037720: fa 0f bd 7e ldub [ %fp + -642 ], %i5
<== NOT EXECUTED
40037724: 80 a7 60 04 cmp %i5, 4
<== NOT EXECUTED
40037728: 02 80 03 1b be 40038394 <msdos_format+0xfbc>
<== NOT EXECUTED
4003772c: 87 30 60 08 srl %g1, 8, %g3
<== NOT EXECUTED
FAT_SET_BR_VOLID(mbr , fmt_params->vol_id); /* volume id */
40037730: c4 07 bd 98 ld [ %fp + -616 ], %g2
<== NOT EXECUTED
40037734: 89 30 a0 18 srl %g2, 0x18, %g4
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_FAT(mbr ,fmt_params->sectors_per_fat);
40037738: c2 2f be 16 stb %g1, [ %fp + -490 ]
<== NOT EXECUTED
FAT_SET_BR_BOOTSIG(mbr , FAT_BR_BOOTSIG_VAL);
4003773c: 82 10 20 29 mov 0x29, %g1
<== NOT EXECUTED
FAT_SET_BR_VOLID(mbr , fmt_params->vol_id); /* volume id */
40037740: b5 30 a0 08 srl %g2, 8, %i2
<== NOT EXECUTED
40037744: b9 30 a0 10 srl %g2, 0x10, %i4
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_FAT(mbr ,fmt_params->sectors_per_fat);
40037748: c6 2f be 17 stb %g3, [ %fp + -489 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_VOLLAB(mbr),
4003774c: 94 10 20 0b mov 0xb, %o2
<== NOT EXECUTED
FAT_SET_BR_BOOTSIG(mbr , FAT_BR_BOOTSIG_VAL);
40037750: c2 2f be 26 stb %g1, [ %fp + -474 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_VOLLAB(mbr),
40037754: 92 07 bd 88 add %fp, -632, %o1
<== NOT EXECUTED
FAT_SET_BR_VOLID(mbr , fmt_params->vol_id); /* volume id */
40037758: c4 2f be 27 stb %g2, [ %fp + -473 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_VOLLAB(mbr),
4003775c: 90 07 be 2b add %fp, -469, %o0
<== NOT EXECUTED
FAT_SET_BR_VOLID(mbr , fmt_params->vol_id); /* volume id */
40037760: f4 2f be 28 stb %i2, [ %fp + -472 ]
<== NOT EXECUTED
40037764: f8 2f be 29 stb %i4, [ %fp + -471 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_VOLLAB(mbr),
40037768: 40 00 a6 1a call 40060fd0 <memcpy>
<== NOT EXECUTED
4003776c: c8 2f be 2a stb %g4, [ %fp + -470 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FILSYSTYPE(mbr),
40037770: 80 a7 60 01 cmp %i5, 1
<== NOT EXECUTED
40037774: 02 80 03 4c be 400384a4 <msdos_format+0x10cc>
<== NOT EXECUTED
40037778: 03 10 02 06 sethi %hi(0x40081800), %g1
<== NOT EXECUTED
4003777c: 03 10 02 07 sethi %hi(0x40081c00), %g1
<== NOT EXECUTED
40037780: 82 10 60 08 or %g1, 8, %g1 ! 40081c08 <__func__.8659+0x4c8>
<== NOT EXECUTED
40037784: c8 10 40 00 lduh [ %g1 ], %g4
<== NOT EXECUTED
40037788: c6 10 60 02 lduh [ %g1 + 2 ], %g3
<== NOT EXECUTED
4003778c: c4 10 60 04 lduh [ %g1 + 4 ], %g2
<== NOT EXECUTED
40037790: c2 10 60 06 lduh [ %g1 + 6 ], %g1
<== NOT EXECUTED
40037794: c8 37 be 36 sth %g4, [ %fp + -458 ]
<== NOT EXECUTED
40037798: c6 37 be 38 sth %g3, [ %fp + -456 ]
<== NOT EXECUTED
4003779c: c4 37 be 3a sth %g2, [ %fp + -454 ]
<== NOT EXECUTED
400377a0: c2 37 be 3c sth %g1, [ %fp + -452 ]
<== NOT EXECUTED
FAT_SET_BR_SIGNATURE(mbr, FAT_BR_SIGNATURE_VAL);
400377a4: 03 00 00 15 sethi %hi(0x5400), %g1
<== NOT EXECUTED
400377a8: 82 10 61 aa or %g1, 0x1aa, %g1 ! 55aa <_Configuration_Interrupt_stack_size+0x45aa>
<== NOT EXECUTED
400377ac: c2 37 bf fe sth %g1, [ %fp + -2 ]
<== NOT EXECUTED
FAT_SET_VAL8(mbr,0,0xeb);
400377b0: 03 3f ff fa sethi %hi(0xffffe800), %g1
<== NOT EXECUTED
400377b4: 82 10 63 3c or %g1, 0x33c, %g1 ! ffffeb3c <RAM_END+0xbfbfeb3c>
<== NOT EXECUTED
400377b8: c2 37 be 00 sth %g1, [ %fp + -512 ]
<== NOT EXECUTED
FAT_SET_VAL8(mbr,1,0x3c);
400377bc: 82 10 3f 90 mov -112, %g1
<== NOT EXECUTED
/*
* write master boot record to disk
* also write copy of MBR to disk
*/
if (ret_val == 0) {
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400377c0: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400377c4: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
FAT_SET_VAL8(mbr,1,0x3c);
400377c8: c2 2f be 02 stb %g1, [ %fp + -510 ]
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400377cc: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
400377d0: 7f ff fe 43 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400377d4: 94 12 a0 d8 or %o2, 0xd8, %o2 ! 40081cd8 <__func__.8659+0x598>
<== NOT EXECUTED
"write MRB sector\n");
ret_val = msdos_format_write_sec(fd,
400377d8: d4 07 bd 4c ld [ %fp + -692 ], %o2
<== NOT EXECUTED
400377dc: 96 07 be 00 add %fp, -512, %o3
<== NOT EXECUTED
400377e0: 92 10 20 00 clr %o1
<== NOT EXECUTED
400377e4: 7f ff fe 58 call 40037144 <msdos_format_write_sec>
<== NOT EXECUTED
400377e8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
0,
fmt_params.bytes_per_sector,
tmp_sec);
}
if ((ret_val == 0) &&
400377ec: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
400377f0: 02 80 01 12 be 40037c38 <msdos_format+0x860>
<== NOT EXECUTED
400377f4: c2 07 bd 74 ld [ %fp + -652 ], %g1
<== NOT EXECUTED
* cleanup:
* sync and unlock disk
* free any data structures (not needed now)
*/
if (fd != -1) {
close(fd);
400377f8: 7f ff 4e dd call 4000b36c <close>
<== NOT EXECUTED
400377fc: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
}
return ret_val;
}
40037800: 81 c7 e0 08 ret
<== NOT EXECUTED
40037804: 81 e8 00 00 restore
<== NOT EXECUTED
errno = ENOTTY;
40037808: 40 00 94 43 call 4005c914 <__errno>
<== NOT EXECUTED
4003780c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
40037810: 82 10 20 19 mov 0x19, %g1
<== NOT EXECUTED
40037814: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
close(fd);
40037818: 7f ff 4e d5 call 4000b36c <close>
<== NOT EXECUTED
4003781c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
}
40037820: 81 c7 e0 08 ret
<== NOT EXECUTED
40037824: 81 e8 00 00 restore
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40037828: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
4003782c: 96 10 00 18 mov %i0, %o3
<== NOT EXECUTED
40037830: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
40037834: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
40037838: 7f ff fe 29 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
4003783c: 94 12 a0 28 or %o2, 0x28, %o2 ! 40081c28 <__func__.8659+0x4e8>
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_INFO,
40037840: 96 10 00 18 mov %i0, %o3
<== NOT EXECUTED
40037844: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
ret_val= -1;
40037848: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_INFO,
4003784c: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
40037850: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
40037854: 7f ff fe 22 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40037858: 94 12 a0 38 or %o2, 0x38, %o2
<== NOT EXECUTED
4003785c: 81 c7 e0 08 ret
<== NOT EXECUTED
40037860: 81 e8 00 00 restore
<== NOT EXECUTED
return ioctl(fd, RTEMS_BLKIO_GETSIZE, block_count);
40037864: 94 07 bd 50 add %fp, -688, %o2
<== NOT EXECUTED
40037868: 92 17 62 05 or %i5, 0x205, %o1
<== NOT EXECUTED
4003786c: 7f ff 50 02 call 4000b874 <ioctl>
<== NOT EXECUTED
40037870: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret_val == 0) {
40037874: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037878: 12 80 01 c6 bne 40037f90 <msdos_format+0xbb8>
<== NOT EXECUTED
4003787c: d6 07 bd 4c ld [ %fp + -692 ], %o3
<== NOT EXECUTED
total_size = (uint64_t)fmt_params->bytes_per_sector * fmt_params->totl_sector_cnt;
40037880: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
40037884: ba 52 c0 0c umul %o3, %o4, %i5
<== NOT EXECUTED
40037888: b9 40 00 00 rd %y, %i4
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
4003788c: fa 23 a0 5c st %i5, [ %sp + 0x5c ]
<== NOT EXECUTED
40037890: 9a 10 00 1c mov %i4, %o5
<== NOT EXECUTED
40037894: f8 3f bd 40 std %i4, [ %fp + -704 ]
<== NOT EXECUTED
40037898: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
4003789c: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
400378a0: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
400378a4: 7f ff fe 0e call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400378a8: 94 12 a0 48 or %o2, 0x48, %o2
<== NOT EXECUTED
if ((rqdata == NULL) || (rqdata->fat_num == 0)) {
400378ac: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
400378b0: 02 80 02 72 be 40038278 <msdos_format+0xea0>
<== NOT EXECUTED
400378b4: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
400378b8: d6 06 60 0c ld [ %i1 + 0xc ], %o3
<== NOT EXECUTED
400378bc: 80 a2 e0 00 cmp %o3, 0
<== NOT EXECUTED
400378c0: 22 80 01 b6 be,a 40037f98 <msdos_format+0xbc0>
<== NOT EXECUTED
400378c4: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
else if (rqdata->fat_num <= 6) {
400378c8: 80 a2 e0 06 cmp %o3, 6
<== NOT EXECUTED
400378cc: 18 80 02 f8 bgu 400384ac <msdos_format+0x10d4>
<== NOT EXECUTED
400378d0: 01 00 00 00 nop
<== NOT EXECUTED
fmt_params->fat_num = rqdata->fat_num;
400378d4: d6 2f bd 7c stb %o3, [ %fp + -644 ]
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400378d8: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
400378dc: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400378e0: 94 12 a0 88 or %o2, 0x88, %o2
<== NOT EXECUTED
400378e4: 7f ff fd fe call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400378e8: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (rqdata != NULL && rqdata->sectors_per_cluster != 0) {
400378ec: c2 06 60 08 ld [ %i1 + 8 ], %g1
<== NOT EXECUTED
400378f0: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400378f4: 02 80 02 69 be 40038298 <msdos_format+0xec0>
<== NOT EXECUTED
400378f8: 05 00 00 1f sethi %hi(0x7c00), %g2
<== NOT EXECUTED
400378fc: 84 58 6f f5 smul %g1, 0xff5, %g2
<== NOT EXECUTED
if (fmt_params->totl_sector_cnt < FAT_FAT12_MAX_CLN * fat12_sect_per_clust) {
40037900: c6 07 bd 50 ld [ %fp + -688 ], %g3
<== NOT EXECUTED
40037904: 80 a0 c0 02 cmp %g3, %g2
<== NOT EXECUTED
40037908: 1a 80 02 67 bcc 400382a4 <msdos_format+0xecc>
<== NOT EXECUTED
4003790c: 05 00 00 3f sethi %hi(0xfc00), %g2
<== NOT EXECUTED
fmt_params->fattype = FAT_FAT12;
40037910: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
40037914: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 2;
40037918: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
4003791c: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
ret_val = msdos_set_sectors_per_cluster_from_request( rqdata, fmt_params );
40037920: 92 07 bd 4c add %fp, -692, %o1
<== NOT EXECUTED
40037924: 94 07 bd 58 add %fp, -680, %o2
<== NOT EXECUTED
40037928: 7f ff fe 88 call 40037348 <msdos_set_sectors_per_cluster_from_request.isra.1>
<== NOT EXECUTED
4003792c: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (ret_val == 0) {
40037930: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037934: 12 bf fe db bne 400374a0 <msdos_format+0xc8>
<== NOT EXECUTED
40037938: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
&& fmt_params->fattype != fat_type
4003793c: c4 0f bd 7e ldub [ %fp + -642 ], %g2
<== NOT EXECUTED
40037940: 80 a0 a0 ff cmp %g2, 0xff
<== NOT EXECUTED
40037944: 02 80 02 e6 be 400384dc <msdos_format+0x1104>
<== NOT EXECUTED
40037948: c2 07 bd 50 ld [ %fp + -688 ], %g1
<== NOT EXECUTED
&& fmt_params->totl_sector_cnt > 0 ) {
4003794c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40037950: 02 80 00 a9 be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
40037954: 01 00 00 00 nop
<== NOT EXECUTED
uint32_t gigs = ( total_size + ONE_GB ) / ONE_GB;
40037958: 37 10 00 00 sethi %hi(0x40000000), %i3
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT12 =
4003795c: f0 27 bd 38 st %i0, [ %fp + -712 ]
<== NOT EXECUTED
uint32_t gigs = ( total_size + ONE_GB ) / ONE_GB;
40037960: 9a 87 40 1b addcc %i5, %i3, %o5
<== NOT EXECUTED
40037964: 83 33 60 1e srl %o5, 0x1e, %g1
<== NOT EXECUTED
40037968: b4 10 20 00 clr %i2
<== NOT EXECUTED
4003796c: 98 47 00 1a addx %i4, %i2, %o4
<== NOT EXECUTED
40037970: 85 2b 20 02 sll %o4, 2, %g2
<== NOT EXECUTED
40037974: b6 10 80 01 or %g2, %g1, %i3
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40037978: 03 10 02 07 sethi %hi(0x40081c00), %g1
<== NOT EXECUTED
4003797c: 82 10 60 a0 or %g1, 0xa0, %g1 ! 40081ca0 <__func__.8659+0x560>
<== NOT EXECUTED
if (MS_BYTES_PER_CLUSTER_LIMIT_FAT12 < (sectors_per_cluster * bytes_per_sector)) {
40037980: 23 00 00 04 sethi %hi(0x1000), %l1
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40037984: c2 27 bd 3c st %g1, [ %fp + -708 ]
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT16 =
40037988: 2b 00 00 20 sethi %hi(0x8000), %l5
<== NOT EXECUTED
((fattype == FAT_FAT16) && (*data_cluster_cnt > FAT_FAT16_MAX_CLN))) {
4003798c: 03 00 00 3f sethi %hi(0xfc00), %g1
<== NOT EXECUTED
uint32_t gigs = ( total_size + ONE_GB ) / ONE_GB;
40037990: a4 10 20 00 clr %l2
<== NOT EXECUTED
while (MS_BYTES_PER_CLUSTER_LIMIT / bytes_per_sector < sectors_per_cluster) {
40037994: 29 00 00 40 sethi %hi(0x10000), %l4
<== NOT EXECUTED
((fattype == FAT_FAT16) && (*data_cluster_cnt > FAT_FAT16_MAX_CLN))) {
40037998: a6 10 63 f5 or %g1, 0x3f5, %l3
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT16 =
4003799c: aa 15 60 01 or %l5, 1, %l5
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT12 =
400379a0: ac 14 60 01 or %l1, 1, %l6
<== NOT EXECUTED
if (ret_val == 0 && rqdata != NULL)
400379a4: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
400379a8: 02 80 02 00 be 400381a8 <msdos_format+0xdd0>
<== NOT EXECUTED
400379ac: d6 07 bd 58 ld [ %fp + -680 ], %o3
<== NOT EXECUTED
fmt_params->skip_alignment = rqdata->skip_alignment;
400379b0: c2 0e 60 16 ldub [ %i1 + 0x16 ], %g1
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400379b4: d4 07 bd 3c ld [ %fp + -708 ], %o2
<== NOT EXECUTED
fmt_params->skip_alignment = rqdata->skip_alignment;
400379b8: c2 2f bd 9c stb %g1, [ %fp + -612 ]
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400379bc: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400379c0: 7f ff fd c7 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400379c4: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (fmt_params->fattype == FAT_FAT32) {
400379c8: ee 0f bd 7e ldub [ %fp + -642 ], %l7
<== NOT EXECUTED
400379cc: ba 0d e0 ff and %l7, 0xff, %i5
<== NOT EXECUTED
400379d0: 80 a7 60 04 cmp %i5, 4
<== NOT EXECUTED
400379d4: 02 80 01 fe be 400381cc <msdos_format+0xdf4>
<== NOT EXECUTED
400379d8: 82 10 00 17 mov %l7, %g1
<== NOT EXECUTED
fmt_params->rsvd_sector_cnt = 1;
400379dc: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
400379e0: c4 27 bd 54 st %g2, [ %fp + -684 ]
<== NOT EXECUTED
(rqdata->files_per_root_dir > 0)) {
400379e4: c6 06 60 10 ld [ %i1 + 0x10 ], %g3
<== NOT EXECUTED
if ((rqdata != NULL) &&
400379e8: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
400379ec: 02 80 02 0f be 40038228 <msdos_format+0xe50>
<== NOT EXECUTED
400379f0: 80 a7 60 02 cmp %i5, 2
<== NOT EXECUTED
400379f4: 86 00 ff ff add %g3, -1, %g3
<== NOT EXECUTED
400379f8: 96 10 20 01 mov 1, %o3
<== NOT EXECUTED
(2*fmt_params->bytes_per_sector/
400379fc: f8 07 bd 4c ld [ %fp + -692 ], %i4
<== NOT EXECUTED
40037a00: 83 2f 20 01 sll %i4, 1, %g1
<== NOT EXECUTED
40037a04: 85 30 60 05 srl %g1, 5, %g2
<== NOT EXECUTED
fmt_params->files_per_root_dir = (fmt_params->files_per_root_dir +
40037a08: 86 00 80 03 add %g2, %g3, %g3
<== NOT EXECUTED
fmt_params->files_per_root_dir -= (fmt_params->files_per_root_dir %
40037a0c: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037a10: 01 00 00 00 nop
<== NOT EXECUTED
40037a14: 01 00 00 00 nop
<== NOT EXECUTED
40037a18: 01 00 00 00 nop
<== NOT EXECUTED
40037a1c: 82 70 c0 02 udiv %g3, %g2, %g1
<== NOT EXECUTED
40037a20: 82 58 40 02 smul %g1, %g2, %g1
<== NOT EXECUTED
40037a24: c2 27 bd 64 st %g1, [ %fp + -668 ]
<== NOT EXECUTED
40037a28: 83 28 60 05 sll %g1, 5, %g1
<== NOT EXECUTED
40037a2c: 9a 07 3f ff add %i4, -1, %o5
<== NOT EXECUTED
+ fmt_params->bytes_per_sector - 1)
40037a30: 82 03 40 01 add %o5, %g1, %g1
<== NOT EXECUTED
/ fmt_params->bytes_per_sector);
40037a34: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037a38: 01 00 00 00 nop
<== NOT EXECUTED
40037a3c: 01 00 00 00 nop
<== NOT EXECUTED
40037a40: 01 00 00 00 nop
<== NOT EXECUTED
40037a44: 92 70 40 1c udiv %g1, %i4, %o1
<== NOT EXECUTED
fmt_params->root_dir_sectors =
40037a48: d2 27 bd 68 st %o1, [ %fp + -664 ]
<== NOT EXECUTED
while (MS_BYTES_PER_CLUSTER_LIMIT / bytes_per_sector < sectors_per_cluster) {
40037a4c: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037a50: 01 00 00 00 nop
<== NOT EXECUTED
40037a54: 01 00 00 00 nop
<== NOT EXECUTED
40037a58: 01 00 00 00 nop
<== NOT EXECUTED
40037a5c: 84 75 00 1c udiv %l4, %i4, %g2
<== NOT EXECUTED
ret_val = msdos_format_eval_sectors_per_cluster(fmt_params->fattype,
40037a60: c2 07 bd 58 ld [ %fp + -680 ], %g1
<== NOT EXECUTED
40037a64: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
40037a68: de 0f bd 7c ldub [ %fp + -644 ], %o7
<== NOT EXECUTED
while (MS_BYTES_PER_CLUSTER_LIMIT / bytes_per_sector < sectors_per_cluster) {
40037a6c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40037a70: 08 80 00 06 bleu 40037a88 <msdos_format+0x6b0>
<== NOT EXECUTED
40037a74: f0 0f bd 9c ldub [ %fp + -612 ], %i0
<== NOT EXECUTED
sectors_per_cluster /= 2;
40037a78: 83 30 60 01 srl %g1, 1, %g1
<== NOT EXECUTED
while (MS_BYTES_PER_CLUSTER_LIMIT / bytes_per_sector < sectors_per_cluster) {
40037a7c: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40037a80: 38 bf ff ff bgu,a 40037a7c <msdos_format+0x6a4>
<== NOT EXECUTED
40037a84: 83 30 60 01 srl %g1, 1, %g1
<== NOT EXECUTED
fatdata_sect_cnt = total_sector_cnt
40037a88: 94 23 00 0b sub %o4, %o3, %o2
<== NOT EXECUTED
40037a8c: 9e 0b e0 ff and %o7, 0xff, %o7
<== NOT EXECUTED
40037a90: b0 0e 20 ff and %i0, 0xff, %i0
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
40037a94: 96 02 ff ff add %o3, -1, %o3
<== NOT EXECUTED
40037a98: 90 02 7f ff add %o1, -1, %o0
<== NOT EXECUTED
if (! skip_alignment)
40037a9c: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
40037aa0: 12 80 01 40 bne 40037fa0 <msdos_format+0xbc8>
<== NOT EXECUTED
40037aa4: 80 a7 60 01 cmp %i5, 1
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
40037aa8: 84 20 00 01 neg %g1, %g2
<== NOT EXECUTED
40037aac: 86 02 c0 01 add %o3, %g1, %g3
<== NOT EXECUTED
40037ab0: 86 08 c0 02 and %g3, %g2, %g3
<== NOT EXECUTED
if (fattype == FAT_FAT12) {
40037ab4: 02 80 01 6a be 4003805c <msdos_format+0xc84>
<== NOT EXECUTED
40037ab8: 86 23 00 03 sub %o4, %g3, %g3
<== NOT EXECUTED
else if (fattype == FAT_FAT16) {
40037abc: 80 a7 60 02 cmp %i5, 2
<== NOT EXECUTED
40037ac0: 22 80 01 b8 be,a 400381a0 <msdos_format+0xdc8>
<== NOT EXECUTED
40037ac4: 88 02 00 01 add %o0, %g1, %g4
<== NOT EXECUTED
fatdata_cluster_cnt = fatdata_sect_cnt/sectors_per_cluster;
40037ac8: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037acc: 01 00 00 00 nop
<== NOT EXECUTED
40037ad0: 01 00 00 00 nop
<== NOT EXECUTED
40037ad4: 01 00 00 00 nop
<== NOT EXECUTED
40037ad8: 84 70 c0 01 udiv %g3, %g1, %g2
<== NOT EXECUTED
fat_capacity = fatdata_cluster_cnt * 4;
40037adc: 89 28 a0 02 sll %g2, 2, %g4
<== NOT EXECUTED
+ (bytes_per_sector - 1))
40037ae0: 88 03 40 04 add %o5, %g4, %g4
<== NOT EXECUTED
40037ae4: b4 00 7f ff add %g1, -1, %i2
<== NOT EXECUTED
sectors_per_fat = ((fat_capacity
40037ae8: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037aec: 01 00 00 00 nop
<== NOT EXECUTED
40037af0: 01 00 00 00 nop
<== NOT EXECUTED
40037af4: 01 00 00 00 nop
<== NOT EXECUTED
40037af8: 86 71 00 1c udiv %g4, %i4, %g3
<== NOT EXECUTED
if (! skip_alignment)
40037afc: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
fat_sectors_cnt = loc_align_object (sectors_per_fat * fat_num,
40037b00: 86 58 c0 0f smul %g3, %o7, %g3
<== NOT EXECUTED
if (! skip_alignment)
40037b04: 12 80 00 05 bne 40037b18 <msdos_format+0x740>
<== NOT EXECUTED
40037b08: 88 00 c0 1a add %g3, %i2, %g4
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
40037b0c: 86 20 00 01 neg %g1, %g3
<== NOT EXECUTED
40037b10: 86 08 c0 04 and %g3, %g4, %g3
<== NOT EXECUTED
40037b14: 88 00 c0 1a add %g3, %i2, %g4
<== NOT EXECUTED
/ sectors_per_cluster));
40037b18: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037b1c: 01 00 00 00 nop
<== NOT EXECUTED
40037b20: 01 00 00 00 nop
<== NOT EXECUTED
40037b24: 01 00 00 00 nop
<== NOT EXECUTED
40037b28: b4 71 00 01 udiv %g4, %g1, %i2
<== NOT EXECUTED
if (((fattype == FAT_FAT12) && (*data_cluster_cnt > FAT_FAT12_MAX_CLN)) ||
40037b2c: 80 a7 60 01 cmp %i5, 1
<== NOT EXECUTED
40037b30: 02 80 01 29 be 40037fd4 <msdos_format+0xbfc>
<== NOT EXECUTED
40037b34: 84 20 80 1a sub %g2, %i2, %g2
<== NOT EXECUTED
40037b38: 80 a7 60 02 cmp %i5, 2
<== NOT EXECUTED
40037b3c: 12 80 00 09 bne 40037b60 <msdos_format+0x788>
<== NOT EXECUTED
40037b40: 80 a0 80 13 cmp %g2, %l3
<== NOT EXECUTED
((fattype == FAT_FAT16) && (*data_cluster_cnt > FAT_FAT16_MAX_CLN))) {
40037b44: 28 80 01 54 bleu,a 40038094 <msdos_format+0xcbc>
<== NOT EXECUTED
40037b48: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
sectors_per_cluster *= 2;
40037b4c: 83 28 60 01 sll %g1, 1, %g1
<== NOT EXECUTED
} else if ((sectors_per_cluster * bytes_per_sector)
40037b50: 88 5f 00 01 smul %i4, %g1, %g4
<== NOT EXECUTED
40037b54: 80 a1 00 14 cmp %g4, %l4
<== NOT EXECUTED
40037b58: 08 bf ff d2 bleu 40037aa0 <msdos_format+0x6c8>
<== NOT EXECUTED
40037b5c: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
40037b60: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037b64: 01 00 00 00 nop
<== NOT EXECUTED
40037b68: 01 00 00 00 nop
<== NOT EXECUTED
40037b6c: 01 00 00 00 nop
<== NOT EXECUTED
40037b70: 88 70 c0 0f udiv %g3, %o7, %g4
<== NOT EXECUTED
fmt_params->sectors_per_cluster = sectors_per_cluster_adj;
40037b74: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT12 =
40037b78: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037b7c: 01 00 00 00 nop
<== NOT EXECUTED
40037b80: 01 00 00 00 nop
<== NOT EXECUTED
40037b84: 01 00 00 00 nop
<== NOT EXECUTED
40037b88: 86 75 80 1c udiv %l6, %i4, %g3
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
40037b8c: c8 27 bd 5c st %g4, [ %fp + -676 ]
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
40037b90: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT16 =
40037b94: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037b98: 01 00 00 00 nop
<== NOT EXECUTED
40037b9c: 01 00 00 00 nop
<== NOT EXECUTED
40037ba0: 01 00 00 00 nop
<== NOT EXECUTED
40037ba4: 88 75 40 1c udiv %l5, %i4, %g4
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
40037ba8: 0a 80 02 52 bcs 400384f0 <msdos_format+0x1118>
<== NOT EXECUTED
40037bac: 80 a0 af f4 cmp %g2, 0xff4
<== NOT EXECUTED
40037bb0: 18 80 02 50 bgu 400384f0 <msdos_format+0x1118>
<== NOT EXECUTED
40037bb4: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
if (fat_type != fmt_params->fattype) {
40037bb8: ae 08 e0 ff and %g3, 0xff, %l7
<== NOT EXECUTED
40037bbc: 80 a7 40 17 cmp %i5, %l7
<== NOT EXECUTED
40037bc0: 12 80 01 a1 bne 40038244 <msdos_format+0xe6c>
<== NOT EXECUTED
40037bc4: c6 2f bd 7e stb %g3, [ %fp + -642 ]
<== NOT EXECUTED
if (fat_type != fmt_params->fattype && 1 < iteration_cnt) {
40037bc8: ae 1f 40 17 xor %i5, %l7, %l7
<== NOT EXECUTED
40037bcc: 84 10 00 0c mov %o4, %g2
<== NOT EXECUTED
40037bd0: 80 a0 00 17 cmp %g0, %l7
<== NOT EXECUTED
++iteration_cnt;
40037bd4: a4 04 a0 01 inc %l2
<== NOT EXECUTED
if (fat_type != fmt_params->fattype && 1 < iteration_cnt) {
40037bd8: 82 40 20 00 addx %g0, 0, %g1
<== NOT EXECUTED
&& fmt_params->fattype != fat_type
40037bdc: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
40037be0: 02 80 01 bb be 400382cc <msdos_format+0xef4>
<== NOT EXECUTED
40037be4: 80 a3 20 00 cmp %o4, 0
<== NOT EXECUTED
&& fmt_params->totl_sector_cnt > 0 ) {
40037be8: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40037bec: 12 bf ff 6f bne 400379a8 <msdos_format+0x5d0>
<== NOT EXECUTED
40037bf0: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
errno = EINVAL;
40037bf4: 40 00 93 48 call 4005c914 <__errno>
<== NOT EXECUTED
40037bf8: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
40037bfc: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
40037c00: fa 07 bd 54 ld [ %fp + -684 ], %i5
<== NOT EXECUTED
40037c04: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
40037c08: c2 0f bd 7c ldub [ %fp + -644 ], %g1
<== NOT EXECUTED
40037c0c: c6 07 bd 5c ld [ %fp + -676 ], %g3
<== NOT EXECUTED
40037c10: 82 58 40 03 smul %g1, %g3, %g1
<== NOT EXECUTED
40037c14: 82 00 40 1d add %g1, %i5, %g1
<== NOT EXECUTED
fmt_params->root_dir_start_sec =
40037c18: c2 27 bd 6c st %g1, [ %fp + -660 ]
<== NOT EXECUTED
if (fmt_params->root_dir_sectors > 0) {
40037c1c: c4 07 bd 68 ld [ %fp + -664 ], %g2
<== NOT EXECUTED
40037c20: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40037c24: 32 bf fe 2c bne,a 400374d4 <msdos_format+0xfc>
<== NOT EXECUTED
40037c28: c4 27 bd 70 st %g2, [ %fp + -656 ]
<== NOT EXECUTED
fmt_params->root_dir_fmt_sec_cnt = fmt_params->sectors_per_cluster;
40037c2c: c2 07 bd 58 ld [ %fp + -680 ], %g1
<== NOT EXECUTED
40037c30: 10 bf fe 29 b 400374d4 <msdos_format+0xfc>
<== NOT EXECUTED
40037c34: c2 27 bd 70 st %g1, [ %fp + -656 ]
<== NOT EXECUTED
if ((ret_val == 0) &&
40037c38: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40037c3c: 02 80 00 0e be 40037c74 <msdos_format+0x89c>
<== NOT EXECUTED
40037c40: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40037c44: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
40037c48: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
40037c4c: 7f ff fd 24 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40037c50: 94 12 a0 f0 or %o2, 0xf0, %o2 ! 40081cf0 <__func__.8659+0x5b0>
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037c54: d4 07 bd 4c ld [ %fp + -692 ], %o2
<== NOT EXECUTED
40037c58: d2 07 bd 74 ld [ %fp + -652 ], %o1
<== NOT EXECUTED
40037c5c: 96 07 be 00 add %fp, -512, %o3
<== NOT EXECUTED
40037c60: 7f ff fd 39 call 40037144 <msdos_format_write_sec>
<== NOT EXECUTED
40037c64: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if ((ret_val == 0) &&
40037c68: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037c6c: 12 bf fe e3 bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037c70: 01 00 00 00 nop
<== NOT EXECUTED
(fmt_params.fsinfo_sec != 0)) {
40037c74: fa 07 bd 78 ld [ %fp + -648 ], %i5
<== NOT EXECUTED
if ((ret_val == 0) &&
40037c78: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
40037c7c: 12 80 00 72 bne 40037e44 <msdos_format+0xa6c>
<== NOT EXECUTED
40037c80: d8 07 bd 4c ld [ %fp + -692 ], %o4
<== NOT EXECUTED
fmt_params.fat_num*fmt_params.sectors_per_fat,/* sector count */
40037c84: d6 0f bd 7c ldub [ %fp + -644 ], %o3
<== NOT EXECUTED
ret_val = msdos_format_fill_sectors
40037c88: c2 07 bd 5c ld [ %fp + -676 ], %g1
<== NOT EXECUTED
40037c8c: d4 07 bd 54 ld [ %fp + -684 ], %o2
<== NOT EXECUTED
40037c90: 9a 10 20 00 clr %o5
<== NOT EXECUTED
40037c94: 96 5a c0 01 smul %o3, %g1, %o3
<== NOT EXECUTED
40037c98: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
40037c9c: 7f ff fd 3d call 40037190 <msdos_format_fill_sectors>
<== NOT EXECUTED
40037ca0: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (ret_val == 0) {
40037ca4: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037ca8: 12 bf fe d4 bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037cac: d8 07 bd 4c ld [ %fp + -692 ], %o4
<== NOT EXECUTED
ret_val = msdos_format_fill_sectors
40037cb0: d6 07 bd 70 ld [ %fp + -656 ], %o3
<== NOT EXECUTED
40037cb4: d4 07 bd 6c ld [ %fp + -660 ], %o2
<== NOT EXECUTED
40037cb8: 9a 10 20 00 clr %o5
<== NOT EXECUTED
40037cbc: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
40037cc0: 7f ff fd 34 call 40037190 <msdos_format_fill_sectors>
<== NOT EXECUTED
40037cc4: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if ((ret_val == 0) && fmt_params.VolLabel_present) {
40037cc8: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037ccc: 12 bf fe cb bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037cd0: c2 0f bd 94 ldub [ %fp + -620 ], %g1
<== NOT EXECUTED
40037cd4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40037cd8: 12 80 00 44 bne 40037de8 <msdos_format+0xa10>
<== NOT EXECUTED
40037cdc: 94 10 22 00 mov 0x200, %o2
<== NOT EXECUTED
memset(tmp_sec,0,sizeof(tmp_sec));
40037ce0: 92 10 20 00 clr %o1
<== NOT EXECUTED
40037ce4: 40 00 a5 45 call 400611f8 <memset>
<== NOT EXECUTED
40037ce8: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
switch(fmt_params.fattype) {
40037cec: c2 0f bd 7e ldub [ %fp + -642 ], %g1
<== NOT EXECUTED
40037cf0: 80 a0 60 02 cmp %g1, 2
<== NOT EXECUTED
40037cf4: 02 80 00 99 be 40037f58 <msdos_format+0xb80>
<== NOT EXECUTED
40037cf8: 80 a0 60 04 cmp %g1, 4
<== NOT EXECUTED
40037cfc: 02 80 00 7f be 40037ef8 <msdos_format+0xb20>
<== NOT EXECUTED
40037d00: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
40037d04: 02 80 00 8e be 40037f3c <msdos_format+0xb64>
<== NOT EXECUTED
40037d08: c2 0f bd 7d ldub [ %fp + -643 ], %g1
<== NOT EXECUTED
errno = EINVAL;
40037d0c: 40 00 93 02 call 4005c914 <__errno>
<== NOT EXECUTED
40037d10: ba 10 3f ff mov -1, %i5
<== NOT EXECUTED
40037d14: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
40037d18: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
if (fmt_params.fattype == FAT_FAT32) {
40037d1c: c2 0f bd 7e ldub [ %fp + -642 ], %g1
<== NOT EXECUTED
40037d20: 80 a0 60 04 cmp %g1, 4
<== NOT EXECUTED
40037d24: 22 80 00 83 be,a 40037f30 <msdos_format+0xb58>
<== NOT EXECUTED
40037d28: 03 3e 3f ff sethi %hi(0xf8fffc00), %g1
<== NOT EXECUTED
if (! skip_alignment)
40037d2c: c4 0f bd 9c ldub [ %fp + -612 ], %g2
<== NOT EXECUTED
start_sector = loc_align_object (fmt_params.rsvd_sector_cnt,
40037d30: f8 07 bd 54 ld [ %fp + -684 ], %i4
<== NOT EXECUTED
if (! skip_alignment)
40037d34: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
40037d38: 12 80 00 06 bne 40037d50 <msdos_format+0x978>
<== NOT EXECUTED
40037d3c: c2 07 bd 58 ld [ %fp + -680 ], %g1
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
40037d40: b8 07 00 01 add %i4, %g1, %i4
<== NOT EXECUTED
40037d44: 82 20 00 01 neg %g1
<== NOT EXECUTED
40037d48: b8 07 3f ff add %i4, -1, %i4
<== NOT EXECUTED
40037d4c: b8 0f 00 01 and %i4, %g1, %i4
<== NOT EXECUTED
for (i = 0;
40037d50: c2 0f bd 7c ldub [ %fp + -644 ], %g1
<== NOT EXECUTED
40037d54: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40037d58: 02 80 01 d1 be 4003849c <msdos_format+0x10c4>
<== NOT EXECUTED
40037d5c: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
(i < fmt_params.fat_num) && (ret_val == 0);
40037d60: 02 80 00 06 be 40037d78 <msdos_format+0x9a0>
<== NOT EXECUTED
40037d64: d2 07 bd 5c ld [ %fp + -676 ], %o1
<== NOT EXECUTED
ret_val = -1;
40037d68: 10 bf fe a4 b 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037d6c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
(i < fmt_params.fat_num) && (ret_val == 0);
40037d70: 12 80 00 19 bne 40037dd4 <msdos_format+0x9fc>
<== NOT EXECUTED
40037d74: d2 07 bd 5c ld [ %fp + -676 ], %o1
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037d78: d4 07 bd 4c ld [ %fp + -692 ], %o2
<== NOT EXECUTED
+ (i * fmt_params.sectors_per_fat),
40037d7c: 92 5f 40 09 smul %i5, %o1, %o1
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037d80: 96 07 be 00 add %fp, -512, %o3
<== NOT EXECUTED
40037d84: 92 02 40 1c add %o1, %i4, %o1
<== NOT EXECUTED
40037d88: 7f ff fc ef call 40037144 <msdos_format_write_sec>
<== NOT EXECUTED
40037d8c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
(i < fmt_params.fat_num) && (ret_val == 0);
40037d90: c2 0f bd 7c ldub [ %fp + -644 ], %g1
<== NOT EXECUTED
i++) {
40037d94: ba 07 60 01 inc %i5
<== NOT EXECUTED
for (i = 0;
40037d98: 80 a0 40 1d cmp %g1, %i5
<== NOT EXECUTED
40037d9c: 14 bf ff f5 bg 40037d70 <msdos_format+0x998>
<== NOT EXECUTED
40037da0: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
if (ret_val == 0 && rqdata != NULL && rqdata->sync_device) {
40037da4: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40037da8: 12 80 00 0b bne 40037dd4 <msdos_format+0x9fc>
<== NOT EXECUTED
40037dac: 80 8e e0 ff btst 0xff, %i3
<== NOT EXECUTED
40037db0: 22 80 00 0a be,a 40037dd8 <msdos_format+0xa00>
<== NOT EXECUTED
40037db4: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
40037db8: c2 0e 60 17 ldub [ %i1 + 0x17 ], %g1
<== NOT EXECUTED
40037dbc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40037dc0: 02 bf fe 8e be 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037dc4: 13 08 00 10 sethi %hi(0x20004000), %o1
<== NOT EXECUTED
return ioctl(fd, RTEMS_BLKIO_SYNCDEV);
40037dc8: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
40037dcc: 7f ff 4e aa call 4000b874 <ioctl>
<== NOT EXECUTED
40037dd0: 92 12 62 06 or %o1, 0x206, %o1
<== NOT EXECUTED
40037dd4: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
close(fd);
40037dd8: 7f ff 4d 65 call 4000b36c <close>
<== NOT EXECUTED
40037ddc: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
}
40037de0: 81 c7 e0 08 ret
<== NOT EXECUTED
40037de4: 81 e8 00 00 restore
<== NOT EXECUTED
memset(tmp_sec,0,sizeof(tmp_sec));
40037de8: 92 10 20 00 clr %o1
<== NOT EXECUTED
40037dec: 40 00 a5 03 call 400611f8 <memset>
<== NOT EXECUTED
40037df0: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(tmp_sec),fmt_params.VolLabel,MSDOS_SHORT_NAME_LEN);
40037df4: c2 0f bd 92 ldub [ %fp + -622 ], %g1
<== NOT EXECUTED
40037df8: c6 07 bd 8c ld [ %fp + -628 ], %g3
<== NOT EXECUTED
40037dfc: c4 17 bd 90 lduh [ %fp + -624 ], %g2
<== NOT EXECUTED
40037e00: c8 07 bd 88 ld [ %fp + -632 ], %g4
<== NOT EXECUTED
40037e04: c2 2f be 0a stb %g1, [ %fp + -502 ]
<== NOT EXECUTED
*MSDOS_DIR_ATTR(tmp_sec) = MSDOS_ATTR_VOLUME_ID;
40037e08: 82 10 20 08 mov 8, %g1
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037e0c: d4 07 bd 4c ld [ %fp + -692 ], %o2
<== NOT EXECUTED
40037e10: d2 07 bd 6c ld [ %fp + -660 ], %o1
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(tmp_sec),fmt_params.VolLabel,MSDOS_SHORT_NAME_LEN);
40037e14: c8 27 be 00 st %g4, [ %fp + -512 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037e18: 96 07 be 00 add %fp, -512, %o3
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(tmp_sec),fmt_params.VolLabel,MSDOS_SHORT_NAME_LEN);
40037e1c: c6 27 be 04 st %g3, [ %fp + -508 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037e20: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
memcpy(MSDOS_DIR_NAME(tmp_sec),fmt_params.VolLabel,MSDOS_SHORT_NAME_LEN);
40037e24: c4 37 be 08 sth %g2, [ %fp + -504 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec
40037e28: 7f ff fc c7 call 40037144 <msdos_format_write_sec>
<== NOT EXECUTED
40037e2c: c2 2f be 0b stb %g1, [ %fp + -501 ]
<== NOT EXECUTED
if (ret_val == 0) {
40037e30: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40037e34: 02 bf ff ab be 40037ce0 <msdos_format+0x908>
<== NOT EXECUTED
40037e38: 94 10 22 00 mov 0x200, %o2
<== NOT EXECUTED
40037e3c: 10 bf ff e7 b 40037dd8 <msdos_format+0xa00>
<== NOT EXECUTED
40037e40: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
40037e44: d8 27 bd 3c st %o4, [ %fp + -708 ]
<== NOT EXECUTED
memset(fsinfo,0,FAT_TOTAL_FSINFO_SIZE);
40037e48: 94 10 22 00 mov 0x200, %o2
<== NOT EXECUTED
40037e4c: 92 10 20 00 clr %o1
<== NOT EXECUTED
40037e50: 40 00 a4 ea call 400611f8 <memset>
<== NOT EXECUTED
40037e54: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
FAT_SET_FSINFO_LEAD_SIGNATURE (fsinfo,FAT_FSINFO_LEAD_SIGNATURE_VALUE );
40037e58: 03 14 94 98 sethi %hi(0x52526000), %g1
<== NOT EXECUTED
40037e5c: 82 10 61 41 or %g1, 0x141, %g1 ! 52526141 <RAM_END+0x12126141>
<== NOT EXECUTED
40037e60: c2 27 be 00 st %g1, [ %fp + -512 ]
<== NOT EXECUTED
FAT_SET_FSINFO_TRAIL_SIGNATURE(fsinfo,FAT_FSINFO_TRAIL_SIGNATURE_VALUE);
40037e64: 03 00 00 15 sethi %hi(0x5400), %g1
<== NOT EXECUTED
40037e68: 82 10 61 aa or %g1, 0x1aa, %g1 ! 55aa <_Configuration_Interrupt_stack_size+0x45aa>
<== NOT EXECUTED
FAT_SET_FSINFO_STRUC_SIGNATURE(fsinfo,FAT_FSINFO_STRUC_SIGNATURE_VALUE);
40037e6c: 84 10 3f ff mov -1, %g2
<== NOT EXECUTED
FAT_SET_FSINFO_TRAIL_SIGNATURE(fsinfo,FAT_FSINFO_TRAIL_SIGNATURE_VALUE);
40037e70: c2 37 bf fe sth %g1, [ %fp + -2 ]
<== NOT EXECUTED
FAT_SET_FSINFO_STRUC_SIGNATURE(fsinfo,FAT_FSINFO_STRUC_SIGNATURE_VALUE);
40037e74: 03 1c 9c 90 sethi %hi(0x72724000), %g1
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037e78: d8 07 bd 3c ld [ %fp + -708 ], %o4
<== NOT EXECUTED
FAT_SET_FSINFO_STRUC_SIGNATURE(fsinfo,FAT_FSINFO_STRUC_SIGNATURE_VALUE);
40037e7c: 82 10 61 61 or %g1, 0x161, %g1
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037e80: 96 07 be 00 add %fp, -512, %o3
<== NOT EXECUTED
FAT_SET_FSINFO_STRUC_SIGNATURE(fsinfo,FAT_FSINFO_STRUC_SIGNATURE_VALUE);
40037e84: c4 27 bf e8 st %g2, [ %fp + -24 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037e88: 94 10 00 0c mov %o4, %o2
<== NOT EXECUTED
FAT_SET_FSINFO_STRUC_SIGNATURE(fsinfo,FAT_FSINFO_STRUC_SIGNATURE_VALUE);
40037e8c: c2 27 bf e4 st %g1, [ %fp + -28 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037e90: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
FAT_SET_FSINFO_FREE_CLUSTER_COUNT(fsinfo+FAT_FSI_INFO, 0xffffffff);
40037e94: c4 27 bf ec st %g2, [ %fp + -20 ]
<== NOT EXECUTED
ret_val = msdos_format_write_sec(fd,
40037e98: 7f ff fc ab call 40037144 <msdos_format_write_sec>
<== NOT EXECUTED
40037e9c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
if (ret_val == 0) {
40037ea0: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037ea4: 12 bf fe 55 bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037ea8: d8 07 bd 4c ld [ %fp + -692 ], %o4
<== NOT EXECUTED
fmt_params.fat_num*fmt_params.sectors_per_fat,/* sector count */
40037eac: 10 bf ff 77 b 40037c88 <msdos_format+0x8b0>
<== NOT EXECUTED
40037eb0: d6 0f bd 7c ldub [ %fp + -644 ], %o3
<== NOT EXECUTED
ret_val = msdos_format_fill_sectors
40037eb4: d6 07 bd 50 ld [ %fp + -688 ], %o3
<== NOT EXECUTED
40037eb8: 9a 10 3f e5 mov -27, %o5
<== NOT EXECUTED
40037ebc: 94 10 20 00 clr %o2
<== NOT EXECUTED
40037ec0: 92 10 00 10 mov %l0, %o1
<== NOT EXECUTED
40037ec4: 7f ff fc b3 call 40037190 <msdos_format_fill_sectors>
<== NOT EXECUTED
40037ec8: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (ret_val == 0) {
40037ecc: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40037ed0: 12 bf fe 4a bne 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
40037ed4: 01 00 00 00 nop
<== NOT EXECUTED
40037ed8: 10 bf fd c6 b 400375f0 <msdos_format+0x218>
<== NOT EXECUTED
40037edc: b6 10 20 01 mov 1, %i3 ! 1 <_TLS_Alignment>
<== NOT EXECUTED
40037ee0: b9 30 60 10 srl %g1, 0x10, %i4
<== NOT EXECUTED
40037ee4: a4 10 00 01 mov %g1, %l2
<== NOT EXECUTED
40037ee8: b1 30 60 18 srl %g1, 0x18, %i0
<== NOT EXECUTED
if (fmt_params->totl_sector_cnt < 0x10000) {
40037eec: b4 10 20 00 clr %i2
<== NOT EXECUTED
40037ef0: 10 bf fd e4 b 40037680 <msdos_format+0x2a8>
<== NOT EXECUTED
40037ef4: ba 10 20 00 clr %i5
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,0,0xffffff00|fmt_params.media_code);
40037ef8: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
40037efc: c4 0f bd 7d ldub [ %fp + -643 ], %g2
<== NOT EXECUTED
40037f00: c4 2f be 00 stb %g2, [ %fp + -512 ]
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,4,0xc0000000|FAT_FAT32_EOC);
40037f04: 84 10 3f f8 mov -8, %g2
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,0,0xffffff00|fmt_params.media_code);
40037f08: c2 2f be 01 stb %g1, [ %fp + -511 ]
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,4,0xc0000000|FAT_FAT32_EOC);
40037f0c: ba 10 20 00 clr %i5
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,0,0xffffff00|fmt_params.media_code);
40037f10: c2 2f be 02 stb %g1, [ %fp + -510 ]
<== NOT EXECUTED
40037f14: c2 2f be 03 stb %g1, [ %fp + -509 ]
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,4,0xc0000000|FAT_FAT32_EOC);
40037f18: c2 2f be 05 stb %g1, [ %fp + -507 ]
<== NOT EXECUTED
40037f1c: c2 2f be 06 stb %g1, [ %fp + -506 ]
<== NOT EXECUTED
40037f20: 82 10 3f cf mov -49, %g1
<== NOT EXECUTED
40037f24: c4 2f be 04 stb %g2, [ %fp + -508 ]
<== NOT EXECUTED
40037f28: c2 2f be 07 stb %g1, [ %fp + -505 ]
<== NOT EXECUTED
FAT_SET_VAL32(tmp_sec,8,FAT_FAT32_EOC);
40037f2c: 03 3e 3f ff sethi %hi(0xf8fffc00), %g1
<== NOT EXECUTED
40037f30: 82 10 63 0f or %g1, 0x30f, %g1 ! f8ffff0f <RAM_END+0xb8bfff0f>
<== NOT EXECUTED
40037f34: 10 bf ff 7e b 40037d2c <msdos_format+0x954>
<== NOT EXECUTED
40037f38: c2 27 be 08 st %g1, [ %fp + -504 ]
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,0,(fmt_params.media_code));
40037f3c: c2 2f be 00 stb %g1, [ %fp + -512 ]
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,1,(0x0f | (FAT_FAT12_EOC << 4)));
40037f40: 82 10 3f 8f mov -113, %g1
<== NOT EXECUTED
ret_val = -1;
40037f44: ba 10 20 00 clr %i5
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,1,(0x0f | (FAT_FAT12_EOC << 4)));
40037f48: c2 2f be 01 stb %g1, [ %fp + -511 ]
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,2,(FAT_FAT12_EOC >> 4));
40037f4c: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
40037f50: 10 bf ff 77 b 40037d2c <msdos_format+0x954>
<== NOT EXECUTED
40037f54: c2 2f be 02 stb %g1, [ %fp + -510 ]
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,0,fmt_params.media_code);
40037f58: c4 0f bd 7d ldub [ %fp + -643 ], %g2
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,1,0xff);
40037f5c: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,0,fmt_params.media_code);
40037f60: c4 2f be 00 stb %g2, [ %fp + -512 ]
<== NOT EXECUTED
ret_val = -1;
40037f64: ba 10 20 00 clr %i5
<== NOT EXECUTED
FAT_SET_VAL16(tmp_sec,2,FAT_FAT16_EOC);
40037f68: 84 10 3f f8 mov -8, %g2
<== NOT EXECUTED
FAT_SET_VAL8(tmp_sec,1,0xff);
40037f6c: c2 2f be 01 stb %g1, [ %fp + -511 ]
<== NOT EXECUTED
FAT_SET_VAL16(tmp_sec,2,FAT_FAT16_EOC);
40037f70: c4 2f be 02 stb %g2, [ %fp + -510 ]
<== NOT EXECUTED
40037f74: 10 bf ff 6e b 40037d2c <msdos_format+0x954>
<== NOT EXECUTED
40037f78: c2 2f be 03 stb %g1, [ %fp + -509 ]
<== NOT EXECUTED
from = ""; /* default: make "from" point to empty string */
40037f7c: 39 10 01 fa sethi %hi(0x4007e800), %i4
<== NOT EXECUTED
40037f80: 10 bf fd 7a b 40037568 <msdos_format+0x190>
<== NOT EXECUTED
40037f84: b8 17 21 10 or %i4, 0x110, %i4 ! 4007e910 <suffixes+0x320>
<== NOT EXECUTED
from = "RTEMS"; /* default: make "from" point to OS Name */
40037f88: 10 bf fd 5c b 400374f8 <msdos_format+0x120>
<== NOT EXECUTED
40037f8c: b8 17 20 30 or %i4, 0x30, %i4
<== NOT EXECUTED
40037f90: 10 bf fd 44 b 400374a0 <msdos_format+0xc8>
<== NOT EXECUTED
40037f94: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
fmt_params->fat_num = 2;
40037f98: 10 bf fe 50 b 400378d8 <msdos_format+0x500>
<== NOT EXECUTED
40037f9c: c2 2f bd 7c stb %g1, [ %fp + -644 ]
<== NOT EXECUTED
if (fattype == FAT_FAT12) {
40037fa0: 02 80 00 3b be 4003808c <msdos_format+0xcb4>
<== NOT EXECUTED
40037fa4: 86 10 00 0a mov %o2, %g3
<== NOT EXECUTED
else if (fattype == FAT_FAT16) {
40037fa8: 80 a7 60 02 cmp %i5, 2
<== NOT EXECUTED
40037fac: 12 bf fe c7 bne 40037ac8 <msdos_format+0x6f0>
<== NOT EXECUTED
40037fb0: 84 10 00 09 mov %o1, %g2
<== NOT EXECUTED
fatdata_sect_cnt = fatdata_sect_cnt
40037fb4: 86 20 c0 02 sub %g3, %g2, %g3
<== NOT EXECUTED
fatdata_cluster_cnt = fatdata_sect_cnt/sectors_per_cluster;
40037fb8: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037fbc: 01 00 00 00 nop
<== NOT EXECUTED
40037fc0: 01 00 00 00 nop
<== NOT EXECUTED
40037fc4: 01 00 00 00 nop
<== NOT EXECUTED
40037fc8: 84 70 c0 01 udiv %g3, %g1, %g2
<== NOT EXECUTED
fat_capacity = fatdata_cluster_cnt * 2;
40037fcc: 10 bf fe c5 b 40037ae0 <msdos_format+0x708>
<== NOT EXECUTED
40037fd0: 89 28 a0 01 sll %g2, 1, %g4
<== NOT EXECUTED
if (((fattype == FAT_FAT12) && (*data_cluster_cnt > FAT_FAT12_MAX_CLN)) ||
40037fd4: 80 a0 af f5 cmp %g2, 0xff5
<== NOT EXECUTED
40037fd8: 38 80 00 1c bgu,a 40038048 <msdos_format+0xc70>
<== NOT EXECUTED
40037fdc: 83 28 60 01 sll %g1, 1, %g1
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
40037fe0: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037fe4: 01 00 00 00 nop
<== NOT EXECUTED
40037fe8: 01 00 00 00 nop
<== NOT EXECUTED
40037fec: 01 00 00 00 nop
<== NOT EXECUTED
40037ff0: 88 70 c0 0f udiv %g3, %o7, %g4
<== NOT EXECUTED
fmt_params->sectors_per_cluster = sectors_per_cluster_adj;
40037ff4: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT12 =
40037ff8: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40037ffc: 01 00 00 00 nop
<== NOT EXECUTED
40038000: 01 00 00 00 nop
<== NOT EXECUTED
40038004: 01 00 00 00 nop
<== NOT EXECUTED
40038008: 86 75 80 1c udiv %l6, %i4, %g3
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
4003800c: c8 27 bd 5c st %g4, [ %fp + -676 ]
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
40038010: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT16 =
40038014: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40038018: 01 00 00 00 nop
<== NOT EXECUTED
4003801c: 01 00 00 00 nop
<== NOT EXECUTED
40038020: 01 00 00 00 nop
<== NOT EXECUTED
40038024: 88 75 40 1c udiv %l5, %i4, %g4
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
40038028: 0a 80 01 32 bcs 400384f0 <msdos_format+0x1118>
<== NOT EXECUTED
4003802c: 80 a0 af f4 cmp %g2, 0xff4
<== NOT EXECUTED
40038030: 38 80 01 31 bgu,a 400384f4 <msdos_format+0x111c>
<== NOT EXECUTED
40038034: 07 00 00 3f sethi %hi(0xfc00), %g3
<== NOT EXECUTED
fmt_params->fattype = msdos_get_fat_type(
40038038: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4003803c: ae 10 20 01 mov 1, %l7
<== NOT EXECUTED
40038040: 10 bf fe e2 b 40037bc8 <msdos_format+0x7f0>
<== NOT EXECUTED
40038044: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
if (MS_BYTES_PER_CLUSTER_LIMIT_FAT12 < (sectors_per_cluster * bytes_per_sector)) {
40038048: 88 5f 00 01 smul %i4, %g1, %g4
<== NOT EXECUTED
4003804c: 80 a1 00 11 cmp %g4, %l1
<== NOT EXECUTED
40038050: 08 bf fe 94 bleu 40037aa0 <msdos_format+0x6c8>
<== NOT EXECUTED
40038054: 80 a6 20 00 cmp %i0, 0
<== NOT EXECUTED
40038058: 30 bf ff e2 b,a 40037fe0 <msdos_format+0xc08>
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
4003805c: 88 02 00 01 add %o0, %g1, %g4
<== NOT EXECUTED
40038060: 84 09 00 02 and %g4, %g2, %g2
<== NOT EXECUTED
fatdata_sect_cnt = fatdata_sect_cnt
40038064: 86 20 c0 02 sub %g3, %g2, %g3
<== NOT EXECUTED
fatdata_cluster_cnt = fatdata_sect_cnt/sectors_per_cluster;
40038068: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
4003806c: 01 00 00 00 nop
<== NOT EXECUTED
40038070: 01 00 00 00 nop
<== NOT EXECUTED
40038074: 01 00 00 00 nop
<== NOT EXECUTED
40038078: 84 70 c0 01 udiv %g3, %g1, %g2
<== NOT EXECUTED
fat_capacity = fatdata_cluster_cnt * 3 / 2;
4003807c: 89 28 a0 01 sll %g2, 1, %g4
<== NOT EXECUTED
40038080: 88 01 00 02 add %g4, %g2, %g4
<== NOT EXECUTED
40038084: 10 bf fe 97 b 40037ae0 <msdos_format+0x708>
<== NOT EXECUTED
40038088: 89 31 20 01 srl %g4, 1, %g4
<== NOT EXECUTED
return sectors;
4003808c: 10 bf ff f6 b 40038064 <msdos_format+0xc8c>
<== NOT EXECUTED
40038090: 84 10 00 09 mov %o1, %g2
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
40038094: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
40038098: 01 00 00 00 nop
<== NOT EXECUTED
4003809c: 01 00 00 00 nop
<== NOT EXECUTED
400380a0: 01 00 00 00 nop
<== NOT EXECUTED
400380a4: 88 70 c0 0f udiv %g3, %o7, %g4
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT12 =
400380a8: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
400380ac: 01 00 00 00 nop
<== NOT EXECUTED
400380b0: 01 00 00 00 nop
<== NOT EXECUTED
400380b4: 01 00 00 00 nop
<== NOT EXECUTED
400380b8: 86 75 80 1c udiv %l6, %i4, %g3
<== NOT EXECUTED
*sectors_per_fat_ptr = fat_sectors_cnt / fat_num;
400380bc: c8 27 bd 5c st %g4, [ %fp + -676 ]
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
400380c0: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
uint32_t ms_sectors_per_cluster_limit_FAT16 =
400380c4: 81 80 20 00 wr %g0, %y
<== NOT EXECUTED
400380c8: 01 00 00 00 nop
<== NOT EXECUTED
400380cc: 01 00 00 00 nop
<== NOT EXECUTED
400380d0: 01 00 00 00 nop
<== NOT EXECUTED
400380d4: 88 75 40 1c udiv %l5, %i4, %g4
<== NOT EXECUTED
if ( number_of_clusters < FAT_FAT12_MAX_CLN
400380d8: 0a 80 00 04 bcs 400380e8 <msdos_format+0xd10>
<== NOT EXECUTED
400380dc: 80 a0 af f4 cmp %g2, 0xff4
<== NOT EXECUTED
400380e0: 28 80 00 58 bleu,a 40038240 <msdos_format+0xe68>
<== NOT EXECUTED
400380e4: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
else if ( number_of_clusters < FAT_FAT16_MAX_CLN
400380e8: 80 a1 00 01 cmp %g4, %g1
<== NOT EXECUTED
400380ec: 1a 80 00 45 bcc 40038200 <msdos_format+0xe28>
<== NOT EXECUTED
400380f0: 03 00 00 3f sethi %hi(0xfc00), %g1
<== NOT EXECUTED
fmt_params->fattype = msdos_get_fat_type(
400380f4: 82 10 20 04 mov 4, %g1
<== NOT EXECUTED
400380f8: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
if ( (gigs & ( 1 << b) ) != 0 )
400380fc: 86 10 20 01 mov 1, %g3
<== NOT EXECUTED
for ( b = 31; b > 0; b-- ) {
40038100: 82 10 20 1f mov 0x1f, %g1
<== NOT EXECUTED
if (fat_type != fmt_params->fattype) {
40038104: 80 a7 60 04 cmp %i5, 4
<== NOT EXECUTED
40038108: 12 80 00 06 bne 40038120 <msdos_format+0xd48>
<== NOT EXECUTED
4003810c: ae 0d e0 ff and %l7, 0xff, %l7
<== NOT EXECUTED
if (fat_type != fmt_params->fattype && 1 < iteration_cnt) {
40038110: 10 bf fe af b 40037bcc <msdos_format+0x7f4>
<== NOT EXECUTED
40038114: ae 1f 40 17 xor %i5, %l7, %l7
<== NOT EXECUTED
for ( b = 31; b > 0; b-- ) {
40038118: 02 80 00 06 be 40038130 <msdos_format+0xd58>
<== NOT EXECUTED
4003811c: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
if ( (gigs & ( 1 << b) ) != 0 )
40038120: 85 28 c0 01 sll %g3, %g1, %g2
<== NOT EXECUTED
40038124: 80 8e c0 02 btst %i3, %g2
<== NOT EXECUTED
40038128: 22 bf ff fc be,a 40038118 <msdos_format+0xd40>
<== NOT EXECUTED
4003812c: 82 80 7f ff addcc %g1, -1, %g1
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 1 << b;
40038130: c4 27 bd 58 st %g2, [ %fp + -680 ]
<== NOT EXECUTED
ret_val = msdos_set_sectors_per_cluster_from_request( rqdata,
40038134: 94 07 bd 58 add %fp, -680, %o2
<== NOT EXECUTED
40038138: 92 07 bd 4c add %fp, -692, %o1
<== NOT EXECUTED
4003813c: 7f ff fc 83 call 40037348 <msdos_set_sectors_per_cluster_from_request.isra.1>
<== NOT EXECUTED
40038140: 90 10 00 19 mov %i1, %o0
<== NOT EXECUTED
if (fat_type != fmt_params->fattype && 1 < iteration_cnt) {
40038144: c2 0f bd 7e ldub [ %fp + -642 ], %g1
<== NOT EXECUTED
40038148: ba 18 40 1d xor %g1, %i5, %i5
<== NOT EXECUTED
4003814c: 80 a0 00 1d cmp %g0, %i5
<== NOT EXECUTED
40038150: 84 0c a0 ff and %l2, 0xff, %g2
<== NOT EXECUTED
40038154: 86 40 20 00 addx %g0, 0, %g3
<== NOT EXECUTED
40038158: 88 10 20 01 mov 1, %g4
<== NOT EXECUTED
4003815c: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
40038160: 18 80 00 03 bgu 4003816c <msdos_format+0xd94>
<== NOT EXECUTED
40038164: 82 10 00 03 mov %g3, %g1
<== NOT EXECUTED
40038168: 88 10 20 00 clr %g4
<== NOT EXECUTED
4003816c: 80 89 20 ff btst 0xff, %g4
<== NOT EXECUTED
40038170: 02 80 00 38 be 40038250 <msdos_format+0xe78>
<== NOT EXECUTED
40038174: d8 07 bd 50 ld [ %fp + -688 ], %o4
<== NOT EXECUTED
40038178: 80 a0 e0 00 cmp %g3, 0
<== NOT EXECUTED
4003817c: 02 80 00 35 be 40038250 <msdos_format+0xe78>
<== NOT EXECUTED
40038180: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
--fmt_params->totl_sector_cnt;
40038184: 98 03 3f ff add %o4, -1, %o4
<== NOT EXECUTED
40038188: d8 27 bd 50 st %o4, [ %fp + -688 ]
<== NOT EXECUTED
4003818c: 84 10 00 0c mov %o4, %g2
<== NOT EXECUTED
while( ret_val == 0
40038190: 02 bf fe 96 be 40037be8 <msdos_format+0x810>
<== NOT EXECUTED
40038194: a4 04 a0 01 inc %l2
<== NOT EXECUTED
40038198: 10 bf fc c2 b 400374a0 <msdos_format+0xc8>
<== NOT EXECUTED
4003819c: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
400381a0: 10 bf ff 85 b 40037fb4 <msdos_format+0xbdc>
<== NOT EXECUTED
400381a4: 84 09 00 02 and %g4, %g2, %g2
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
400381a8: d4 07 bd 3c ld [ %fp + -708 ], %o2
<== NOT EXECUTED
400381ac: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
400381b0: 7f ff fb cb call 400370dc <msdos_format_printf>
<== NOT EXECUTED
400381b4: 90 10 20 00 clr %o0
<== NOT EXECUTED
if (fmt_params->fattype == FAT_FAT32) {
400381b8: c2 0f bd 7e ldub [ %fp + -642 ], %g1
<== NOT EXECUTED
400381bc: ba 08 60 ff and %g1, 0xff, %i5
<== NOT EXECUTED
400381c0: 80 a7 60 04 cmp %i5, 4
<== NOT EXECUTED
400381c4: 12 80 00 17 bne 40038220 <msdos_format+0xe48>
<== NOT EXECUTED
400381c8: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
fmt_params->rsvd_sector_cnt = 32;
400381cc: 82 10 20 20 mov 0x20, %g1
<== NOT EXECUTED
400381d0: c2 27 bd 54 st %g1, [ %fp + -684 ]
<== NOT EXECUTED
fmt_params->mbr_copy_sec = 6;
400381d4: 82 10 20 06 mov 6, %g1
<== NOT EXECUTED
fmt_params->fsinfo_sec = 1;
400381d8: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
fmt_params->mbr_copy_sec = 6;
400381dc: c2 27 bd 74 st %g1, [ %fp + -652 ]
<== NOT EXECUTED
fmt_params->fsinfo_sec = 1;
400381e0: ae 10 20 04 mov 4, %l7
<== NOT EXECUTED
fmt_params->files_per_root_dir = 0;
400381e4: c0 27 bd 64 clr [ %fp + -668 ]
<== NOT EXECUTED
fmt_params->fsinfo_sec = 1;
400381e8: 96 10 20 20 mov 0x20, %o3
<== NOT EXECUTED
400381ec: 82 10 20 00 clr %g1
<== NOT EXECUTED
400381f0: c4 27 bd 78 st %g2, [ %fp + -648 ]
<== NOT EXECUTED
400381f4: ba 10 20 04 mov 4, %i5
<== NOT EXECUTED
400381f8: 10 bf fe 0d b 40037a2c <msdos_format+0x654>
<== NOT EXECUTED
400381fc: f8 07 bd 4c ld [ %fp + -692 ], %i4
<== NOT EXECUTED
else if ( number_of_clusters < FAT_FAT16_MAX_CLN
40038200: 82 10 63 f4 or %g1, 0x3f4, %g1
<== NOT EXECUTED
40038204: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40038208: 0a bf ff bc bcs 400380f8 <msdos_format+0xd20>
<== NOT EXECUTED
4003820c: 82 10 20 04 mov 4, %g1
<== NOT EXECUTED
fmt_params->fattype = msdos_get_fat_type(
40038210: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
40038214: ae 10 20 02 mov 2, %l7
<== NOT EXECUTED
40038218: 10 bf fe 6c b 40037bc8 <msdos_format+0x7f0>
<== NOT EXECUTED
4003821c: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
fmt_params->rsvd_sector_cnt = 1;
40038220: c4 27 bd 54 st %g2, [ %fp + -684 ]
<== NOT EXECUTED
if (fmt_params->fattype == FAT_FAT16) {
40038224: 80 a7 60 02 cmp %i5, 2
<== NOT EXECUTED
40038228: 02 80 00 10 be 40038268 <msdos_format+0xe90>
<== NOT EXECUTED
4003822c: ae 10 00 01 mov %g1, %l7
<== NOT EXECUTED
40038230: d6 07 bd 54 ld [ %fp + -684 ], %o3
<== NOT EXECUTED
40038234: 86 10 20 3f mov 0x3f, %g3
<== NOT EXECUTED
40038238: 10 bf fd f1 b 400379fc <msdos_format+0x624>
<== NOT EXECUTED
4003823c: ba 08 60 ff and %g1, 0xff, %i5
<== NOT EXECUTED
fmt_params->fattype = msdos_get_fat_type(
40038240: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 2;
40038244: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
40038248: 10 bf ff bb b 40038134 <msdos_format+0xd5c>
<== NOT EXECUTED
4003824c: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
40038250: 84 10 00 0c mov %o4, %g2
<== NOT EXECUTED
while( ret_val == 0
40038254: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40038258: 02 bf fe 61 be 40037bdc <msdos_format+0x804>
<== NOT EXECUTED
4003825c: a4 04 a0 01 inc %l2
<== NOT EXECUTED
40038260: 10 bf fc 90 b 400374a0 <msdos_format+0xc8>
<== NOT EXECUTED
40038264: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
40038268: d6 07 bd 54 ld [ %fp + -684 ], %o3
<== NOT EXECUTED
if (fmt_params->fattype == FAT_FAT16) {
4003826c: 86 10 21 ff mov 0x1ff, %g3
<== NOT EXECUTED
40038270: 10 bf fd e3 b 400379fc <msdos_format+0x624>
<== NOT EXECUTED
40038274: ba 08 60 ff and %g1, 0xff, %i5
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40038278: 15 10 02 07 sethi %hi(0x40081c00), %o2
<== NOT EXECUTED
fmt_params->fat_num = 2;
4003827c: c2 2f bd 7c stb %g1, [ %fp + -644 ]
<== NOT EXECUTED
msdos_format_printf (rqdata, MSDOS_FMT_INFO_LEVEL_DETAIL,
40038280: 96 10 20 02 mov 2, %o3
<== NOT EXECUTED
40038284: 94 12 a0 88 or %o2, 0x88, %o2
<== NOT EXECUTED
40038288: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
4003828c: 7f ff fb 94 call 400370dc <msdos_format_printf>
<== NOT EXECUTED
40038290: 90 10 20 00 clr %o0
<== NOT EXECUTED
{
40038294: 05 00 00 1f sethi %hi(0x7c00), %g2
<== NOT EXECUTED
uint32_t fat16_sect_per_clust = 32;
40038298: 82 10 20 20 mov 0x20, %g1
<== NOT EXECUTED
{
4003829c: 10 bf fd 99 b 40037900 <msdos_format+0x528>
<== NOT EXECUTED
400382a0: 84 10 a3 a8 or %g2, 0x3a8, %g2
<== NOT EXECUTED
else if (fmt_params->totl_sector_cnt < FAT_FAT16_MAX_CLN * fat16_sect_per_clust) {
400382a4: 84 10 a3 f5 or %g2, 0x3f5, %g2
<== NOT EXECUTED
400382a8: 82 58 40 02 smul %g1, %g2, %g1
<== NOT EXECUTED
400382ac: 80 a0 c0 01 cmp %g3, %g1
<== NOT EXECUTED
400382b0: 1a 80 00 68 bcc 40038450 <msdos_format+0x1078>
<== NOT EXECUTED
400382b4: 82 10 20 04 mov 4, %g1
<== NOT EXECUTED
fmt_params->fattype = FAT_FAT16;
400382b8: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
400382bc: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 2;
400382c0: 82 10 20 02 mov 2, %g1
<== NOT EXECUTED
400382c4: 10 bf fd 97 b 40037920 <msdos_format+0x548>
<== NOT EXECUTED
400382c8: c2 27 bd 58 st %g1, [ %fp + -680 ]
<== NOT EXECUTED
if ( fmt_params->totl_sector_cnt == 0 )
400382cc: 02 bf fe 4a be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
400382d0: f0 07 bd 38 ld [ %fp + -712 ], %i0
<== NOT EXECUTED
400382d4: c2 0f bd 9c ldub [ %fp + -612 ], %g1
<== NOT EXECUTED
if (FAT_FAT32 != fmt_params->fattype)
400382d8: c4 0f bd 7e ldub [ %fp + -642 ], %g2
<== NOT EXECUTED
400382dc: c6 07 bd 58 ld [ %fp + -680 ], %g3
<== NOT EXECUTED
400382e0: 80 a0 a0 04 cmp %g2, 4
<== NOT EXECUTED
400382e4: 02 80 00 0d be 40038318 <msdos_format+0xf40>
<== NOT EXECUTED
400382e8: 88 08 60 ff and %g1, 0xff, %g4
<== NOT EXECUTED
if (! skip_alignment)
400382ec: 88 88 60 ff andcc %g1, 0xff, %g4
<== NOT EXECUTED
400382f0: 12 80 00 06 bne 40038308 <msdos_format+0xf30>
<== NOT EXECUTED
400382f4: c4 07 bd 68 ld [ %fp + -664 ], %g2
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
400382f8: 82 00 bf ff add %g2, -1, %g1
<== NOT EXECUTED
400382fc: 84 20 00 03 neg %g3, %g2
<== NOT EXECUTED
40038300: 82 00 40 03 add %g1, %g3, %g1
<== NOT EXECUTED
40038304: 84 08 40 02 and %g1, %g2, %g2
<== NOT EXECUTED
* (fmt_params->bytes_per_sector / FAT_DIRENTRY_SIZE);
40038308: c2 07 bd 4c ld [ %fp + -692 ], %g1
<== NOT EXECUTED
4003830c: 83 30 60 05 srl %g1, 5, %g1
<== NOT EXECUTED
40038310: 82 58 40 02 smul %g1, %g2, %g1
<== NOT EXECUTED
fmt_params->files_per_root_dir = loc_align_object (fmt_params->root_dir_sectors,
40038314: c2 27 bd 64 st %g1, [ %fp + -668 ]
<== NOT EXECUTED
if (! skip_alignment)
40038318: 80 a1 20 00 cmp %g4, 0
<== NOT EXECUTED
4003831c: 12 80 00 06 bne 40038334 <msdos_format+0xf5c>
<== NOT EXECUTED
40038320: fa 07 bd 54 ld [ %fp + -684 ], %i5
<== NOT EXECUTED
return (sectors + clustersize - 1) & ~(clustersize - 1);
40038324: 82 07 7f ff add %i5, -1, %g1
<== NOT EXECUTED
40038328: ba 20 00 03 neg %g3, %i5
<== NOT EXECUTED
4003832c: 82 00 40 03 add %g1, %g3, %g1
<== NOT EXECUTED
40038330: ba 08 40 1d and %g1, %i5, %i5
<== NOT EXECUTED
if ((rqdata != NULL) && (rqdata->media != 0)) {
40038334: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
40038338: 02 80 00 14 be 40038388 <msdos_format+0xfb0>
<== NOT EXECUTED
4003833c: fa 27 bd 54 st %i5, [ %fp + -684 ]
<== NOT EXECUTED
40038340: f8 0e 60 14 ldub [ %i1 + 0x14 ], %i4
<== NOT EXECUTED
40038344: 92 8f 20 ff andcc %i4, 0xff, %o1
<== NOT EXECUTED
40038348: 02 80 00 11 be 4003838c <msdos_format+0xfb4>
<== NOT EXECUTED
4003834c: 82 10 3f f8 mov -8, %g1
<== NOT EXECUTED
const char valid_media_codes[] =
40038350: 03 10 02 07 sethi %hi(0x40081c00), %g1
<== NOT EXECUTED
40038354: c4 18 61 28 ldd [ %g1 + 0x128 ], %g2 ! 40081d28 <__func__.8659+0x5e8>
<== NOT EXECUTED
40038358: 88 10 61 28 or %g1, 0x128, %g4
<== NOT EXECUTED
4003835c: c2 09 20 08 ldub [ %g4 + 8 ], %g1
<== NOT EXECUTED
40038360: c4 3f be 00 std %g2, [ %fp + -512 ]
<== NOT EXECUTED
if (NULL==memchr(valid_media_codes,
40038364: 94 10 20 09 mov 9, %o2
<== NOT EXECUTED
const char valid_media_codes[] =
40038368: c2 2f be 08 stb %g1, [ %fp + -504 ]
<== NOT EXECUTED
if (NULL==memchr(valid_media_codes,
4003836c: 40 00 a2 a8 call 40060e0c <memchr>
<== NOT EXECUTED
40038370: 90 07 be 00 add %fp, -512, %o0
<== NOT EXECUTED
40038374: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40038378: 02 bf fe 1f be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
4003837c: 01 00 00 00 nop
<== NOT EXECUTED
fmt_params->media_code = rqdata->media;
40038380: 10 bf fc 4b b 400374ac <msdos_format+0xd4>
<== NOT EXECUTED
40038384: f8 2f bd 7d stb %i4, [ %fp + -643 ]
<== NOT EXECUTED
fmt_params->media_code = FAT_BR_MEDIA_FIXED;
40038388: 82 10 3f f8 mov -8, %g1
<== NOT EXECUTED
4003838c: 10 bf fc 48 b 400374ac <msdos_format+0xd4>
<== NOT EXECUTED
40038390: c2 2f bd 7d stb %g1, [ %fp + -643 ]
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_FAT32(mbr ,fmt_params->sectors_per_fat);
40038394: b9 30 60 10 srl %g1, 0x10, %i4
<== NOT EXECUTED
40038398: bb 30 60 18 srl %g1, 0x18, %i5
<== NOT EXECUTED
4003839c: c2 2f be 24 stb %g1, [ %fp + -476 ]
<== NOT EXECUTED
FAT_SET_BR_FAT32_BOOTSIG(mbr ,FAT_BR_FAT32_BOOTSIG_VAL);
400383a0: 82 10 20 29 mov 0x29, %g1
<== NOT EXECUTED
400383a4: c2 2f be 42 stb %g1, [ %fp + -446 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FAT32_FILSYSTYPE(mbr),
400383a8: 03 00 00 11 sethi %hi(0x4400), %g1
<== NOT EXECUTED
400383ac: 82 10 62 41 or %g1, 0x241, %g1 ! 4641 <_Configuration_Interrupt_stack_size+0x3641>
<== NOT EXECUTED
400383b0: c2 37 be 52 sth %g1, [ %fp + -430 ]
<== NOT EXECUTED
400383b4: 03 00 00 15 sethi %hi(0x5400), %g1
<== NOT EXECUTED
400383b8: 82 10 60 33 or %g1, 0x33, %g1 ! 5433 <_Configuration_Interrupt_stack_size+0x4433>
<== NOT EXECUTED
FAT_SET_BR_FAT32_BK_BOOT_SECTOR(mbr, fmt_params->mbr_copy_sec ); /* Put MBR copy to rsrvd sec */
400383bc: c4 07 bd 74 ld [ %fp + -652 ], %g2
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FAT32_FILSYSTYPE(mbr),
400383c0: c2 37 be 54 sth %g1, [ %fp + -428 ]
<== NOT EXECUTED
400383c4: 03 00 00 0c sethi %hi(0x3000), %g1
<== NOT EXECUTED
400383c8: 82 10 62 20 or %g1, 0x220, %g1 ! 3220 <_Configuration_Interrupt_stack_size+0x2220>
<== NOT EXECUTED
FAT_SET_BR_FAT32_BK_BOOT_SECTOR(mbr, fmt_params->mbr_copy_sec ); /* Put MBR copy to rsrvd sec */
400383cc: 89 30 a0 08 srl %g2, 8, %g4
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FAT32_FILSYSTYPE(mbr),
400383d0: c2 37 be 56 sth %g1, [ %fp + -426 ]
<== NOT EXECUTED
400383d4: 03 00 00 08 sethi %hi(0x2000), %g1
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_FAT32(mbr ,fmt_params->sectors_per_fat);
400383d8: c6 2f be 25 stb %g3, [ %fp + -475 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FAT32_FILSYSTYPE(mbr),
400383dc: 82 10 60 20 or %g1, 0x20, %g1
<== NOT EXECUTED
FAT_SET_BR_SECTORS_PER_FAT32(mbr ,fmt_params->sectors_per_fat);
400383e0: f8 2f be 26 stb %i4, [ %fp + -474 ]
<== NOT EXECUTED
400383e4: fa 2f be 27 stb %i5, [ %fp + -473 ]
<== NOT EXECUTED
FAT_SET_BR_FAT32_ROOT_CLUSTER(mbr , 2); /* put root dir to cluster 2 */
400383e8: da 2f be 2c stb %o5, [ %fp + -468 ]
<== NOT EXECUTED
FAT_SET_BR_FAT32_FS_INFO_SECTOR(mbr, 1); /* Put fsinfo to rsrvd sec 1*/
400383ec: de 2f be 30 stb %o7, [ %fp + -464 ]
<== NOT EXECUTED
FAT_SET_BR_FAT32_BK_BOOT_SECTOR(mbr, fmt_params->mbr_copy_sec ); /* Put MBR copy to rsrvd sec */
400383f0: c4 2f be 32 stb %g2, [ %fp + -462 ]
<== NOT EXECUTED
400383f4: c8 2f be 33 stb %g4, [ %fp + -461 ]
<== NOT EXECUTED
memset(FAT_GET_ADDR_BR_FAT32_RESERVED(mbr),0,FAT_BR_FAT32_RESERVED_SIZE);
400383f8: c0 27 be 34 clr [ %fp + -460 ]
<== NOT EXECUTED
400383fc: c0 27 be 38 clr [ %fp + -456 ]
<== NOT EXECUTED
40038400: c0 27 be 3c clr [ %fp + -452 ]
<== NOT EXECUTED
memset(FAT_GET_ADDR_BR_FAT32_VOLLAB(mbr) ,0,FAT_BR_VOLLAB_SIZE);
40038404: c0 2f be 47 clrb [ %fp + -441 ]
<== NOT EXECUTED
40038408: c0 2f be 48 clrb [ %fp + -440 ]
<== NOT EXECUTED
4003840c: c0 2f be 49 clrb [ %fp + -439 ]
<== NOT EXECUTED
40038410: c0 2f be 4a clrb [ %fp + -438 ]
<== NOT EXECUTED
40038414: c0 2f be 4b clrb [ %fp + -437 ]
<== NOT EXECUTED
40038418: c0 2f be 4c clrb [ %fp + -436 ]
<== NOT EXECUTED
4003841c: c0 2f be 4d clrb [ %fp + -435 ]
<== NOT EXECUTED
40038420: c0 2f be 4e clrb [ %fp + -434 ]
<== NOT EXECUTED
40038424: c0 2f be 4f clrb [ %fp + -433 ]
<== NOT EXECUTED
40038428: c0 2f be 50 clrb [ %fp + -432 ]
<== NOT EXECUTED
4003842c: c0 2f be 51 clrb [ %fp + -431 ]
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FAT32_FILSYSTYPE(mbr),
40038430: 10 bf fc dd b 400377a4 <msdos_format+0x3cc>
<== NOT EXECUTED
40038434: c2 37 be 58 sth %g1, [ %fp + -424 ]
<== NOT EXECUTED
*volid_ptr = rand();
40038438: 40 00 a9 5a call 400629a0 <rand>
<== NOT EXECUTED
4003843c: 01 00 00 00 nop
<== NOT EXECUTED
40038440: 10 bf fc 65 b 400375d4 <msdos_format+0x1fc>
<== NOT EXECUTED
40038444: d0 27 bd 98 st %o0, [ %fp + -616 ]
<== NOT EXECUTED
ret_val = -1;
40038448: 10 bf fc ec b 400377f8 <msdos_format+0x420>
<== NOT EXECUTED
4003844c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
uint32_t gigs = (total_size + ONE_GB) / ONE_GB;
40038450: 84 10 20 00 clr %g2
<== NOT EXECUTED
40038454: 07 10 00 00 sethi %hi(0x40000000), %g3
<== NOT EXECUTED
fmt_params->fattype = FAT_FAT32;
40038458: c2 2f bd 7e stb %g1, [ %fp + -642 ]
<== NOT EXECUTED
uint32_t gigs = (total_size + ONE_GB) / ONE_GB;
4003845c: b6 87 40 03 addcc %i5, %g3, %i3
<== NOT EXECUTED
for (b = 31; b > 0; b--)
40038460: 82 10 20 1f mov 0x1f, %g1
<== NOT EXECUTED
uint32_t gigs = (total_size + ONE_GB) / ONE_GB;
40038464: b4 47 00 02 addx %i4, %g2, %i2
<== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
40038468: 88 10 20 01 mov 1, %g4
<== NOT EXECUTED
uint32_t gigs = (total_size + ONE_GB) / ONE_GB;
4003846c: 87 2e a0 02 sll %i2, 2, %g3
<== NOT EXECUTED
40038470: 85 36 e0 1e srl %i3, 0x1e, %g2
<== NOT EXECUTED
40038474: 10 80 00 04 b 40038484 <msdos_format+0x10ac>
<== NOT EXECUTED
40038478: 86 10 c0 02 or %g3, %g2, %g3
<== NOT EXECUTED
for (b = 31; b > 0; b--)
4003847c: 02 80 00 16 be 400384d4 <msdos_format+0x10fc>
<== NOT EXECUTED
40038480: 84 10 20 01 mov 1, %g2
<== NOT EXECUTED
if ((gigs & (1 << b)) != 0)
40038484: 85 29 00 01 sll %g4, %g1, %g2
<== NOT EXECUTED
40038488: 80 88 c0 02 btst %g3, %g2
<== NOT EXECUTED
4003848c: 02 bf ff fc be 4003847c <msdos_format+0x10a4>
<== NOT EXECUTED
40038490: 82 80 7f ff addcc %g1, -1, %g1
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 1 << b;
40038494: 10 bf fd 23 b 40037920 <msdos_format+0x548>
<== NOT EXECUTED
40038498: c4 27 bd 58 st %g2, [ %fp + -680 ]
<== NOT EXECUTED
for (i = 0;
4003849c: 10 bf fe 42 b 40037da4 <msdos_format+0x9cc>
<== NOT EXECUTED
400384a0: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
memcpy(FAT_GET_ADDR_BR_FILSYSTYPE(mbr),
400384a4: 10 bf fc b8 b 40037784 <msdos_format+0x3ac>
<== NOT EXECUTED
400384a8: 82 10 63 f8 or %g1, 0x3f8, %g1
<== NOT EXECUTED
errno = EINVAL;
400384ac: 40 00 91 1a call 4005c914 <__errno>
<== NOT EXECUTED
400384b0: 01 00 00 00 nop
<== NOT EXECUTED
400384b4: 82 10 20 16 mov 0x16, %g1 ! 16 <_TLS_Alignment+0x15>
<== NOT EXECUTED
400384b8: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
if ( fmt_params->totl_sector_cnt == 0 )
400384bc: c2 07 bd 50 ld [ %fp + -688 ], %g1
<== NOT EXECUTED
400384c0: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400384c4: 02 bf fd cc be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
400384c8: fa 07 bd 54 ld [ %fp + -684 ], %i5
<== NOT EXECUTED
ret_val = -1;
400384cc: 10 bf fb f8 b 400374ac <msdos_format+0xd4>
<== NOT EXECUTED
400384d0: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
fmt_params->sectors_per_cluster = 1 << b;
400384d4: 10 bf fd 13 b 40037920 <msdos_format+0x548>
<== NOT EXECUTED
400384d8: c4 27 bd 58 st %g2, [ %fp + -680 ]
<== NOT EXECUTED
if ( fmt_params->totl_sector_cnt == 0 )
400384dc: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
400384e0: 02 bf fd c5 be 40037bf4 <msdos_format+0x81c>
<== NOT EXECUTED
400384e4: c6 07 bd 58 ld [ %fp + -680 ], %g3
<== NOT EXECUTED
400384e8: 10 bf ff 81 b 400382ec <msdos_format+0xf14>
<== NOT EXECUTED
400384ec: c2 0f bd 9c ldub [ %fp + -612 ], %g1
<== NOT EXECUTED
else if ( number_of_clusters < FAT_FAT16_MAX_CLN
400384f0: 07 00 00 3f sethi %hi(0xfc00), %g3
<== NOT EXECUTED
400384f4: 86 10 e3 f4 or %g3, 0x3f4, %g3 ! fff4 <_Configuration_Interrupt_stack_size+0xeff4>
<== NOT EXECUTED
400384f8: 80 a0 c0 02 cmp %g3, %g2
<== NOT EXECUTED
400384fc: 0a bf fe fe bcs 400380f4 <msdos_format+0xd1c>
<== NOT EXECUTED
40038500: 80 a1 00 01 cmp %g4, %g1
<== NOT EXECUTED
40038504: 1a bf fd ad bcc 40037bb8 <msdos_format+0x7e0>
<== NOT EXECUTED
40038508: 86 10 20 02 mov 2, %g3
<== NOT EXECUTED
fmt_params->fattype = msdos_get_fat_type(
4003850c: 10 bf fe fb b 400380f8 <msdos_format+0xd20>
<== NOT EXECUTED
40038510: 82 10 20 04 mov 4, %g1
<== NOT EXECUTED
4004ecac <msdos_format_dirent_with_dot>:
{
4004ecac: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
for (i = MSDOS_SHORT_BASE_LEN, src_tmp = src + MSDOS_SHORT_BASE_LEN - 1;
4004ecb0: b6 10 20 08 mov 8, %i3
<== NOT EXECUTED
4004ecb4: 82 06 60 07 add %i1, 7, %g1
<== NOT EXECUTED
i > 0 && *src_tmp == ' ';
4004ecb8: c6 48 40 00 ldsb [ %g1 ], %g3
<== NOT EXECUTED
4004ecbc: 80 a0 e0 20 cmp %g3, 0x20
<== NOT EXECUTED
4004ecc0: 12 80 00 15 bne 4004ed14 <msdos_format_dirent_with_dot+0x68>
<== NOT EXECUTED
4004ecc4: 84 06 ff ff add %i3, -1, %g2
<== NOT EXECUTED
4004ecc8: b6 10 00 02 mov %g2, %i3
<== NOT EXECUTED
for (i = MSDOS_SHORT_BASE_LEN, src_tmp = src + MSDOS_SHORT_BASE_LEN - 1;
4004eccc: 80 a0 a0 00 cmp %g2, 0
<== NOT EXECUTED
4004ecd0: 12 bf ff fa bne 4004ecb8 <msdos_format_dirent_with_dot+0xc>
<== NOT EXECUTED
4004ecd4: 82 00 7f ff add %g1, -1, %g1
<== NOT EXECUTED
i > 0 && *src_tmp == ' ';
4004ecd8: c2 4e 60 0a ldsb [ %i1 + 0xa ], %g1
<== NOT EXECUTED
4004ecdc: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4004ece0: 12 80 00 3e bne 4004edd8 <msdos_format_dirent_with_dot+0x12c>
<== NOT EXECUTED
4004ece4: a0 06 20 01 add %i0, 1, %l0
<== NOT EXECUTED
4004ece8: c2 4e 60 09 ldsb [ %i1 + 9 ], %g1
<== NOT EXECUTED
4004ecec: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4004ecf0: 32 80 00 1c bne,a 4004ed60 <msdos_format_dirent_with_dot+0xb4>
<== NOT EXECUTED
4004ecf4: b4 10 20 01 mov 1, %i2
<== NOT EXECUTED
4004ecf8: c2 4e 60 08 ldsb [ %i1 + 8 ], %g1
<== NOT EXECUTED
4004ecfc: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
4004ed00: 12 80 00 19 bne 4004ed64 <msdos_format_dirent_with_dot+0xb8>
<== NOT EXECUTED
4004ed04: b4 10 20 00 clr %i2
<== NOT EXECUTED
*dst = '\0'; /* terminate string */
4004ed08: c0 2e 00 00 clrb [ %i0 ]
<== NOT EXECUTED
}
4004ed0c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004ed10: 91 e8 00 02 restore %g0, %g2, %o0
<== NOT EXECUTED
4004ed14: b8 10 20 00 clr %i4
<== NOT EXECUTED
4004ed18: b4 10 00 1b mov %i3, %i2
<== NOT EXECUTED
*dst++ = tolower((unsigned char)(*src_tmp++));
4004ed1c: 40 00 47 36 call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4004ed20: fa 0e 40 1c ldub [ %i1 + %i4 ], %i5
<== NOT EXECUTED
4004ed24: 82 0f 60 ff and %i5, 0xff, %g1
<== NOT EXECUTED
4004ed28: 90 02 00 01 add %o0, %g1, %o0
<== NOT EXECUTED
4004ed2c: c4 0a 20 01 ldub [ %o0 + 1 ], %g2
<== NOT EXECUTED
4004ed30: 84 08 a0 03 and %g2, 3, %g2
<== NOT EXECUTED
4004ed34: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
4004ed38: 22 80 00 02 be,a 4004ed40 <msdos_format_dirent_with_dot+0x94>
<== NOT EXECUTED
4004ed3c: 82 00 60 20 add %g1, 0x20, %g1
<== NOT EXECUTED
4004ed40: c2 2e 00 1c stb %g1, [ %i0 + %i4 ]
<== NOT EXECUTED
4004ed44: b8 07 20 01 inc %i4
<== NOT EXECUTED
while (i-- > 0) {
4004ed48: 82 26 80 1c sub %i2, %i4, %g1
<== NOT EXECUTED
4004ed4c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004ed50: 14 bf ff f3 bg 4004ed1c <msdos_format_dirent_with_dot+0x70>
<== NOT EXECUTED
4004ed54: 84 10 00 1b mov %i3, %g2
<== NOT EXECUTED
4004ed58: 10 bf ff e0 b 4004ecd8 <msdos_format_dirent_with_dot+0x2c>
<== NOT EXECUTED
4004ed5c: b0 06 00 1a add %i0, %i2, %i0
<== NOT EXECUTED
*dst++ = '.'; /* append dot */
4004ed60: a0 06 20 01 add %i0, 1, %l0
<== NOT EXECUTED
4004ed64: 82 10 20 2e mov 0x2e, %g1
<== NOT EXECUTED
src_tmp = src + MSDOS_SHORT_BASE_LEN;
4004ed68: b2 06 60 08 add %i1, 8, %i1
<== NOT EXECUTED
*dst++ = '.'; /* append dot */
4004ed6c: c2 2e 00 00 stb %g1, [ %i0 ]
<== NOT EXECUTED
++len; /* dot */
4004ed70: b0 00 a0 01 add %g2, 1, %i0
<== NOT EXECUTED
src_tmp = src + MSDOS_SHORT_BASE_LEN;
4004ed74: b6 10 00 1a mov %i2, %i3
<== NOT EXECUTED
4004ed78: b8 10 00 10 mov %l0, %i4
<== NOT EXECUTED
*dst++ = tolower((unsigned char)(*src_tmp++));
4004ed7c: 40 00 47 1e call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4004ed80: fa 0e 40 00 ldub [ %i1 ], %i5
<== NOT EXECUTED
4004ed84: 82 0f 60 ff and %i5, 0xff, %g1
<== NOT EXECUTED
4004ed88: 90 02 00 01 add %o0, %g1, %o0
<== NOT EXECUTED
4004ed8c: c4 0a 20 01 ldub [ %o0 + 1 ], %g2
<== NOT EXECUTED
4004ed90: 84 08 a0 03 and %g2, 3, %g2
<== NOT EXECUTED
4004ed94: b2 06 60 01 inc %i1
<== NOT EXECUTED
4004ed98: 80 a0 a0 01 cmp %g2, 1
<== NOT EXECUTED
4004ed9c: 12 80 00 03 bne 4004eda8 <msdos_format_dirent_with_dot+0xfc>
<== NOT EXECUTED
4004eda0: b8 07 20 01 inc %i4
<== NOT EXECUTED
4004eda4: 82 00 60 20 add %g1, 0x20, %g1
<== NOT EXECUTED
4004eda8: c2 2f 3f ff stb %g1, [ %i4 + -1 ]
<== NOT EXECUTED
while (i-- > 0) {
4004edac: b6 06 ff ff add %i3, -1, %i3
<== NOT EXECUTED
4004edb0: 82 06 e0 01 add %i3, 1, %g1
<== NOT EXECUTED
4004edb4: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004edb8: 14 bf ff f1 bg 4004ed7c <msdos_format_dirent_with_dot+0xd0>
<== NOT EXECUTED
4004edbc: 82 06 a0 01 add %i2, 1, %g1
<== NOT EXECUTED
4004edc0: 84 06 20 01 add %i0, 1, %g2
<== NOT EXECUTED
4004edc4: b0 04 00 01 add %l0, %g1, %i0
<== NOT EXECUTED
4004edc8: 84 00 80 1a add %g2, %i2, %g2
<== NOT EXECUTED
*dst = '\0'; /* terminate string */
4004edcc: c0 2e 00 00 clrb [ %i0 ]
<== NOT EXECUTED
}
4004edd0: 81 c7 e0 08 ret
<== NOT EXECUTED
4004edd4: 91 e8 00 02 restore %g0, %g2, %o0
<== NOT EXECUTED
*dst++ = '.'; /* append dot */
4004edd8: 82 10 20 2e mov 0x2e, %g1
<== NOT EXECUTED
src_tmp = src + MSDOS_SHORT_BASE_LEN;
4004eddc: b2 06 60 08 add %i1, 8, %i1
<== NOT EXECUTED
*dst++ = '.'; /* append dot */
4004ede0: c2 2e 00 00 stb %g1, [ %i0 ]
<== NOT EXECUTED
src_tmp = src + MSDOS_SHORT_BASE_LEN;
4004ede4: b4 10 20 02 mov 2, %i2
<== NOT EXECUTED
++len; /* dot */
4004ede8: 10 bf ff e3 b 4004ed74 <msdos_format_dirent_with_dot+0xc8>
<== NOT EXECUTED
4004edec: b0 00 a0 01 add %g2, 1, %i0
<== NOT EXECUTED
4004e218 <msdos_free_node_info>:
* Call fat-file close routine.
*/
void
msdos_free_node_info(const rtems_filesystem_location_info_t *pathloc)
{
msdos_fs_info_t *fs_info = pathloc->mt_entry->fs_info;
4004e218: c2 02 20 14 ld [ %o0 + 0x14 ], %g1
<== NOT EXECUTED
fat_file_close(&fs_info->fat, pathloc->node_access);
4004e21c: d2 02 20 08 ld [ %o0 + 8 ], %o1
<== NOT EXECUTED
4004e220: d0 00 60 08 ld [ %g1 + 8 ], %o0
<== NOT EXECUTED
4004e224: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
4004e228: 7f ff c6 38 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004e22c: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
4004f960 <msdos_get_dotdot_dir_info_cluster_num_and_offset>:
{
4004f960: 9d e3 bf 50 save %sp, -176, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = mt_entry->fs_info;
4004f964: f8 06 20 08 ld [ %i0 + 8 ], %i4
<== NOT EXECUTED
fat_file_fd_t *fat_fd = NULL;
4004f968: c0 27 bf bc clr [ %fp + -68 ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, dir_pos, &fat_fd);
4004f96c: 94 07 bf bc add %fp, -68, %o2
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4004f970: e0 07 20 c0 ld [ %i4 + 0xc0 ], %l0
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, dir_pos, &fat_fd);
4004f974: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
4004f978: 7f ff be bc call 4003f468 <fat_file_open>
<== NOT EXECUTED
4004f97c: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004f980: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004f984: 02 80 00 04 be 4004f994 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x34>
<== NOT EXECUTED
4004f988: c2 07 bf bc ld [ %fp + -68 ], %g1
<== NOT EXECUTED
}
4004f98c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004f990: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004f994: 05 00 08 00 sethi %hi(0x200000), %g2
<== NOT EXECUTED
fat_fd->cln = cln;
4004f998: f2 20 60 1c st %i1, [ %g1 + 0x1c ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004f99c: 92 10 00 01 mov %g1, %o1
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_DIRECTORY;
4004f9a0: c0 20 60 10 clr [ %g1 + 0x10 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004f9a4: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004f9a8: c4 20 60 14 st %g2, [ %g1 + 0x14 ]
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
4004f9ac: c0 20 60 34 clr [ %g1 + 0x34 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004f9b0: 7f ff c1 f8 call 40040190 <fat_file_size>
<== NOT EXECUTED
4004f9b4: f2 20 60 38 st %i1, [ %g1 + 0x38 ]
<== NOT EXECUTED
if (rc != RC_OK)
4004f9b8: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004f9bc: 12 80 00 8a bne 4004fbe4 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x284>
<== NOT EXECUTED
4004f9c0: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
memset(dot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f9c4: ba 07 bf c0 add %fp, -64, %i5
<== NOT EXECUTED
msdos_long_to_short(
4004f9c8: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
4004f9cc: 94 10 20 01 mov 1, %o2
<== NOT EXECUTED
4004f9d0: 33 10 01 fc sethi %hi(0x4007f000), %i1
<== NOT EXECUTED
memset(dot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f9d4: c0 27 bf c0 clr [ %fp + -64 ]
<== NOT EXECUTED
msdos_long_to_short(
4004f9d8: 92 16 61 e0 or %i1, 0x1e0, %o1
<== NOT EXECUTED
memset(dot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f9dc: c0 27 bf c4 clr [ %fp + -60 ]
<== NOT EXECUTED
msdos_long_to_short(
4004f9e0: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
memset(dot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004f9e4: c0 27 bf c8 clr [ %fp + -56 ]
<== NOT EXECUTED
4004f9e8: c0 27 bf cc clr [ %fp + -52 ]
<== NOT EXECUTED
4004f9ec: c0 27 bf d0 clr [ %fp + -48 ]
<== NOT EXECUTED
4004f9f0: c0 27 bf d4 clr [ %fp + -44 ]
<== NOT EXECUTED
4004f9f4: c0 27 bf d8 clr [ %fp + -40 ]
<== NOT EXECUTED
msdos_long_to_short(
4004f9f8: 7f ff fa 97 call 4004e454 <msdos_long_to_short>
<== NOT EXECUTED
4004f9fc: c0 27 bf dc clr [ %fp + -36 ]
<== NOT EXECUTED
rc = msdos_find_name_in_fat_file(mt_entry, fat_fd, false, (const uint8_t*)".", 1,
4004fa00: fa 23 a0 60 st %i5, [ %sp + 0x60 ]
<== NOT EXECUTED
4004fa04: 9a 10 20 01 mov 1, %o5
<== NOT EXECUTED
4004fa08: f4 23 a0 5c st %i2, [ %sp + 0x5c ]
<== NOT EXECUTED
4004fa0c: 98 10 20 01 mov 1, %o4
<== NOT EXECUTED
4004fa10: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
4004fa14: 96 16 61 e0 or %i1, 0x1e0, %o3
<== NOT EXECUTED
4004fa18: 94 10 20 00 clr %o2
<== NOT EXECUTED
4004fa1c: 7f ff fc f5 call 4004edf0 <msdos_find_name_in_fat_file>
<== NOT EXECUTED
4004fa20: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fa24: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fa28: 12 80 00 6f bne 4004fbe4 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x284>
<== NOT EXECUTED
4004fa2c: 98 10 20 0b mov 0xb, %o4
<== NOT EXECUTED
memset(dotdot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fa30: ba 07 bf e0 add %fp, -32, %i5
<== NOT EXECUTED
msdos_long_to_short(
4004fa34: 96 10 00 1d mov %i5, %o3
<== NOT EXECUTED
4004fa38: 94 10 20 02 mov 2, %o2
<== NOT EXECUTED
4004fa3c: 33 10 01 f3 sethi %hi(0x4007cc00), %i1
<== NOT EXECUTED
memset(dotdot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fa40: c0 27 bf e0 clr [ %fp + -32 ]
<== NOT EXECUTED
msdos_long_to_short(
4004fa44: 92 16 63 48 or %i1, 0x348, %o1
<== NOT EXECUTED
memset(dotdot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fa48: c0 27 bf e4 clr [ %fp + -28 ]
<== NOT EXECUTED
msdos_long_to_short(
4004fa4c: 90 10 00 10 mov %l0, %o0
<== NOT EXECUTED
memset(dotdot_node, 0, MSDOS_DIRECTORY_ENTRY_STRUCT_SIZE);
4004fa50: c0 27 bf e8 clr [ %fp + -24 ]
<== NOT EXECUTED
4004fa54: c0 27 bf ec clr [ %fp + -20 ]
<== NOT EXECUTED
4004fa58: c0 27 bf f0 clr [ %fp + -16 ]
<== NOT EXECUTED
4004fa5c: c0 27 bf f4 clr [ %fp + -12 ]
<== NOT EXECUTED
4004fa60: c0 27 bf f8 clr [ %fp + -8 ]
<== NOT EXECUTED
msdos_long_to_short(
4004fa64: 7f ff fa 7c call 4004e454 <msdos_long_to_short>
<== NOT EXECUTED
4004fa68: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
rc = msdos_find_name_in_fat_file(mt_entry, fat_fd, false, (const uint8_t*)"..", 2,
4004fa6c: fa 23 a0 60 st %i5, [ %sp + 0x60 ]
<== NOT EXECUTED
4004fa70: 9a 10 20 01 mov 1, %o5
<== NOT EXECUTED
4004fa74: f4 23 a0 5c st %i2, [ %sp + 0x5c ]
<== NOT EXECUTED
4004fa78: 98 10 20 02 mov 2, %o4
<== NOT EXECUTED
4004fa7c: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
4004fa80: 96 16 63 48 or %i1, 0x348, %o3
<== NOT EXECUTED
4004fa84: 94 10 20 00 clr %o2
<== NOT EXECUTED
4004fa88: 7f ff fc da call 4004edf0 <msdos_find_name_in_fat_file>
<== NOT EXECUTED
4004fa8c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fa90: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fa94: 12 80 00 54 bne 4004fbe4 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x284>
<== NOT EXECUTED
4004fa98: c4 17 bf da lduh [ %fp + -38 ], %g2
<== NOT EXECUTED
cl4find = MSDOS_EXTRACT_CLUSTER_NUM(dot_node);
4004fa9c: c2 17 bf d4 lduh [ %fp + -44 ], %g1
<== NOT EXECUTED
4004faa0: b3 28 a0 08 sll %g2, 8, %i1
<== NOT EXECUTED
4004faa4: a1 28 60 08 sll %g1, 8, %l0
<== NOT EXECUTED
4004faa8: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4004faac: 83 30 60 08 srl %g1, 8, %g1
<== NOT EXECUTED
rc = fat_file_close(&fs_info->fat, fat_fd);
4004fab0: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
cl4find = MSDOS_EXTRACT_CLUSTER_NUM(dot_node);
4004fab4: b2 16 40 02 or %i1, %g2, %i1
<== NOT EXECUTED
4004fab8: a0 14 00 01 or %l0, %g1, %l0
<== NOT EXECUTED
rc = fat_file_close(&fs_info->fat, fat_fd);
4004fabc: 7f ff c0 13 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fac0: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4004fac4: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fac8: 12 bf ff b1 bne 4004f98c <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x2c>
<== NOT EXECUTED
4004facc: c4 17 bf fa lduh [ %fp + -6 ], %g2
<== NOT EXECUTED
if ( (MSDOS_EXTRACT_CLUSTER_NUM(dotdot_node)) == 0)
4004fad0: c6 17 bf f4 lduh [ %fp + -12 ], %g3
<== NOT EXECUTED
4004fad4: 83 28 a0 08 sll %g2, 8, %g1
<== NOT EXECUTED
4004fad8: 89 30 a0 08 srl %g2, 8, %g4
<== NOT EXECUTED
4004fadc: 85 28 e0 08 sll %g3, 8, %g2
<== NOT EXECUTED
4004fae0: 82 10 40 04 or %g1, %g4, %g1
<== NOT EXECUTED
4004fae4: 87 30 e0 08 srl %g3, 8, %g3
<== NOT EXECUTED
4004fae8: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
4004faec: 84 10 80 03 or %g2, %g3, %g2
<== NOT EXECUTED
4004faf0: 83 30 60 10 srl %g1, 0x10, %g1
<== NOT EXECUTED
4004faf4: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
4004faf8: 80 90 80 01 orcc %g2, %g1, %g0
<== NOT EXECUTED
4004fafc: 12 80 00 08 bne 4004fb1c <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x1bc>
<== NOT EXECUTED
4004fb00: 94 07 bf bc add %fp, -68, %o2
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004fb04: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4004fb08: c0 26 a0 04 clr [ %i2 + 4 ]
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004fb0c: c2 26 a0 08 st %g1, [ %i2 + 8 ]
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004fb10: c2 26 a0 0c st %g1, [ %i2 + 0xc ]
<== NOT EXECUTED
dir_pos->sname.cln = FAT_ROOTDIR_CLUSTER_NUM;
4004fb14: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4004fb18: c2 26 80 00 st %g1, [ %i2 ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, dir_pos, &fat_fd);
4004fb1c: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
4004fb20: 7f ff be 52 call 4003f468 <fat_file_open>
<== NOT EXECUTED
4004fb24: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
4004fb28: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
4004fb2c: 12 bf ff 98 bne 4004f98c <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x2c>
<== NOT EXECUTED
4004fb30: c2 17 bf fa lduh [ %fp + -6 ], %g1
<== NOT EXECUTED
if ((MSDOS_EXTRACT_CLUSTER_NUM(dotdot_node)) == 0)
4004fb34: c6 17 bf f4 lduh [ %fp + -12 ], %g3
<== NOT EXECUTED
4004fb38: 85 28 60 08 sll %g1, 8, %g2
<== NOT EXECUTED
4004fb3c: 89 30 60 08 srl %g1, 8, %g4
<== NOT EXECUTED
4004fb40: 83 28 e0 08 sll %g3, 8, %g1
<== NOT EXECUTED
4004fb44: 87 30 e0 08 srl %g3, 8, %g3
<== NOT EXECUTED
4004fb48: 84 10 80 04 or %g2, %g4, %g2
<== NOT EXECUTED
4004fb4c: 82 10 40 03 or %g1, %g3, %g1
<== NOT EXECUTED
4004fb50: 85 28 a0 10 sll %g2, 0x10, %g2
<== NOT EXECUTED
4004fb54: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
4004fb58: 85 30 a0 10 srl %g2, 0x10, %g2
<== NOT EXECUTED
4004fb5c: 82 90 40 02 orcc %g1, %g2, %g1
<== NOT EXECUTED
4004fb60: 12 80 00 27 bne 4004fbfc <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x29c>
<== NOT EXECUTED
4004fb64: c6 07 bf bc ld [ %fp + -68 ], %g3
<== NOT EXECUTED
fat_fd->cln = fs_info->fat.vol.rdir_cl;
4004fb68: c2 07 20 44 ld [ %i4 + 0x44 ], %g1
<== NOT EXECUTED
4004fb6c: c2 20 e0 1c st %g1, [ %g3 + 0x1c ]
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004fb70: 05 00 08 00 sethi %hi(0x200000), %g2
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_DIRECTORY;
4004fb74: c0 20 e0 10 clr [ %g3 + 0x10 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004fb78: 92 10 00 03 mov %g3, %o1
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
4004fb7c: c4 20 e0 14 st %g2, [ %g3 + 0x14 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004fb80: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
4004fb84: c0 20 e0 34 clr [ %g3 + 0x34 ]
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
4004fb88: 7f ff c1 82 call 40040190 <fat_file_size>
<== NOT EXECUTED
4004fb8c: c2 20 e0 38 st %g1, [ %g3 + 0x38 ]
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004fb90: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
if (rc != RC_OK)
4004fb94: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004fb98: 12 80 00 1b bne 4004fc04 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x2a4>
<== NOT EXECUTED
4004fb9c: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
cl4find = MSDOS_EXTRACT_CLUSTER_NUM(dot_node);
4004fba0: 85 2e 60 10 sll %i1, 0x10, %g2
<== NOT EXECUTED
4004fba4: 85 30 a0 10 srl %g2, 0x10, %g2
<== NOT EXECUTED
4004fba8: 95 2c 20 10 sll %l0, 0x10, %o2
<== NOT EXECUTED
rc = msdos_find_node_by_cluster_num_in_fat_file(mt_entry, fat_fd, cl4find,
4004fbac: 98 10 00 1b mov %i3, %o4
<== NOT EXECUTED
4004fbb0: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4004fbb4: 94 12 80 02 or %o2, %g2, %o2
<== NOT EXECUTED
4004fbb8: 7f ff ff 0b call 4004f7e4 <msdos_find_node_by_cluster_num_in_fat_file>
<== NOT EXECUTED
4004fbbc: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004fbc0: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
rc = msdos_find_node_by_cluster_num_in_fat_file(mt_entry, fat_fd, cl4find,
4004fbc4: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
if (rc != RC_OK)
4004fbc8: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
4004fbcc: 12 80 00 12 bne 4004fc14 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x2b4>
<== NOT EXECUTED
4004fbd0: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
rc = fat_file_close(&fs_info->fat, fat_fd);
4004fbd4: 7f ff bf cd call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fbd8: 01 00 00 00 nop
<== NOT EXECUTED
return rc;
4004fbdc: 10 bf ff 6c b 4004f98c <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x2c>
<== NOT EXECUTED
4004fbe0: ba 10 00 08 mov %o0, %i5
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004fbe4: d2 07 bf bc ld [ %fp + -68 ], %o1
<== NOT EXECUTED
4004fbe8: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
4004fbec: 7f ff bf c7 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fbf0: b0 10 00 1d mov %i5, %i0
<== NOT EXECUTED
}
4004fbf4: 81 c7 e0 08 ret
<== NOT EXECUTED
4004fbf8: 81 e8 00 00 restore
<== NOT EXECUTED
fat_fd->cln = MSDOS_EXTRACT_CLUSTER_NUM(dotdot_node);
4004fbfc: 10 bf ff dd b 4004fb70 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x210>
<== NOT EXECUTED
4004fc00: c2 20 e0 1c st %g1, [ %g3 + 0x1c ]
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004fc04: 7f ff bf c1 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fc08: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
return rc;
4004fc0c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004fc10: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004fc14: 7f ff bf bd call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004fc18: b0 10 00 1d mov %i5, %i0
<== NOT EXECUTED
return rc;
4004fc1c: 30 bf ff f6 b,a 4004fbf4 <msdos_get_dotdot_dir_info_cluster_num_and_offset+0x294>
<== NOT EXECUTED
4004fc20 <msdos_get_name_node>:
{
4004fc20: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
4004fc24: e0 07 a0 5c ld [ %fp + 0x5c ], %l0
<== NOT EXECUTED
rc = msdos_find_name_in_fat_file(parent_loc->mt_entry, fat_fd,
4004fc28: e0 23 a0 60 st %l0, [ %sp + 0x60 ]
<== NOT EXECUTED
4004fc2c: 9a 10 00 1c mov %i4, %o5
<== NOT EXECUTED
4004fc30: fa 23 a0 5c st %i5, [ %sp + 0x5c ]
<== NOT EXECUTED
4004fc34: 98 10 00 1b mov %i3, %o4
<== NOT EXECUTED
4004fc38: d2 06 20 08 ld [ %i0 + 8 ], %o1
<== NOT EXECUTED
4004fc3c: d0 06 20 14 ld [ %i0 + 0x14 ], %o0
<== NOT EXECUTED
4004fc40: 96 10 00 1a mov %i2, %o3
<== NOT EXECUTED
4004fc44: 7f ff fc 6b call 4004edf0 <msdos_find_name_in_fat_file>
<== NOT EXECUTED
4004fc48: 94 10 00 19 mov %i1, %o2
<== NOT EXECUTED
if ((rc != RC_OK) && (rc != MSDOS_NAME_NOT_FOUND_ERR))
4004fc4c: 80 a0 00 08 cmp %g0, %o0
<== NOT EXECUTED
4004fc50: 03 00 00 1f sethi %hi(0x7c00), %g1
<== NOT EXECUTED
4004fc54: 86 40 20 00 addx %g0, 0, %g3
<== NOT EXECUTED
4004fc58: 82 10 61 01 or %g1, 0x101, %g1
<== NOT EXECUTED
4004fc5c: 84 1a 00 01 xor %o0, %g1, %g2
<== NOT EXECUTED
4004fc60: 80 a0 00 02 cmp %g0, %g2
<== NOT EXECUTED
4004fc64: 84 40 20 00 addx %g0, 0, %g2
<== NOT EXECUTED
if (!create_node)
4004fc68: 80 88 c0 02 btst %g3, %g2
<== NOT EXECUTED
4004fc6c: 12 80 00 05 bne 4004fc80 <msdos_get_name_node+0x60>
<== NOT EXECUTED
4004fc70: b8 10 00 08 mov %o0, %i4
<== NOT EXECUTED
4004fc74: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
4004fc78: 02 80 00 04 be 4004fc88 <msdos_get_name_node+0x68>
<== NOT EXECUTED
4004fc7c: 80 a2 00 01 cmp %o0, %g1
<== NOT EXECUTED
}
4004fc80: 81 c7 e0 08 ret
<== NOT EXECUTED
4004fc84: 91 e8 00 1c restore %g0, %i4, %o0
<== NOT EXECUTED
if (rc == MSDOS_NAME_NOT_FOUND_ERR)
4004fc88: 02 bf ff fe be 4004fc80 <msdos_get_name_node+0x60>
<== NOT EXECUTED
4004fc8c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
if (rc == RC_OK)
4004fc90: 12 bf ff fc bne 4004fc80 <msdos_get_name_node+0x60>
<== NOT EXECUTED
4004fc94: 94 10 20 02 mov 2, %o2
<== NOT EXECUTED
if (strncmp(name, "..", 2) == 0)
4004fc98: 90 10 00 1a mov %i2, %o0
<== NOT EXECUTED
4004fc9c: 13 10 01 f3 sethi %hi(0x4007cc00), %o1
<== NOT EXECUTED
4004fca0: 40 00 52 f8 call 40064880 <strncmp>
<== NOT EXECUTED
4004fca4: 92 12 63 48 or %o1, 0x348, %o1 ! 4007cf48 <rtems_filesystem_default_pathconf+0x30>
<== NOT EXECUTED
4004fca8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004fcac: 12 bf ff f5 bne 4004fc80 <msdos_get_name_node+0x60>
<== NOT EXECUTED
4004fcb0: 01 00 00 00 nop
<== NOT EXECUTED
dotdot_cln = MSDOS_EXTRACT_CLUSTER_NUM((name_dir_entry));
4004fcb4: c2 14 20 1a lduh [ %l0 + 0x1a ], %g1
<== NOT EXECUTED
4004fcb8: c4 14 20 14 lduh [ %l0 + 0x14 ], %g2
<== NOT EXECUTED
4004fcbc: b3 28 60 08 sll %g1, 8, %i1
<== NOT EXECUTED
4004fcc0: 87 30 60 08 srl %g1, 8, %g3
<== NOT EXECUTED
4004fcc4: 83 28 a0 08 sll %g2, 8, %g1
<== NOT EXECUTED
4004fcc8: b2 16 40 03 or %i1, %g3, %i1
<== NOT EXECUTED
4004fccc: 85 30 a0 08 srl %g2, 8, %g2
<== NOT EXECUTED
4004fcd0: b3 2e 60 10 sll %i1, 0x10, %i1
<== NOT EXECUTED
4004fcd4: 82 10 40 02 or %g1, %g2, %g1
<== NOT EXECUTED
4004fcd8: b3 36 60 10 srl %i1, 0x10, %i1
<== NOT EXECUTED
4004fcdc: 83 28 60 10 sll %g1, 0x10, %g1
<== NOT EXECUTED
if (dotdot_cln == 0)
4004fce0: b2 90 40 19 orcc %g1, %i1, %i1
<== NOT EXECUTED
4004fce4: 12 80 00 08 bne 4004fd04 <msdos_get_name_node+0xe4>
<== NOT EXECUTED
4004fce8: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4004fcec: c0 27 60 04 clr [ %i5 + 4 ]
<== NOT EXECUTED
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4004fcf0: c2 27 60 08 st %g1, [ %i5 + 8 ]
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
4004fcf4: c2 27 60 0c st %g1, [ %i5 + 0xc ]
<== NOT EXECUTED
dir_pos->sname.cln = FAT_ROOTDIR_CLUSTER_NUM;
4004fcf8: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4004fcfc: 10 bf ff e1 b 4004fc80 <msdos_get_name_node+0x60>
<== NOT EXECUTED
4004fd00: c2 27 40 00 st %g1, [ %i5 ]
<== NOT EXECUTED
rc =
4004fd04: f0 06 20 14 ld [ %i0 + 0x14 ], %i0
<== NOT EXECUTED
4004fd08: b6 10 00 10 mov %l0, %i3
<== NOT EXECUTED
4004fd0c: 7f ff ff 15 call 4004f960 <msdos_get_dotdot_dir_info_cluster_num_and_offset>
<== NOT EXECUTED
4004fd10: 95 e8 00 1d restore %g0, %i5, %o2
<== NOT EXECUTED
4004ec8c <msdos_get_utf16_string_from_long_entry>:
if (buf_size >= MSDOS_LFN_ENTRY_SIZE) {
4004ec8c: 80 a2 a0 19 cmp %o2, 0x19
<== NOT EXECUTED
4004ec90: 08 80 00 05 bleu 4004eca4 <msdos_get_utf16_string_from_long_entry+0x18>
<== NOT EXECUTED
4004ec94: 94 10 00 0b mov %o3, %o2
<== NOT EXECUTED
4004ec98: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
4004ec9c: 7f ff fd c1 call 4004e3a0 <msdos_get_utf16_string_from_long_entry.part.2>
<== NOT EXECUTED
4004eca0: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
}
4004eca4: 81 c3 e0 08 retl
<== NOT EXECUTED
4004eca8: 90 10 20 0c mov 0xc, %o0
<== NOT EXECUTED
40038600 <msdos_initialize_support>:
const rtems_filesystem_operations_table *op_table,
const rtems_filesystem_file_handlers_r *file_handlers,
const rtems_filesystem_file_handlers_r *directory_handlers,
rtems_dosfs_convert_control *converter
)
{
40038600: 9d e3 bf 88 save %sp, -120, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = NULL;
fat_file_fd_t *fat_fd = NULL;
fat_dir_pos_t root_pos;
uint32_t cl_buf_size;
fs_info = (msdos_fs_info_t *)calloc(1, sizeof(msdos_fs_info_t));
40038604: 92 10 20 c4 mov 0xc4, %o1
<== NOT EXECUTED
fat_file_fd_t *fat_fd = NULL;
40038608: c0 27 bf ec clr [ %fp + -20 ]
<== NOT EXECUTED
fs_info = (msdos_fs_info_t *)calloc(1, sizeof(msdos_fs_info_t));
4003860c: 7f ff 47 7d call 4000a400 <calloc>
<== NOT EXECUTED
40038610: 90 10 20 01 mov 1, %o0
<== NOT EXECUTED
if (!fs_info)
40038614: ba 92 20 00 orcc %o0, 0, %i5
<== NOT EXECUTED
40038618: 02 80 00 52 be 40038760 <msdos_initialize_support+0x160>
<== NOT EXECUTED
4003861c: 01 00 00 00 nop
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENOMEM);
temp_mt_entry->fs_info = fs_info;
fs_info->converter = converter;
40038620: f8 27 60 c0 st %i4, [ %i5 + 0xc0 ]
<== NOT EXECUTED
temp_mt_entry->fs_info = fs_info;
40038624: fa 26 20 08 st %i5, [ %i0 + 8 ]
<== NOT EXECUTED
rc = fat_init_volume_info(&fs_info->fat, temp_mt_entry->dev);
40038628: 40 00 20 bc call 40040918 <fat_init_volume_info>
<== NOT EXECUTED
4003862c: d2 06 20 38 ld [ %i0 + 0x38 ], %o1
<== NOT EXECUTED
if (rc != RC_OK)
40038630: b8 92 20 00 orcc %o0, 0, %i4
<== NOT EXECUTED
40038634: 12 80 00 38 bne 40038714 <msdos_initialize_support+0x114>
<== NOT EXECUTED
40038638: 82 10 3f ff mov -1, %g1
<== NOT EXECUTED
{
free(fs_info);
return rc;
}
fs_info->file_handlers = file_handlers;
4003863c: f4 27 60 a0 st %i2, [ %i5 + 0xa0 ]
<== NOT EXECUTED
* open fat-file which correspondes to root directory
* (so inode number 0x00000010 is always used for root directory)
*/
fat_dir_pos_init(&root_pos);
root_pos.sname.cln = FAT_ROOTDIR_CLUSTER_NUM;
rc = fat_file_open(&fs_info->fat, &root_pos, &fat_fd);
40038640: 94 07 bf ec add %fp, -20, %o2
<== NOT EXECUTED
fs_info->directory_handlers = directory_handlers;
40038644: f6 27 60 9c st %i3, [ %i5 + 0x9c ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &root_pos, &fat_fd);
40038648: 92 07 bf f0 add %fp, -16, %o1
<== NOT EXECUTED
fat_dir_pos_t *dir_pos
)
{
dir_pos->sname.cln = 0;
dir_pos->sname.ofs = 0;
dir_pos->lname.cln = FAT_FILE_SHORT_NAME;
4003864c: c2 27 bf f8 st %g1, [ %fp + -8 ]
<== NOT EXECUTED
40038650: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
dir_pos->lname.ofs = FAT_FILE_SHORT_NAME;
40038654: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
root_pos.sname.cln = FAT_ROOTDIR_CLUSTER_NUM;
40038658: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
dir_pos->sname.ofs = 0;
4003865c: c0 27 bf f4 clr [ %fp + -12 ]
<== NOT EXECUTED
rc = fat_file_open(&fs_info->fat, &root_pos, &fat_fd);
40038660: 40 00 1b 82 call 4003f468 <fat_file_open>
<== NOT EXECUTED
40038664: c2 27 bf f0 st %g1, [ %fp + -16 ]
<== NOT EXECUTED
if (rc != RC_OK)
40038668: b8 92 20 00 orcc %o0, 0, %i4
<== NOT EXECUTED
4003866c: 12 80 00 28 bne 4003870c <msdos_initialize_support+0x10c>
<== NOT EXECUTED
40038670: f4 07 bf ec ld [ %fp + -20 ], %i2
<== NOT EXECUTED
}
/* again: unfortunately "fat-file" is just almost fat file :( */
fat_fd->fat_file_type = FAT_DIRECTORY;
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
fat_fd->cln = fs_info->fat.vol.rdir_cl;
40038674: c2 07 60 44 ld [ %i5 + 0x44 ], %g1
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
40038678: 05 00 08 00 sethi %hi(0x200000), %g2
<== NOT EXECUTED
fat_fd->fat_file_type = FAT_DIRECTORY;
4003867c: c0 26 a0 10 clr [ %i2 + 0x10 ]
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
fat_fd->map.disk_cln = fat_fd->cln;
/* if we have FAT12/16 */
if ( fat_fd->cln == 0 )
40038680: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
fat_fd->size_limit = MSDOS_MAX_DIR_LENGTH;
40038684: c4 26 a0 14 st %g2, [ %i2 + 0x14 ]
<== NOT EXECUTED
fat_fd->cln = fs_info->fat.vol.rdir_cl;
40038688: c2 26 a0 1c st %g1, [ %i2 + 0x1c ]
<== NOT EXECUTED
fat_fd->map.file_cln = 0;
4003868c: c0 26 a0 34 clr [ %i2 + 0x34 ]
<== NOT EXECUTED
if ( fat_fd->cln == 0 )
40038690: 12 80 00 25 bne 40038724 <msdos_initialize_support+0x124>
<== NOT EXECUTED
40038694: c2 26 a0 38 st %g1, [ %i2 + 0x38 ]
<== NOT EXECUTED
{
fat_fd->fat_file_size = fs_info->fat.vol.rdir_size;
40038698: c2 07 60 34 ld [ %i5 + 0x34 ], %g1
<== NOT EXECUTED
4003869c: c2 26 a0 18 st %g1, [ %i2 + 0x18 ]
<== NOT EXECUTED
cl_buf_size = (fs_info->fat.vol.bpc > fs_info->fat.vol.rdir_size) ?
400386a0: d0 07 60 08 ld [ %i5 + 8 ], %o0
<== NOT EXECUTED
400386a4: 80 a2 00 01 cmp %o0, %g1
<== NOT EXECUTED
400386a8: 2a 80 00 02 bcs,a 400386b0 <msdos_initialize_support+0xb0>
<== NOT EXECUTED
400386ac: 90 10 00 01 mov %g1, %o0
<== NOT EXECUTED
return rc;
}
cl_buf_size = fs_info->fat.vol.bpc;
}
fs_info->cl_buf = (uint8_t *)calloc(cl_buf_size, sizeof(char));
400386b0: 7f ff 47 54 call 4000a400 <calloc>
<== NOT EXECUTED
400386b4: 92 10 20 01 mov 1, %o1
<== NOT EXECUTED
if (fs_info->cl_buf == NULL)
400386b8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
400386bc: 02 80 00 22 be 40038744 <msdos_initialize_support+0x144>
<== NOT EXECUTED
400386c0: d0 27 60 bc st %o0, [ %i5 + 0xbc ]
<== NOT EXECUTED
*_mutex = _init;
400386c4: 03 10 01 f1 sethi %hi(0x4007c400), %g1
<== NOT EXECUTED
400386c8: 82 10 60 c8 or %g1, 0xc8, %g1 ! 4007c4c8 <rtems_shell_Initial_aliases+0x84>
<== NOT EXECUTED
400386cc: c0 27 60 a4 clr [ %i5 + 0xa4 ]
<== NOT EXECUTED
400386d0: c2 27 60 b4 st %g1, [ %i5 + 0xb4 ]
<== NOT EXECUTED
400386d4: c0 27 60 a8 clr [ %i5 + 0xa8 ]
<== NOT EXECUTED
}
rtems_recursive_mutex_init(&fs_info->vol_mutex,
RTEMS_FILESYSTEM_TYPE_DOSFS);
temp_mt_entry->mt_fs_root->location.node_access = fat_fd;
400386d8: c2 06 20 24 ld [ %i0 + 0x24 ], %g1
<== NOT EXECUTED
400386dc: c0 27 60 ac clr [ %i5 + 0xac ]
<== NOT EXECUTED
400386e0: c0 27 60 b0 clr [ %i5 + 0xb0 ]
<== NOT EXECUTED
400386e4: c0 27 60 b8 clr [ %i5 + 0xb8 ]
<== NOT EXECUTED
400386e8: f4 20 60 08 st %i2, [ %g1 + 8 ]
<== NOT EXECUTED
temp_mt_entry->mt_fs_root->location.handlers = directory_handlers;
400386ec: f6 20 60 10 st %i3, [ %g1 + 0x10 ]
<== NOT EXECUTED
temp_mt_entry->ops = op_table;
400386f0: f2 26 20 0c st %i1, [ %i0 + 0xc ]
<== NOT EXECUTED
return rc;
}
400386f4: 81 c7 e0 08 ret
<== NOT EXECUTED
400386f8: 91 e8 00 1c restore %g0, %i4, %o0
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
400386fc: d2 07 bf ec ld [ %fp + -20 ], %o1
<== NOT EXECUTED
40038700: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
40038704: 40 00 1d 01 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
40038708: b8 10 00 01 mov %g1, %i4
<== NOT EXECUTED
fat_shutdown_drive(&fs_info->fat);
4003870c: 40 00 22 d1 call 40041250 <fat_shutdown_drive>
<== NOT EXECUTED
40038710: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
free(fs_info);
40038714: 7f ff 4b db call 4000b680 <free>
<== NOT EXECUTED
40038718: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
}
4003871c: 81 c7 e0 08 ret
<== NOT EXECUTED
40038720: 91 e8 00 1c restore %g0, %i4, %o0
<== NOT EXECUTED
rc = fat_file_size(&fs_info->fat, fat_fd);
40038724: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
40038728: 40 00 1e 9a call 40040190 <fat_file_size>
<== NOT EXECUTED
4003872c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
40038730: 82 92 20 00 orcc %o0, 0, %g1
<== NOT EXECUTED
40038734: 12 bf ff f2 bne 400386fc <msdos_initialize_support+0xfc>
<== NOT EXECUTED
40038738: f4 07 bf ec ld [ %fp + -20 ], %i2
<== NOT EXECUTED
cl_buf_size = fs_info->fat.vol.bpc;
4003873c: 10 bf ff dd b 400386b0 <msdos_initialize_support+0xb0>
<== NOT EXECUTED
40038740: d0 07 60 08 ld [ %i5 + 8 ], %o0
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
40038744: 92 10 00 1a mov %i2, %o1
<== NOT EXECUTED
40038748: 40 00 1c f0 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4003874c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
fat_shutdown_drive(&fs_info->fat);
40038750: 40 00 22 c0 call 40041250 <fat_shutdown_drive>
<== NOT EXECUTED
40038754: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
free(fs_info);
40038758: 7f ff 4b ca call 4000b680 <free>
<== NOT EXECUTED
4003875c: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENOMEM);
40038760: 40 00 90 6d call 4005c914 <__errno>
<== NOT EXECUTED
40038764: b8 10 3f ff mov -1, %i4
<== NOT EXECUTED
40038768: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
4003876c: 10 bf ff ec b 4003871c <msdos_initialize_support+0x11c>
<== NOT EXECUTED
40038770: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
4004e420 <msdos_lfn_checksum>:
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004e420: 84 10 20 00 clr %g2
<== NOT EXECUTED
cs = 0;
4004e424: 82 10 20 00 clr %g1
<== NOT EXECUTED
4004e428: c8 0a 00 02 ldub [ %o0 + %g2 ], %g4
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004e42c: 82 08 60 ff and %g1, 0xff, %g1
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004e430: 84 00 a0 01 inc %g2
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004e434: 87 28 60 07 sll %g1, 7, %g3
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004e438: 80 a0 a0 0b cmp %g2, 0xb
<== NOT EXECUTED
cs = ((cs & 1) ? 0x80 : 0) + (cs >> 1) + name[i];
4004e43c: 83 30 60 01 srl %g1, 1, %g1
<== NOT EXECUTED
4004e440: 82 00 40 04 add %g1, %g4, %g1
<== NOT EXECUTED
for (i = 0; i < MSDOS_SHORT_NAME_LEN; ++i) {
4004e444: 12 bf ff f9 bne 4004e428 <msdos_lfn_checksum+0x8>
<== NOT EXECUTED
4004e448: 82 00 c0 01 add %g3, %g1, %g1
<== NOT EXECUTED
}
4004e44c: 81 c3 e0 08 retl
<== NOT EXECUTED
4004e450: 90 08 60 ff and %g1, 0xff, %o0
<== NOT EXECUTED
40038524 <msdos_lock>:
rtems_dosfs_convert_control *converter;
} msdos_fs_info_t;
RTEMS_INLINE_ROUTINE void msdos_fs_lock(msdos_fs_info_t *fs_info)
{
rtems_recursive_mutex_lock(&fs_info->vol_mutex);
40038524: d0 02 20 08 ld [ %o0 + 8 ], %o0
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
40038528: 90 02 20 a4 add %o0, 0xa4, %o0
<== NOT EXECUTED
4003852c: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
40038530: 7f ff 8e 69 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
40038534: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
4004e454 <msdos_long_to_short>:
{
4004e454: 9d e3 bf 90 save %sp, -112, %sp
<== NOT EXECUTED
size_t codepage_name_len = converter->buffer.size;
4004e458: c2 06 20 08 ld [ %i0 + 8 ], %g1
<== NOT EXECUTED
4004e45c: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
memset (sfn, ' ', sfn_len);
4004e460: 94 10 00 1c mov %i4, %o2
<== NOT EXECUTED
void *buffer = converter->buffer.data;
4004e464: e0 06 20 04 ld [ %i0 + 4 ], %l0
<== NOT EXECUTED
memset (sfn, ' ', sfn_len);
4004e468: 92 10 20 20 mov 0x20, %o1
<== NOT EXECUTED
4004e46c: 40 00 4b 63 call 400611f8 <memset>
<== NOT EXECUTED
4004e470: 90 10 00 1b mov %i3, %o0
<== NOT EXECUTED
if ((lfn[0] == '.') && (lfn_len == 1))
4004e474: c2 4e 40 00 ldsb [ %i1 ], %g1
<== NOT EXECUTED
4004e478: 80 a0 60 2e cmp %g1, 0x2e
<== NOT EXECUTED
4004e47c: 02 80 00 81 be 4004e680 <msdos_long_to_short+0x22c>
<== NOT EXECUTED
4004e480: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
for (i = 0; i < lfn_len; i++)
4004e484: 04 80 00 78 ble 4004e664 <msdos_long_to_short+0x210>
<== NOT EXECUTED
4004e488: 80 a0 60 20 cmp %g1, 0x20
<== NOT EXECUTED
if ((lfn[i] != ' ') && (lfn[i] != '.'))
4004e48c: 12 80 00 0c bne 4004e4bc <msdos_long_to_short+0x68>
<== NOT EXECUTED
4004e490: 82 10 20 00 clr %g1
<== NOT EXECUTED
for (i = 0; i < lfn_len; i++)
4004e494: 82 00 60 01 inc %g1
<== NOT EXECUTED
4004e498: 80 a6 80 01 cmp %i2, %g1
<== NOT EXECUTED
4004e49c: 04 80 00 74 ble 4004e66c <msdos_long_to_short+0x218>
<== NOT EXECUTED
4004e4a0: 01 00 00 00 nop
<== NOT EXECUTED
if ((lfn[i] != ' ') && (lfn[i] != '.'))
4004e4a4: c4 4e 40 01 ldsb [ %i1 + %g1 ], %g2
<== NOT EXECUTED
4004e4a8: 80 a0 a0 20 cmp %g2, 0x20
<== NOT EXECUTED
4004e4ac: 02 bf ff fa be 4004e494 <msdos_long_to_short+0x40>
<== NOT EXECUTED
4004e4b0: 80 a0 a0 2e cmp %g2, 0x2e
<== NOT EXECUTED
4004e4b4: 02 bf ff f9 be 4004e498 <msdos_long_to_short+0x44>
<== NOT EXECUTED
4004e4b8: 82 00 60 01 inc %g1
<== NOT EXECUTED
eno = (*converter->handler->utf8_to_codepage) (
4004e4bc: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
4004e4c0: c2 00 40 00 ld [ %g1 ], %g1
<== NOT EXECUTED
4004e4c4: 98 07 bf fc add %fp, -4, %o4
<== NOT EXECUTED
4004e4c8: 96 10 00 10 mov %l0, %o3
<== NOT EXECUTED
4004e4cc: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004e4d0: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004e4d4: 9f c0 40 00 call %g1
<== NOT EXECUTED
4004e4d8: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (eno == EINVAL)
4004e4dc: 80 a2 20 16 cmp %o0, 0x16
<== NOT EXECUTED
4004e4e0: 02 80 00 52 be 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e4e4: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
while (*name && (count < name_len))
4004e4e8: fa 0c 00 00 ldub [ %l0 ], %i5
<== NOT EXECUTED
type = msdos_name_type (
4004e4ec: e6 07 bf fc ld [ %fp + -4 ], %l3
<== NOT EXECUTED
while (*name && (count < name_len))
4004e4f0: 93 2f 60 18 sll %i5, 0x18, %o1
<== NOT EXECUTED
4004e4f4: 80 a0 00 09 cmp %g0, %o1
<== NOT EXECUTED
4004e4f8: 83 3c e0 1f sra %l3, 0x1f, %g1
<== NOT EXECUTED
4004e4fc: 84 40 20 00 addx %g0, 0, %g2
<== NOT EXECUTED
4004e500: 82 20 40 13 sub %g1, %l3, %g1
<== NOT EXECUTED
4004e504: 83 30 60 1f srl %g1, 0x1f, %g1
<== NOT EXECUTED
4004e508: 82 08 80 01 and %g2, %g1, %g1
<== NOT EXECUTED
4004e50c: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4004e510: 02 80 00 6a be 4004e6b8 <msdos_long_to_short+0x264>
<== NOT EXECUTED
4004e514: a8 10 00 01 mov %g1, %l4
<== NOT EXECUTED
(strchr("$%'-_@~`!(){}^#&", ch) != NULL) || (unsigned char) ch > 127)
4004e518: 2b 10 02 17 sethi %hi(0x40085c00), %l5
<== NOT EXECUTED
bool lowercase = false;
4004e51c: c0 2f bf f7 clrb [ %fp + -9 ]
<== NOT EXECUTED
(strchr("$%'-_@~`!(){}^#&", ch) != NULL) || (unsigned char) ch > 127)
4004e520: 82 15 63 90 or %l5, 0x390, %g1
<== NOT EXECUTED
4004e524: c2 27 bf f0 st %g1, [ %fp + -16 ]
<== NOT EXECUTED
if (strchr(" +,;=[]", ch) != NULL)
4004e528: 25 10 02 17 sethi %hi(0x40085c00), %l2
<== NOT EXECUTED
bool uppercase = false;
4004e52c: ac 10 20 00 clr %l6
<== NOT EXECUTED
int count = 0;
4004e530: ae 10 20 00 clr %l7
<== NOT EXECUTED
int dot_at = -1;
4004e534: a2 10 3f ff mov -1, %l1
<== NOT EXECUTED
if (strchr(" +,;=[]", ch) != NULL)
4004e538: a4 14 a3 88 or %l2, 0x388, %l2
<== NOT EXECUTED
4004e53c: ab 3a 60 18 sra %o1, 0x18, %l5
<== NOT EXECUTED
4004e540: 90 10 00 12 mov %l2, %o0
<== NOT EXECUTED
4004e544: 40 00 55 82 call 40063b4c <strchr>
<== NOT EXECUTED
4004e548: 92 10 00 15 mov %l5, %o1
<== NOT EXECUTED
4004e54c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e550: 32 80 00 36 bne,a 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e554: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
if ((ch == '.') || isalnum((unsigned char)ch) ||
4004e558: 80 a5 60 2e cmp %l5, 0x2e
<== NOT EXECUTED
4004e55c: 02 80 00 3e be 4004e654 <msdos_long_to_short+0x200>
<== NOT EXECUTED
4004e560: 80 a4 7f ff cmp %l1, -1
<== NOT EXECUTED
4004e564: 40 00 49 24 call 400609f4 <__locale_ctype_ptr>
<== NOT EXECUTED
4004e568: ba 0f 60 ff and %i5, 0xff, %i5
<== NOT EXECUTED
4004e56c: 90 02 00 1d add %o0, %i5, %o0
<== NOT EXECUTED
4004e570: c6 0a 20 01 ldub [ %o0 + 1 ], %g3
<== NOT EXECUTED
4004e574: 80 88 e0 07 btst 7, %g3
<== NOT EXECUTED
4004e578: 12 80 00 0a bne 4004e5a0 <msdos_long_to_short+0x14c>
<== NOT EXECUTED
4004e57c: d0 07 bf f0 ld [ %fp + -16 ], %o0
<== NOT EXECUTED
(strchr("$%'-_@~`!(){}^#&", ch) != NULL) || (unsigned char) ch > 127)
4004e580: 40 00 55 73 call 40063b4c <strchr>
<== NOT EXECUTED
4004e584: 92 10 00 15 mov %l5, %o1
<== NOT EXECUTED
4004e588: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e58c: 12 80 00 05 bne 4004e5a0 <msdos_long_to_short+0x14c>
<== NOT EXECUTED
4004e590: bb 37 60 07 srl %i5, 7, %i5
<== NOT EXECUTED
4004e594: 80 a7 60 00 cmp %i5, 0
<== NOT EXECUTED
4004e598: 02 80 00 38 be 4004e678 <msdos_long_to_short+0x224>
<== NOT EXECUTED
4004e59c: ba 10 20 00 clr %i5
<== NOT EXECUTED
if (dot_at >= 0)
4004e5a0: 80 a4 7f ff cmp %l1, -1
<== NOT EXECUTED
4004e5a4: 02 80 00 4d be 4004e6d8 <msdos_long_to_short+0x284>
<== NOT EXECUTED
4004e5a8: 82 25 c0 11 sub %l7, %l1, %g1
<== NOT EXECUTED
if (is_dot || ((count - dot_at) > 3))
4004e5ac: 80 a0 60 03 cmp %g1, 3
<== NOT EXECUTED
4004e5b0: 14 80 00 1e bg 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e5b4: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
else if ((*name >= 'A') && (*name <= 'Z'))
4004e5b8: c2 0c 00 17 ldub [ %l0 + %l7 ], %g1
<== NOT EXECUTED
4004e5bc: 86 00 7f bf add %g1, -65, %g3
<== NOT EXECUTED
4004e5c0: 80 a0 e0 19 cmp %g3, 0x19
<== NOT EXECUTED
4004e5c4: 28 80 00 06 bleu,a 4004e5dc <msdos_long_to_short+0x188>
<== NOT EXECUTED
4004e5c8: ac 10 00 14 mov %l4, %l6
<== NOT EXECUTED
else if ((*name >= 'a') && (*name <= 'z'))
4004e5cc: 82 00 7f 9f add %g1, -97, %g1
<== NOT EXECUTED
4004e5d0: 80 a0 60 19 cmp %g1, 0x19
<== NOT EXECUTED
4004e5d4: 28 80 00 02 bleu,a 4004e5dc <msdos_long_to_short+0x188>
<== NOT EXECUTED
4004e5d8: e8 2f bf f7 stb %l4, [ %fp + -9 ]
<== NOT EXECUTED
count++;
4004e5dc: ae 05 e0 01 inc %l7
<== NOT EXECUTED
while (*name && (count < name_len))
4004e5e0: fa 0c 00 17 ldub [ %l0 + %l7 ], %i5
<== NOT EXECUTED
4004e5e4: 93 2f 60 18 sll %i5, 0x18, %o1
<== NOT EXECUTED
4004e5e8: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4004e5ec: 02 80 00 08 be 4004e60c <msdos_long_to_short+0x1b8>
<== NOT EXECUTED
4004e5f0: 80 a4 c0 17 cmp %l3, %l7
<== NOT EXECUTED
4004e5f4: 14 80 00 03 bg 4004e600 <msdos_long_to_short+0x1ac>
<== NOT EXECUTED
4004e5f8: 82 10 20 01 mov 1, %g1
<== NOT EXECUTED
4004e5fc: 82 10 20 00 clr %g1
<== NOT EXECUTED
4004e600: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
4004e604: 32 bf ff cf bne,a 4004e540 <msdos_long_to_short+0xec>
<== NOT EXECUTED
4004e608: ab 3a 60 18 sra %o1, 0x18, %l5
<== NOT EXECUTED
if (lowercase && uppercase)
4004e60c: c2 0f bf f7 ldub [ %fp + -9 ], %g1
<== NOT EXECUTED
4004e610: 80 88 60 ff btst 0xff, %g1
<== NOT EXECUTED
4004e614: 02 80 00 29 be 4004e6b8 <msdos_long_to_short+0x264>
<== NOT EXECUTED
4004e618: 80 8d a0 ff btst 0xff, %l6
<== NOT EXECUTED
4004e61c: 02 80 00 03 be 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e620: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
type = MSDOS_NAME_LONG;
4004e624: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
short_filename_length = msdos_filename_utf8_to_short_name_for_save (
4004e628: 98 10 00 1c mov %i4, %o4
<== NOT EXECUTED
4004e62c: 96 10 00 1b mov %i3, %o3
<== NOT EXECUTED
4004e630: 94 10 00 1a mov %i2, %o2
<== NOT EXECUTED
4004e634: 92 10 00 19 mov %i1, %o1
<== NOT EXECUTED
4004e638: 40 00 31 9c call 4005aca8 <msdos_filename_utf8_to_short_name_for_save>
<== NOT EXECUTED
4004e63c: 90 10 00 18 mov %i0, %o0
<== NOT EXECUTED
if (short_filename_length < 0 ) {
4004e640: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004e644: 26 80 00 0d bl,a 4004e678 <msdos_long_to_short+0x224>
<== NOT EXECUTED
4004e648: ba 10 20 00 clr %i5
<== NOT EXECUTED
}
4004e64c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e650: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
if (dot_at >= 0)
4004e654: 12 bf ff f5 bne 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e658: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
4004e65c: 10 bf ff e0 b 4004e5dc <msdos_long_to_short+0x188>
<== NOT EXECUTED
4004e660: a2 10 00 17 mov %l7, %l1
<== NOT EXECUTED
for (i = 0; i < lfn_len; i++)
4004e664: 82 10 20 00 clr %g1
<== NOT EXECUTED
if (i == lfn_len)
4004e668: 80 a6 80 01 cmp %i2, %g1
<== NOT EXECUTED
4004e66c: 32 bf ff 95 bne,a 4004e4c0 <msdos_long_to_short+0x6c>
<== NOT EXECUTED
4004e670: c2 06 00 00 ld [ %i0 ], %g1
<== NOT EXECUTED
type = MSDOS_NAME_INVALID;
4004e674: ba 10 20 00 clr %i5
<== NOT EXECUTED
}
4004e678: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e67c: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
if ((lfn[0] == '.') && (lfn_len == 1))
4004e680: 80 a6 a0 01 cmp %i2, 1
<== NOT EXECUTED
4004e684: 02 80 00 0f be 4004e6c0 <msdos_long_to_short+0x26c>
<== NOT EXECUTED
4004e688: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
if ((lfn[0] == '.') && (lfn[1] == '.') && (lfn_len == 2))
4004e68c: c4 4e 60 01 ldsb [ %i1 + 1 ], %g2
<== NOT EXECUTED
4004e690: 80 a0 a0 2e cmp %g2, 0x2e
<== NOT EXECUTED
4004e694: 12 80 00 04 bne 4004e6a4 <msdos_long_to_short+0x250>
<== NOT EXECUTED
4004e698: 80 a6 a0 02 cmp %i2, 2
<== NOT EXECUTED
4004e69c: 22 80 00 0c be,a 4004e6cc <msdos_long_to_short+0x278>
<== NOT EXECUTED
4004e6a0: c2 2e e0 01 stb %g1, [ %i3 + 1 ]
<== NOT EXECUTED
for (i = 0; i < lfn_len; i++)
4004e6a4: 80 a6 a0 00 cmp %i2, 0
<== NOT EXECUTED
4004e6a8: 14 bf ff 7b bg 4004e494 <msdos_long_to_short+0x40>
<== NOT EXECUTED
4004e6ac: 82 10 20 00 clr %g1
<== NOT EXECUTED
if (i == lfn_len)
4004e6b0: 10 bf ff ef b 4004e66c <msdos_long_to_short+0x218>
<== NOT EXECUTED
4004e6b4: 80 a6 80 01 cmp %i2, %g1
<== NOT EXECUTED
return MSDOS_NAME_SHORT;
4004e6b8: 10 bf ff dc b 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e6bc: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
sfn[0] = '.';
4004e6c0: c2 2e c0 00 stb %g1, [ %i3 ]
<== NOT EXECUTED
}
4004e6c4: 81 c7 e0 08 ret
<== NOT EXECUTED
4004e6c8: 91 e8 00 1d restore %g0, %i5, %o0
<== NOT EXECUTED
return MSDOS_NAME_SHORT;
4004e6cc: ba 10 20 01 mov 1, %i5
<== NOT EXECUTED
4004e6d0: 10 bf ff df b 4004e64c <msdos_long_to_short+0x1f8>
<== NOT EXECUTED
4004e6d4: c2 2e c0 00 stb %g1, [ %i3 ]
<== NOT EXECUTED
if (count == 8 && !is_dot)
4004e6d8: 80 a5 e0 08 cmp %l7, 8
<== NOT EXECUTED
4004e6dc: 32 bf ff b8 bne,a 4004e5bc <msdos_long_to_short+0x168>
<== NOT EXECUTED
4004e6e0: c2 0c 00 17 ldub [ %l0 + %l7 ], %g1
<== NOT EXECUTED
type = MSDOS_NAME_LONG;
4004e6e4: 10 bf ff d1 b 4004e628 <msdos_long_to_short+0x1d4>
<== NOT EXECUTED
4004e6e8: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
40038774 <msdos_mknod>:
const char *name,
size_t namelen,
mode_t mode,
dev_t dev
)
{
40038774: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
fat_file_type_t type = 0;
/*
* Figure out what type of msdos node this is.
*/
if (S_ISDIR(mode))
40038778: 03 00 00 3c sethi %hi(0xf000), %g1
<== NOT EXECUTED
4003877c: 05 00 00 10 sethi %hi(0x4000), %g2
<== NOT EXECUTED
40038780: 82 0e c0 01 and %i3, %g1, %g1
<== NOT EXECUTED
40038784: 80 a0 40 02 cmp %g1, %g2
<== NOT EXECUTED
40038788: 02 80 00 0b be 400387b4 <msdos_mknod+0x40>
<== NOT EXECUTED
4003878c: 07 00 00 20 sethi %hi(0x8000), %g3
<== NOT EXECUTED
{
type = FAT_DIRECTORY;
}
else if (S_ISREG(mode))
40038790: 80 a0 40 03 cmp %g1, %g3
<== NOT EXECUTED
40038794: 12 80 00 0f bne 400387d0 <msdos_mknod+0x5c>
<== NOT EXECUTED
40038798: 84 10 20 04 mov 4, %g2
<== NOT EXECUTED
}
else
rtems_set_errno_and_return_minus_one(EINVAL);
/* Create an MSDOS node */
rc = msdos_creat_node(parentloc, type, name, namelen, mode, NULL);
4003879c: b8 10 00 1b mov %i3, %i4
<== NOT EXECUTED
400387a0: ba 10 20 00 clr %i5
<== NOT EXECUTED
400387a4: b6 10 00 1a mov %i2, %i3
<== NOT EXECUTED
400387a8: b4 10 00 19 mov %i1, %i2
<== NOT EXECUTED
400387ac: 40 00 55 41 call 4004dcb0 <msdos_creat_node>
<== NOT EXECUTED
400387b0: 93 e8 00 02 restore %g0, %g2, %o1
<== NOT EXECUTED
type = FAT_DIRECTORY;
400387b4: 84 10 20 00 clr %g2
<== NOT EXECUTED
rc = msdos_creat_node(parentloc, type, name, namelen, mode, NULL);
400387b8: b8 10 00 1b mov %i3, %i4
<== NOT EXECUTED
400387bc: ba 10 20 00 clr %i5
<== NOT EXECUTED
400387c0: b6 10 00 1a mov %i2, %i3
<== NOT EXECUTED
400387c4: b4 10 00 19 mov %i1, %i2
<== NOT EXECUTED
400387c8: 40 00 55 3a call 4004dcb0 <msdos_creat_node>
<== NOT EXECUTED
400387cc: 93 e8 00 02 restore %g0, %g2, %o1
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EINVAL);
400387d0: 40 00 90 51 call 4005c914 <__errno>
<== NOT EXECUTED
400387d4: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
400387d8: 82 10 20 16 mov 0x16, %g1
<== NOT EXECUTED
400387dc: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
return rc;
}
400387e0: 81 c7 e0 08 ret
<== NOT EXECUTED
400387e4: 81 e8 00 00 restore
<== NOT EXECUTED
40081d34 <msdos_ops>:
40081d34: 40 03 85 24 40 03 85 38 40 04 e2 00 40 03 eb 24 @..$@..8@...@..$
40081d44: 40 00 7e e8 40 03 87 74 40 03 88 30 40 03 ea a4 @.~.@..t@..0@...
40081d54: 40 03 ea 6c 40 03 85 14 40 04 e2 18 40 03 eb a0 @..l@...@...@...
40081d64: 40 03 ec 10 40 04 e2 30 40 03 85 4c 40 03 eb f4 @...@..0@..L@...
40081d74: 40 03 eb bc 40 03 87 e8 40 03 88 e0 6e 76 64 69 @...@...@...nvdi
40081d84: 73 6b 3a 65 72 72 6f 72 3a 00 00 00 72 65 61 64 sk:error:...read
40081d94: 2d 62 6c 6f 63 6b 3a 20 62 61 64 20 62 6c 6f 63 -block: bad bloc
40081da4: 6b 3a 20 25 64 00 00 00 00 00 00 00 6d 61 70 2d k: %d.......map-
40081db4: 62 6c 6f 63 6b 3a 25 64 3a 20 6e 6f 20 64 65 76 block:%d: no dev
40081dc4: 69 63 65 2f 70 61 67 65 20 6d 61 70 20 66 6f 75 ice/page map fou
40081dd4: 6e 64 00 00 72 65 61 64 2d 62 6c 6f 63 6b 3a 20 nd..read-block:
40081de4: 63 72 63 20 66 61 69 6c 75 72 65 3a 20 25 64 3a crc failure: %d:
40081df4: 20 62 75 66 66 65 72 3a 25 30 34 78 20 70 61 67 buffer:%04x pag
40081e04: 65 3a 25 30 34 78 00 00 00 00 00 00 64 69 73 6b e:%04x......disk
40081e14: 20 63 72 65 61 74 65 20 70 68 79 20 66 61 69 6c create phy fail
40081e24: 65 64 00 00 4e 56 20 44 69 73 6b 00 ed..NV Disk.
400387e8 <msdos_rename>:
const rtems_filesystem_location_info_t *old_loc,
const rtems_filesystem_location_info_t *new_parent_loc,
const char *new_name,
size_t new_namelen
)
{
400387e8: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
int rc = RC_OK;
fat_file_fd_t *old_fat_fd = old_loc->node_access;
400387ec: fa 06 60 08 ld [ %i1 + 8 ], %i5
<== NOT EXECUTED
/*
* create new directory entry as "hard link", copying relevant info from
* existing file
*/
rc = msdos_creat_node(new_parent_loc,
400387f0: 9a 10 00 1d mov %i5, %o5
<== NOT EXECUTED
400387f4: 19 00 00 20 sethi %hi(0x8000), %o4
<== NOT EXECUTED
400387f8: 96 10 00 1c mov %i4, %o3
<== NOT EXECUTED
400387fc: 94 10 00 1b mov %i3, %o2
<== NOT EXECUTED
40038800: 92 10 20 02 mov 2, %o1
<== NOT EXECUTED
40038804: 40 00 55 2b call 4004dcb0 <msdos_creat_node>
<== NOT EXECUTED
40038808: 90 10 00 1a mov %i2, %o0
<== NOT EXECUTED
FAT_HARD_LINK,new_name,new_namelen,S_IFREG,
old_fat_fd);
if (rc != RC_OK)
4003880c: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
40038810: 02 80 00 04 be 40038820 <msdos_rename+0x38>
<== NOT EXECUTED
40038814: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
rc = msdos_set_first_char4file_name(old_loc->mt_entry,
&old_fat_fd->dir_pos,
MSDOS_THIS_DIR_ENTRY_EMPTY);
return rc;
}
40038818: 81 c7 e0 08 ret
<== NOT EXECUTED
4003881c: 81 e8 00 00 restore
<== NOT EXECUTED
rc = msdos_set_first_char4file_name(old_loc->mt_entry,
40038820: f0 06 60 14 ld [ %i1 + 0x14 ], %i0
<== NOT EXECUTED
40038824: b4 10 20 e5 mov 0xe5, %i2
<== NOT EXECUTED
40038828: 40 00 58 69 call 4004e9cc <msdos_set_first_char4file_name>
<== NOT EXECUTED
4003882c: 93 ef 60 20 restore %i5, 0x20, %o1
<== NOT EXECUTED
40038830 <msdos_rmnod>:
#include "msdos.h"
int
msdos_rmnod(const rtems_filesystem_location_info_t *parent_pathloc,
const rtems_filesystem_location_info_t *pathloc)
{
40038830: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
int rc = RC_OK;
msdos_fs_info_t *fs_info = pathloc->mt_entry->fs_info;
fat_file_fd_t *fat_fd = pathloc->node_access;
40038834: fa 06 60 08 ld [ %i1 + 8 ], %i5
<== NOT EXECUTED
msdos_fs_info_t *fs_info = pathloc->mt_entry->fs_info;
40038838: d0 06 60 14 ld [ %i1 + 0x14 ], %o0
<== NOT EXECUTED
if (fat_fd->fat_file_type == FAT_DIRECTORY)
4003883c: c2 07 60 10 ld [ %i5 + 0x10 ], %g1
<== NOT EXECUTED
40038840: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40038844: 12 80 00 11 bne 40038888 <msdos_rmnod+0x58>
<== NOT EXECUTED
40038848: f8 02 20 08 ld [ %o0 + 8 ], %i4
<== NOT EXECUTED
{
bool is_empty = false;
4003884c: c0 2f bf ff clrb [ %fp + -1 ]
<== NOT EXECUTED
/*
* You cannot remove a node that still has children
*/
rc = msdos_dir_is_empty(pathloc->mt_entry, fat_fd, &is_empty);
40038850: 94 07 bf ff add %fp, -1, %o2
<== NOT EXECUTED
40038854: 40 00 58 c2 call 4004eb5c <msdos_dir_is_empty>
<== NOT EXECUTED
40038858: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
if (rc != RC_OK)
4003885c: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40038860: 12 80 00 12 bne 400388a8 <msdos_rmnod+0x78>
<== NOT EXECUTED
40038864: c2 0f bf ff ldub [ %fp + -1 ], %g1
<== NOT EXECUTED
{
return rc;
}
if (!is_empty)
40038868: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
4003886c: 02 80 00 11 be 400388b0 <msdos_rmnod+0x80>
<== NOT EXECUTED
40038870: 01 00 00 00 nop
<== NOT EXECUTED
/*
* We deny attempts to delete open directory (if directory is current
* directory we assume it is open one)
*/
if (fat_fd->links_num > 1)
40038874: c2 07 60 08 ld [ %i5 + 8 ], %g1
<== NOT EXECUTED
40038878: 80 a0 60 01 cmp %g1, 1
<== NOT EXECUTED
4003887c: 18 80 00 13 bgu 400388c8 <msdos_rmnod+0x98>
<== NOT EXECUTED
40038880: 01 00 00 00 nop
<== NOT EXECUTED
40038884: d0 06 60 14 ld [ %i1 + 0x14 ], %o0
<== NOT EXECUTED
* not used - mount() not implemenetd yet.
*/
}
/* mark file removed */
rc = msdos_set_first_char4file_name(pathloc->mt_entry, &fat_fd->dir_pos,
40038888: 94 10 20 e5 mov 0xe5, %o2
<== NOT EXECUTED
4003888c: 40 00 58 50 call 4004e9cc <msdos_set_first_char4file_name>
<== NOT EXECUTED
40038890: 92 07 60 20 add %i5, 0x20, %o1
<== NOT EXECUTED
MSDOS_THIS_DIR_ENTRY_EMPTY);
if (rc != RC_OK)
40038894: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
40038898: 12 80 00 04 bne 400388a8 <msdos_rmnod+0x78>
<== NOT EXECUTED
4003889c: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
{
return rc;
}
fat_file_mark_removed(&fs_info->fat, fat_fd);
400388a0: 40 00 1e 24 call 40040130 <fat_file_mark_removed>
<== NOT EXECUTED
400388a4: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
return rc;
}
400388a8: 81 c7 e0 08 ret
<== NOT EXECUTED
400388ac: 81 e8 00 00 restore
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(ENOTEMPTY);
400388b0: 40 00 90 19 call 4005c914 <__errno>
<== NOT EXECUTED
400388b4: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
400388b8: 82 10 20 5a mov 0x5a, %g1
<== NOT EXECUTED
400388bc: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
400388c0: 81 c7 e0 08 ret
<== NOT EXECUTED
400388c4: 81 e8 00 00 restore
<== NOT EXECUTED
rtems_set_errno_and_return_minus_one(EBUSY);
400388c8: 40 00 90 13 call 4005c914 <__errno>
<== NOT EXECUTED
400388cc: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
400388d0: 82 10 20 10 mov 0x10, %g1
<== NOT EXECUTED
400388d4: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
400388d8: 81 c7 e0 08 ret
<== NOT EXECUTED
400388dc: 81 e8 00 00 restore
<== NOT EXECUTED
4004e9cc <msdos_set_first_char4file_name>:
{
4004e9cc: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
fat_pos_t start = dir_pos->lname;
4004e9d0: c2 06 60 0c ld [ %i1 + 0xc ], %g1
<== NOT EXECUTED
4004e9d4: c4 06 60 08 ld [ %i1 + 8 ], %g2
<== NOT EXECUTED
msdos_fs_info_t *fs_info = mt_entry->fs_info;
4004e9d8: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
{
4004e9dc: f4 2f a0 4c stb %i2, [ %fp + 0x4c ]
<== NOT EXECUTED
fat_pos_t start = dir_pos->lname;
4004e9e0: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
4004e9e4: c4 27 bf f8 st %g2, [ %fp + -8 ]
<== NOT EXECUTED
fat_pos_t end = dir_pos->sname;
4004e9e8: f8 06 40 00 ld [ %i1 ], %i4
<== NOT EXECUTED
if ((end.cln == fs_info->fat.vol.rdir_cl) &&
4004e9ec: c2 07 60 44 ld [ %i5 + 0x44 ], %g1
<== NOT EXECUTED
4004e9f0: 80 a0 40 1c cmp %g1, %i4
<== NOT EXECUTED
4004e9f4: 02 80 00 54 be 4004eb44 <msdos_set_first_char4file_name+0x178>
<== NOT EXECUTED
4004e9f8: f4 06 60 04 ld [ %i1 + 4 ], %i2
<== NOT EXECUTED
dir_block_size = fs_info->fat.vol.bpc;
4004e9fc: f6 07 60 08 ld [ %i5 + 8 ], %i3
<== NOT EXECUTED
if (dir_pos->lname.cln == FAT_FILE_SHORT_NAME)
4004ea00: c2 06 60 08 ld [ %i1 + 8 ], %g1
<== NOT EXECUTED
4004ea04: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
4004ea08: 22 80 00 4a be,a 4004eb30 <msdos_set_first_char4file_name+0x164>
<== NOT EXECUTED
4004ea0c: c2 06 60 04 ld [ %i1 + 4 ], %g1
<== NOT EXECUTED
4004ea10: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
4004ea14: 10 80 00 1b b 4004ea80 <msdos_set_first_char4file_name+0xb4>
<== NOT EXECUTED
4004ea18: d2 07 bf f8 ld [ %fp + -8 ], %o1
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004ea1c: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4004ea20: 22 80 00 1c be,a 4004ea90 <msdos_set_first_char4file_name+0xc4>
<== NOT EXECUTED
4004ea24: c2 0f 60 05 ldub [ %i5 + 5 ], %g1
<== NOT EXECUTED
return fs_info->vol.rdir_loc;
4004ea28: c2 07 60 28 ld [ %i5 + 0x28 ], %g1
<== NOT EXECUTED
uint32_t byte = (start.ofs & (fs_info->fat.vol.bps - 1));
4004ea2c: d4 17 40 00 lduh [ %i5 ], %o2
<== NOT EXECUTED
(start.ofs >> fs_info->fat.vol.sec_log2));
4004ea30: d2 0f 60 02 ldub [ %i5 + 2 ], %o1
<== NOT EXECUTED
4004ea34: 93 30 80 09 srl %g2, %o1, %o1
<== NOT EXECUTED
uint32_t byte = (start.ofs & (fs_info->fat.vol.bps - 1));
4004ea38: 94 02 bf ff add %o2, -1, %o2
<== NOT EXECUTED
ret = fat_sector_write(&fs_info->fat, sec, byte + MSDOS_FILE_NAME_OFFSET,
4004ea3c: 98 07 a0 4c add %fp, 0x4c, %o4
<== NOT EXECUTED
4004ea40: 94 0a 80 02 and %o2, %g2, %o2
<== NOT EXECUTED
4004ea44: 96 10 20 01 mov 1, %o3
<== NOT EXECUTED
4004ea48: 92 02 40 01 add %o1, %g1, %o1
<== NOT EXECUTED
4004ea4c: 7f ff c6 d2 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004ea50: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (ret < 0)
4004ea54: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004ea58: 06 80 00 20 bl 4004ead8 <msdos_set_first_char4file_name+0x10c>
<== NOT EXECUTED
4004ea5c: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
if ((start.cln == end.cln) && (start.ofs == end.ofs))
4004ea60: d2 07 bf f8 ld [ %fp + -8 ], %o1
<== NOT EXECUTED
4004ea64: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
4004ea68: 80 a7 00 09 cmp %i4, %o1
<== NOT EXECUTED
4004ea6c: 02 80 00 1d be 4004eae0 <msdos_set_first_char4file_name+0x114>
<== NOT EXECUTED
4004ea70: 84 00 60 20 add %g1, 0x20, %g2
<== NOT EXECUTED
if (start.ofs >= dir_block_size)
4004ea74: 80 a0 80 1b cmp %g2, %i3
<== NOT EXECUTED
4004ea78: 1a 80 00 1f bcc 4004eaf4 <msdos_set_first_char4file_name+0x128>
<== NOT EXECUTED
4004ea7c: c4 27 bf fc st %g2, [ %fp + -4 ]
<== NOT EXECUTED
if ( (cln == 0) && (fs_info->vol.type & (FAT_FAT12 | FAT_FAT16)) )
4004ea80: 80 a2 60 00 cmp %o1, 0
<== NOT EXECUTED
4004ea84: 22 bf ff e6 be,a 4004ea1c <msdos_set_first_char4file_name+0x50>
<== NOT EXECUTED
4004ea88: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
return (((cln - FAT_RSRVD_CLN) << fs_info->vol.spc_log2) +
4004ea8c: c2 0f 60 05 ldub [ %i5 + 5 ], %g1
<== NOT EXECUTED
4004ea90: c6 07 60 3c ld [ %i5 + 0x3c ], %g3
<== NOT EXECUTED
4004ea94: 92 02 7f fe add %o1, -2, %o1
<== NOT EXECUTED
uint32_t byte = (start.ofs & (fs_info->fat.vol.bps - 1));
4004ea98: d4 17 40 00 lduh [ %i5 ], %o2
<== NOT EXECUTED
4004ea9c: 83 2a 40 01 sll %o1, %g1, %g1
<== NOT EXECUTED
(start.ofs >> fs_info->fat.vol.sec_log2));
4004eaa0: d2 0f 60 02 ldub [ %i5 + 2 ], %o1
<== NOT EXECUTED
4004eaa4: 82 00 40 03 add %g1, %g3, %g1
<== NOT EXECUTED
4004eaa8: 93 30 80 09 srl %g2, %o1, %o1
<== NOT EXECUTED
uint32_t byte = (start.ofs & (fs_info->fat.vol.bps - 1));
4004eaac: 94 02 bf ff add %o2, -1, %o2
<== NOT EXECUTED
ret = fat_sector_write(&fs_info->fat, sec, byte + MSDOS_FILE_NAME_OFFSET,
4004eab0: 98 07 a0 4c add %fp, 0x4c, %o4
<== NOT EXECUTED
4004eab4: 94 0a 80 02 and %o2, %g2, %o2
<== NOT EXECUTED
4004eab8: 96 10 20 01 mov 1, %o3
<== NOT EXECUTED
4004eabc: 92 02 40 01 add %o1, %g1, %o1
<== NOT EXECUTED
4004eac0: 7f ff c6 b5 call 40040594 <fat_sector_write>
<== NOT EXECUTED
4004eac4: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if (ret < 0)
4004eac8: 80 a2 20 00 cmp %o0, 0
<== NOT EXECUTED
4004eacc: 16 bf ff e6 bge 4004ea64 <msdos_set_first_char4file_name+0x98>
<== NOT EXECUTED
4004ead0: d2 07 bf f8 ld [ %fp + -8 ], %o1
<== NOT EXECUTED
return -1;
4004ead4: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
}
4004ead8: 81 c7 e0 08 ret
<== NOT EXECUTED
4004eadc: 81 e8 00 00 restore
<== NOT EXECUTED
if ((start.cln == end.cln) && (start.ofs == end.ofs))
4004eae0: 80 a6 80 01 cmp %i2, %g1
<== NOT EXECUTED
4004eae4: 12 bf ff e5 bne 4004ea78 <msdos_set_first_char4file_name+0xac>
<== NOT EXECUTED
4004eae8: 80 a0 80 1b cmp %g2, %i3
<== NOT EXECUTED
return RC_OK;
4004eaec: 81 c7 e0 08 ret
<== NOT EXECUTED
4004eaf0: 91 e8 20 00 restore %g0, 0, %o0
<== NOT EXECUTED
if ((end.cln == fs_info->fat.vol.rdir_cl) &&
4004eaf4: c2 07 60 44 ld [ %i5 + 0x44 ], %g1
<== NOT EXECUTED
4004eaf8: 80 a7 00 01 cmp %i4, %g1
<== NOT EXECUTED
4004eafc: 12 80 00 06 bne 4004eb14 <msdos_set_first_char4file_name+0x148>
<== NOT EXECUTED
4004eb00: 94 07 bf f8 add %fp, -8, %o2
<== NOT EXECUTED
4004eb04: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
4004eb08: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4004eb0c: 12 bf ff f8 bne 4004eaec <msdos_set_first_char4file_name+0x120>
<== NOT EXECUTED
4004eb10: 01 00 00 00 nop
<== NOT EXECUTED
rc = fat_get_fat_cluster(&fs_info->fat, start.cln, &start.cln);
4004eb14: 7f ff c0 6c call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
4004eb18: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
if ( rc != RC_OK )
4004eb1c: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004eb20: 12 bf ff ee bne 4004ead8 <msdos_set_first_char4file_name+0x10c>
<== NOT EXECUTED
4004eb24: 84 10 20 00 clr %g2
<== NOT EXECUTED
start.ofs = 0;
4004eb28: 10 bf ff bb b 4004ea14 <msdos_set_first_char4file_name+0x48>
<== NOT EXECUTED
4004eb2c: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
start = dir_pos->sname;
4004eb30: c2 27 bf fc st %g1, [ %fp + -4 ]
<== NOT EXECUTED
4004eb34: c4 06 40 00 ld [ %i1 ], %g2
<== NOT EXECUTED
4004eb38: c4 27 bf f8 st %g2, [ %fp + -8 ]
<== NOT EXECUTED
4004eb3c: 10 bf ff b6 b 4004ea14 <msdos_set_first_char4file_name+0x48>
<== NOT EXECUTED
4004eb40: c4 07 bf fc ld [ %fp + -4 ], %g2
<== NOT EXECUTED
if ((end.cln == fs_info->fat.vol.rdir_cl) &&
4004eb44: c2 0f 60 16 ldub [ %i5 + 0x16 ], %g1
<== NOT EXECUTED
4004eb48: 80 88 60 03 btst 3, %g1
<== NOT EXECUTED
4004eb4c: 22 bf ff ad be,a 4004ea00 <msdos_set_first_char4file_name+0x34>
<== NOT EXECUTED
4004eb50: f6 07 60 08 ld [ %i5 + 8 ], %i3
<== NOT EXECUTED
dir_block_size = fs_info->fat.vol.rdir_size;
4004eb54: 10 bf ff ab b 4004ea00 <msdos_set_first_char4file_name+0x34>
<== NOT EXECUTED
4004eb58: f6 07 60 34 ld [ %i5 + 0x34 ], %i3
<== NOT EXECUTED
4004e230 <msdos_shut_down>:
* temp_mt_entry - mount table entry
*
*/
void
msdos_shut_down(rtems_filesystem_mount_table_entry_t *temp_mt_entry)
{
4004e230: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = temp_mt_entry->fs_info;
fat_file_fd_t *fat_fd = temp_mt_entry->mt_fs_root->location.node_access;
4004e234: c2 06 20 24 ld [ %i0 + 0x24 ], %g1
<== NOT EXECUTED
msdos_fs_info_t *fs_info = temp_mt_entry->fs_info;
4004e238: fa 06 20 08 ld [ %i0 + 8 ], %i5
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
/* close fat-file which corresponds to root directory */
fat_file_close(&fs_info->fat, fat_fd);
4004e23c: d2 00 60 08 ld [ %g1 + 8 ], %o1
<== NOT EXECUTED
rtems_dosfs_convert_control *converter = fs_info->converter;
4004e240: f8 07 60 c0 ld [ %i5 + 0xc0 ], %i4
<== NOT EXECUTED
fat_file_close(&fs_info->fat, fat_fd);
4004e244: 7f ff c6 31 call 4003fb08 <fat_file_close>
<== NOT EXECUTED
4004e248: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
fat_shutdown_drive(&fs_info->fat);
4004e24c: 7f ff cc 01 call 40041250 <fat_shutdown_drive>
<== NOT EXECUTED
4004e250: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
rtems_recursive_mutex_destroy(&fs_info->vol_mutex);
(*converter->handler->destroy)( converter );
4004e254: c2 07 00 00 ld [ %i4 ], %g1
<== NOT EXECUTED
4004e258: c2 00 60 14 ld [ %g1 + 0x14 ], %g1
<== NOT EXECUTED
4004e25c: 9f c0 40 00 call %g1
<== NOT EXECUTED
4004e260: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
free(fs_info->cl_buf);
4004e264: 7f fe f5 07 call 4000b680 <free>
<== NOT EXECUTED
4004e268: d0 07 60 bc ld [ %i5 + 0xbc ], %o0
<== NOT EXECUTED
free(temp_mt_entry->fs_info);
4004e26c: f0 06 20 08 ld [ %i0 + 8 ], %i0
<== NOT EXECUTED
4004e270: 7f fe f5 04 call 4000b680 <free>
<== NOT EXECUTED
4004e274: 81 e8 00 00 restore
<== NOT EXECUTED
400388e0 <msdos_statvfs>:
#include "msdos.h"
int msdos_statvfs(
const rtems_filesystem_location_info_t *__restrict root_loc,
struct statvfs *__restrict sb)
{
400388e0: 9d e3 bf 98 save %sp, -104, %sp
<== NOT EXECUTED
msdos_fs_info_t *fs_info = root_loc->mt_entry->fs_info;
400388e4: c2 06 20 14 ld [ %i0 + 0x14 ], %g1
<== NOT EXECUTED
400388e8: f8 00 60 08 ld [ %g1 + 8 ], %i4
<== NOT EXECUTED
rtems_recursive_mutex_lock(&fs_info->vol_mutex);
400388ec: a2 07 20 a4 add %i4, 0xa4, %l1
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
400388f0: 7f ff 8d 79 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
400388f4: 90 10 00 11 mov %l1, %o0
<== NOT EXECUTED
fat_vol_t *vol = &fs_info->fat.vol;
msdos_fs_lock(fs_info);
sb->f_bsize = FAT_SECTOR512_SIZE;
sb->f_frsize = vol->bpc;
400388f8: c2 07 20 08 ld [ %i4 + 8 ], %g1
<== NOT EXECUTED
sb->f_blocks = vol->data_cls;
400388fc: e0 07 20 40 ld [ %i4 + 0x40 ], %l0
<== NOT EXECUTED
sb->f_bsize = FAT_SECTOR512_SIZE;
40038900: 84 10 22 00 mov 0x200, %g2
<== NOT EXECUTED
sb->f_frsize = vol->bpc;
40038904: c2 26 60 04 st %g1, [ %i1 + 4 ]
<== NOT EXECUTED
sb->f_bavail = 0;
sb->f_files = 0; // FAT doesn't store inodes
sb->f_ffree = 0;
sb->f_favail = 0;
sb->f_flag = 0;
sb->f_namemax = MSDOS_NAME_MAX_LNF_LEN;
40038908: 82 10 20 ff mov 0xff, %g1
<== NOT EXECUTED
sb->f_bsize = FAT_SECTOR512_SIZE;
4003890c: c4 26 40 00 st %g2, [ %i1 ]
<== NOT EXECUTED
sb->f_namemax = MSDOS_NAME_MAX_LNF_LEN;
40038910: c2 26 60 34 st %g1, [ %i1 + 0x34 ]
<== NOT EXECUTED
sb->f_bfree = 0;
40038914: c0 26 60 10 clr [ %i1 + 0x10 ]
<== NOT EXECUTED
40038918: c0 26 60 14 clr [ %i1 + 0x14 ]
<== NOT EXECUTED
sb->f_bavail = 0;
4003891c: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
40038920: c0 26 60 1c clr [ %i1 + 0x1c ]
<== NOT EXECUTED
sb->f_blocks = vol->data_cls;
40038924: c0 26 60 08 clr [ %i1 + 8 ]
<== NOT EXECUTED
40038928: e0 26 60 0c st %l0, [ %i1 + 0xc ]
<== NOT EXECUTED
sb->f_files = 0; // FAT doesn't store inodes
4003892c: c0 26 60 20 clr [ %i1 + 0x20 ]
<== NOT EXECUTED
sb->f_ffree = 0;
40038930: c0 26 60 24 clr [ %i1 + 0x24 ]
<== NOT EXECUTED
sb->f_favail = 0;
40038934: c0 26 60 28 clr [ %i1 + 0x28 ]
<== NOT EXECUTED
sb->f_flag = 0;
40038938: c0 26 60 30 clr [ %i1 + 0x30 ]
<== NOT EXECUTED
if (vol->free_cls == FAT_UNDEFINED_VALUE)
4003893c: c2 07 20 4c ld [ %i4 + 0x4c ], %g1
<== NOT EXECUTED
40038940: 80 a0 7f ff cmp %g1, -1
<== NOT EXECUTED
40038944: 22 80 00 0b be,a 40038970 <msdos_statvfs+0x90>
<== NOT EXECUTED
40038948: a0 04 20 02 add %l0, 2, %l0
<== NOT EXECUTED
}
}
}
else
{
sb->f_bfree = vol->free_cls;
4003894c: c0 26 60 10 clr [ %i1 + 0x10 ]
<== NOT EXECUTED
40038950: c2 26 60 14 st %g1, [ %i1 + 0x14 ]
<== NOT EXECUTED
sb->f_bavail = vol->free_cls;
40038954: c0 26 60 18 clr [ %i1 + 0x18 ]
<== NOT EXECUTED
40038958: c2 26 60 1c st %g1, [ %i1 + 0x1c ]
<== NOT EXECUTED
}
msdos_fs_unlock(fs_info);
return RC_OK;
4003895c: b0 10 20 00 clr %i0
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
40038960: 7f ff 8d 82 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
40038964: 90 10 00 11 mov %l1, %o0
<== NOT EXECUTED
}
40038968: 81 c7 e0 08 ret
<== NOT EXECUTED
4003896c: 81 e8 00 00 restore
<== NOT EXECUTED
for (; cur_cl < data_cls_val; ++cur_cl)
40038970: 80 a4 20 02 cmp %l0, 2
<== NOT EXECUTED
40038974: 08 bf ff fa bleu 4003895c <msdos_statvfs+0x7c>
<== NOT EXECUTED
40038978: c0 27 bf fc clr [ %fp + -4 ]
<== NOT EXECUTED
uint32_t cur_cl = 2;
4003897c: 10 80 00 10 b 400389bc <msdos_statvfs+0xdc>
<== NOT EXECUTED
40038980: ba 10 20 02 mov 2, %i5
<== NOT EXECUTED
if (value == FAT_GENFAT_FREE)
40038984: 80 a0 60 00 cmp %g1, 0
<== NOT EXECUTED
40038988: 12 80 00 0a bne 400389b0 <msdos_statvfs+0xd0>
<== NOT EXECUTED
4003898c: ba 07 60 01 inc %i5
<== NOT EXECUTED
sb->f_bfree++;
40038990: f4 1e 60 10 ldd [ %i1 + 0x10 ], %i2
<== NOT EXECUTED
sb->f_bavail++;
40038994: c4 1e 60 18 ldd [ %i1 + 0x18 ], %g2
<== NOT EXECUTED
sb->f_bfree++;
40038998: 9a 86 e0 01 addcc %i3, 1, %o5
<== NOT EXECUTED
4003899c: 98 46 a0 00 addx %i2, 0, %o4
<== NOT EXECUTED
sb->f_bavail++;
400389a0: b6 80 e0 01 addcc %g3, 1, %i3
<== NOT EXECUTED
sb->f_bfree++;
400389a4: d8 3e 60 10 std %o4, [ %i1 + 0x10 ]
<== NOT EXECUTED
sb->f_bavail++;
400389a8: b4 40 a0 00 addx %g2, 0, %i2
<== NOT EXECUTED
400389ac: f4 3e 60 18 std %i2, [ %i1 + 0x18 ]
<== NOT EXECUTED
for (; cur_cl < data_cls_val; ++cur_cl)
400389b0: 80 a4 00 1d cmp %l0, %i5
<== NOT EXECUTED
400389b4: 02 bf ff eb be 40038960 <msdos_statvfs+0x80>
<== NOT EXECUTED
400389b8: b0 10 20 00 clr %i0
<== NOT EXECUTED
rc = fat_get_fat_cluster(&fs_info->fat, cur_cl, &value);
400389bc: 92 10 00 1d mov %i5, %o1
<== NOT EXECUTED
400389c0: 94 07 bf fc add %fp, -4, %o2
<== NOT EXECUTED
400389c4: 40 00 18 c0 call 4003ecc4 <fat_get_fat_cluster>
<== NOT EXECUTED
400389c8: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
if (rc != RC_OK)
400389cc: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
400389d0: 02 bf ff ed be 40038984 <msdos_statvfs+0xa4>
<== NOT EXECUTED
400389d4: c2 07 bf fc ld [ %fp + -4 ], %g1
<== NOT EXECUTED
400389d8: 7f ff 8d 64 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
400389dc: 90 10 00 11 mov %l1, %o0
<== NOT EXECUTED
400389e0: 81 c7 e0 08 ret
<== NOT EXECUTED
400389e4: 81 e8 00 00 restore
<== NOT EXECUTED
4004ff60 <msdos_sync>:
int
msdos_sync(rtems_libio_t *iop)
{
4004ff60: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
int rc = RC_OK;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
4004ff64: c2 06 20 20 ld [ %i0 + 0x20 ], %g1
<== NOT EXECUTED
4004ff68: f8 00 60 08 ld [ %g1 + 8 ], %i4
<== NOT EXECUTED
4004ff6c: ba 07 20 a4 add %i4, 0xa4, %i5
<== NOT EXECUTED
_Mutex_recursive_Acquire( mutex );
4004ff70: 7f ff 2f d9 call 4001bed4 <_Mutex_recursive_Acquire>
<== NOT EXECUTED
4004ff74: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
msdos_fs_lock(fs_info);
rc = fat_sync(&fs_info->fat);
4004ff78: 7f ff c4 73 call 40041144 <fat_sync>
<== NOT EXECUTED
4004ff7c: 90 10 00 1c mov %i4, %o0
<== NOT EXECUTED
4004ff80: b0 10 00 08 mov %o0, %i0
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4004ff84: 7f ff 2f f9 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
4004ff88: 90 10 00 1d mov %i5, %o0
<== NOT EXECUTED
msdos_fs_unlock(fs_info);
return rc;
}
4004ff8c: 81 c7 e0 08 ret
<== NOT EXECUTED
4004ff90: 81 e8 00 00 restore
<== NOT EXECUTED
40038538 <msdos_unlock>:
}
RTEMS_INLINE_ROUTINE void msdos_fs_unlock(msdos_fs_info_t *fs_info)
{
rtems_recursive_mutex_unlock(&fs_info->vol_mutex);
40038538: d0 02 20 08 ld [ %o0 + 8 ], %o0
<== NOT EXECUTED
_Mutex_recursive_Release( mutex );
4003853c: 90 02 20 a4 add %o0, 0xa4, %o0
<== NOT EXECUTED
40038540: 82 13 c0 00 mov %o7, %g1
<== NOT EXECUTED
40038544: 7f ff 8e 89 call 4001bf68 <_Mutex_recursive_Release>
<== NOT EXECUTED
40038548: 9e 10 40 00 mov %g1, %o7
<== NOT EXECUTED
4004dc78 <rtems_dosfs_create_default_converter>:
rtems_dosfs_convert_control super;
uint8_t buffer[MSDOS_NAME_MAX_LFN_BYTES];
} msdos_default_convert_control;
rtems_dosfs_convert_control *rtems_dosfs_create_default_converter(void)
{
4004dc78: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
msdos_default_convert_control *self = malloc( sizeof( *self ) );
4004dc7c: 7f fe f8 44 call 4000bd8c <malloc>
<== NOT EXECUTED
4004dc80: 90 10 22 14 mov 0x214, %o0
<== NOT EXECUTED
if ( self != NULL ) {
4004dc84: b0 92 20 00 orcc %o0, 0, %i0
<== NOT EXECUTED
4004dc88: 02 80 00 08 be 4004dca8 <rtems_dosfs_create_default_converter+0x30>
<== NOT EXECUTED
4004dc8c: 03 10 02 17 sethi %hi(0x40085c00), %g1
<== NOT EXECUTED
rtems_dosfs_convert_control *super = &self->super;
super->handler = &msdos_default_convert_handler;
4004dc90: 82 10 62 e8 or %g1, 0x2e8, %g1 ! 40085ee8 <msdos_default_convert_handler>
<== NOT EXECUTED
super->buffer.data = &self->buffer;
4004dc94: 84 06 20 0c add %i0, 0xc, %g2
<== NOT EXECUTED
super->handler = &msdos_default_convert_handler;
4004dc98: c2 26 00 00 st %g1, [ %i0 ]
<== NOT EXECUTED
super->buffer.size = sizeof( self->buffer );
4004dc9c: 82 10 22 08 mov 0x208, %g1
<== NOT EXECUTED
super->buffer.data = &self->buffer;
4004dca0: c4 26 20 04 st %g2, [ %i0 + 4 ]
<== NOT EXECUTED
super->buffer.size = sizeof( self->buffer );
4004dca4: c2 26 20 08 st %g1, [ %i0 + 8 ]
<== NOT EXECUTED
}
return &self->super;
}
4004dca8: 81 c7 e0 08 ret
<== NOT EXECUTED
4004dcac: 81 e8 00 00 restore
<== NOT EXECUTED
4003859c <rtems_dosfs_initialize>:
*/
int rtems_dosfs_initialize(
rtems_filesystem_mount_table_entry_t *mt_entry,
const void *data
)
{
4003859c: 9d e3 bf a0 save %sp, -96, %sp
<== NOT EXECUTED
int rc = 0;
const rtems_dosfs_mount_options *mount_options = data;
rtems_dosfs_convert_control *converter;
if (mount_options == NULL || mount_options->converter == NULL) {
400385a0: 80 a6 60 00 cmp %i1, 0
<== NOT EXECUTED
400385a4: 02 80 00 0c be 400385d4 <rtems_dosfs_initialize+0x38>
<== NOT EXECUTED
400385a8: 01 00 00 00 nop
<== NOT EXECUTED
400385ac: f8 06 40 00 ld [ %i1 ], %i4
<== NOT EXECUTED
400385b0: 80 a7 20 00 cmp %i4, 0
<== NOT EXECUTED
400385b4: 02 80 00 08 be 400385d4 <rtems_dosfs_initialize+0x38>
<== NOT EXECUTED
400385b8: 37 10 02 17 sethi %hi(0x40085c00), %i3
<== NOT EXECUTED
} else {
converter = mount_options->converter;
}
if (converter != NULL) {
rc = msdos_initialize_support(mt_entry,
400385bc: 35 10 02 17 sethi %hi(0x40085c00), %i2
<== NOT EXECUTED
400385c0: 33 10 02 07 sethi %hi(0x40081c00), %i1
<== NOT EXECUTED
400385c4: b6 16 e3 08 or %i3, 0x308, %i3
<== NOT EXECUTED
400385c8: b4 16 a3 48 or %i2, 0x348, %i2
<== NOT EXECUTED
400385cc: 40 00 00 0d call 40038600 <msdos_initialize_support>
<== NOT EXECUTED
400385d0: 93 ee 61 34 restore %i1, 0x134, %o1
<== NOT EXECUTED
converter = rtems_dosfs_create_default_converter();
400385d4: 40 00 55 a9 call 4004dc78 <rtems_dosfs_create_default_converter>
<== NOT EXECUTED
400385d8: 01 00 00 00 nop
<== NOT EXECUTED
if (converter != NULL) {
400385dc: b8 92 20 00 orcc %o0, 0, %i4
<== NOT EXECUTED
400385e0: 12 bf ff f7 bne 400385bc <rtems_dosfs_initialize+0x20>
<== NOT EXECUTED
400385e4: 37 10 02 17 sethi %hi(0x40085c00), %i3
<== NOT EXECUTED
&msdos_ops,
&msdos_file_handlers,
&msdos_dir_handlers,
converter);
} else {
errno = ENOMEM;
400385e8: 40 00 90 cb call 4005c914 <__errno>
<== NOT EXECUTED
400385ec: b0 10 3f ff mov -1, %i0
<== NOT EXECUTED
400385f0: 82 10 20 0c mov 0xc, %g1
<== NOT EXECUTED
400385f4: c2 22 00 00 st %g1, [ %o0 ]
<== NOT EXECUTED
rc = -1;
}
return rc;
}
400385f8: 81 c7 e0 08 ret
<== NOT EXECUTED
400385fc: 81 e8 00 00 restore
<== NOT EXECUTED