home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / discs / f / minixfs < prev    next >
Unknown  |  1991-06-16  |  13.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert Truevision Targa Graphic (image/tga) magic Supported
100% file data default
100% xdgMime image/x-tga default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0b f4 20 3e 6d | 6b 66 73 0d 00 14 05 f4 |..... >m|kfs.....|
|00000010| 0d 00 1e 45 f1 22 57 61 | 72 6e 69 6e 67 21 20 54 |...E."Wa|rning! T|
|00000020| 68 69 73 20 75 74 69 6c | 69 74 79 20 63 61 6e 20 |his util|ity can |
|00000030| 64 65 73 74 72 6f 79 20 | 79 6f 75 72 20 64 69 73 |destroy |your dis|
|00000040| 63 73 21 20 55 73 65 20 | 77 69 74 68 20 63 61 72 |cs! Use |with car|
|00000050| 65 21 22 3a e0 0d 00 28 | 05 f4 0d 00 32 3d f4 20 |e!":...(|....2=. |
|00000060| 54 68 69 73 20 69 73 20 | 61 20 41 52 4d 20 42 41 |This is |a ARM BA|
|00000070| 53 49 43 20 56 20 76 65 | 72 73 69 6f 6e 20 6f 66 |SIC V ve|rsion of|
|00000080| 20 74 68 65 20 4d 69 6e | 69 78 20 6d 6b 66 73 20 | the Min|ix mkfs |
|00000090| 77 72 69 74 74 65 6e 0d | 00 3c 41 f4 20 62 79 20 |written.|.<A. by |
|000000a0| 41 6e 64 79 20 54 61 6e | 65 6e 62 61 75 6d 20 26 |Andy Tan|enbaum &|
|000000b0| 20 50 61 75 6c 20 4f 67 | 69 6c 76 69 65 2e 20 20 | Paul Og|ilvie. |
|000000c0| 54 68 69 73 20 76 65 72 | 73 69 6f 6e 20 77 61 73 |This ver|sion was|
|000000d0| 20 77 72 69 74 74 65 6e | 0d 00 46 41 f4 20 62 79 | written|..FA. by|
|000000e0| 20 4a 61 72 6f 64 20 43 | 20 4e 61 73 68 20 61 6e | Jarod C| Nash an|
|000000f0| 64 20 4d 69 63 68 61 65 | 6c 20 47 72 65 61 73 6c |d Michae|l Greasl|
|00000100| 65 79 20 6f 6e 20 31 37 | 74 68 20 4e 6f 76 65 6d |ey on 17|th Novem|
|00000110| 62 65 72 20 31 39 38 38 | 2e 0d 00 50 05 f4 0d 00 |ber 1988|...P....|
|00000120| 5a 28 f4 20 54 68 65 20 | 70 72 6f 67 72 61 6d 20 |Z(. The |program |
|00000130| 69 73 20 62 61 73 69 63 | 61 6c 6c 79 20 74 68 65 |is basic|ally the|
|00000140| 20 73 61 6d 65 2e 0d 00 | 64 43 f4 20 42 4c 4f 43 | same...|dC. BLOC|
|00000150| 4b 53 20 2d 20 77 65 20 | 77 69 6c 6c 20 75 73 65 |KS - we |will use|
|00000160| 20 38 30 30 20 62 6c 6f | 63 6b 73 20 66 6f 72 20 | 800 blo|cks for |
|00000170| 74 68 65 20 41 63 6f 72 | 6e 20 41 44 46 53 20 73 |the Acor|n ADFS s|
|00000180| 74 79 6c 65 20 64 69 73 | 63 0d 00 6e 10 42 4c 4f |tyle dis|c..n.BLO|
|00000190| 43 4b 53 20 3d 20 38 30 | 30 0d 00 78 0b 42 49 4e |CKS = 80|0..x.BIN|
|000001a0| 20 3d 20 32 0d 00 82 0e | 42 49 4e 47 52 50 20 3d | = 2....|BINGRP =|
|000001b0| 20 32 0d 00 8c 12 f4 20 | 54 68 65 20 74 69 6d 65 | 2..... |The time|
|000001c0| 20 4e 4f 57 0d 00 96 1d | 63 75 72 72 65 6e 74 5f | NOW....|current_|
|000001d0| 74 69 6d 65 25 20 3d 20 | 26 32 33 38 39 61 31 32 |time% = |&2389a12|
|000001e0| 32 0d 00 a0 29 f4 20 46 | 69 72 73 74 20 62 6c 6f |2...). F|irst blo|
|000001f0| 63 6b 20 6e 75 6d 6e 65 | 72 20 6f 66 20 74 68 65 |ck numne|r of the|
|00000200| 20 69 6e 6f 64 65 20 6d | 61 70 0d 00 aa 11 49 4e | inode m|ap....IN|
|00000210| 4f 44 45 5f 4d 41 50 20 | 3d 20 32 0d 00 b4 2f f4 |ODE_MAP |= 2.../.|
|00000220| 20 41 20 63 6f 6e 73 74 | 61 6e 74 20 74 6f 20 73 | A const|ant to s|
|00000230| 61 79 20 27 74 68 69 73 | 20 69 73 20 61 20 73 75 |ay 'this| is a su|
|00000240| 70 65 72 20 62 6c 6f 63 | 6b 27 0d 00 be 17 53 55 |per bloc|k'....SU|
|00000250| 50 45 52 5f 4d 41 47 49 | 43 20 3d 20 26 31 33 37 |PER_MAGI|C = &137|
|00000260| 46 0d 00 c8 25 f4 20 55 | 73 65 20 74 68 65 20 73 |F...%. U|se the s|
|00000270| 74 61 6e 64 61 72 64 20 | 31 6b 20 42 6c 6f 63 6b |tandard |1k Block|
|00000280| 20 73 69 7a 65 2e 0d 00 | d2 15 42 4c 4f 43 4b 5f | size...|..BLOCK_|
|00000290| 53 49 5a 45 20 3d 20 31 | 30 32 34 0d 00 dc 3d f4 |SIZE = 1|024...=.|
|000002a0| 20 43 6f 6e 73 74 61 6e | 74 20 66 6f 72 20 77 6f | Constan|t for wo|
|000002b0| 72 6b 69 6e 67 20 6f 75 | 74 20 74 68 65 20 6e 75 |rking ou|t the nu|
|000002c0| 6d 62 65 72 20 6f 66 20 | 62 69 74 73 20 69 6e 20 |mber of |bits in |
|000002d0| 61 20 62 6c 6f 63 6b 2e | 0d 00 e6 1a f4 20 49 6e |a block.|..... In|
|000002e0| 20 74 68 69 73 20 63 61 | 73 65 2c 20 38 20 2a 20 | this ca|se, 8 * |
|000002f0| 31 4b 0d 00 f0 16 42 49 | 54 5f 4d 41 50 5f 53 48 |1K....BI|T_MAP_SH|
|00000300| 49 46 54 20 3d 20 31 33 | 0d 00 fa 4a f4 20 73 69 |IFT = 13|...J. si|
|00000310| 7a 65 20 6f 66 20 61 20 | 73 68 6f 72 74 20 61 6e |ze of a |short an|
|00000320| 64 20 74 68 65 6e 20 73 | 69 7a 65 20 6f 66 20 61 |d then s|ize of a|
|00000330| 20 70 6f 73 73 69 62 6c | 65 20 6e 61 6d 65 20 66 | possibl|e name f|
|00000340| 6f 72 20 64 69 72 65 63 | 74 6f 72 79 20 65 6e 74 |or direc|tory ent|
|00000350| 72 79 0d 01 04 12 53 48 | 4f 52 54 5f 53 49 5a 45 |ry....SH|ORT_SIZE|
|00000360| 20 3d 20 32 0d 01 0e 12 | 4e 41 4d 45 5f 53 49 5a | = 2....|NAME_SIZ|
|00000370| 45 20 3d 20 31 34 0d 01 | 18 28 f4 20 54 68 65 20 |E = 14..|.(. The |
|00000380| 73 69 7a 65 20 6f 66 20 | 61 20 64 69 72 65 63 74 |size of |a direct|
|00000390| 6f 72 79 20 73 74 72 75 | 63 74 75 72 65 2e 0d 01 |ory stru|cture...|
|000003a0| 22 2e 44 49 52 5f 53 54 | 52 55 43 54 5f 53 49 5a |".DIR_ST|RUCT_SIZ|
|000003b0| 45 20 3d 20 28 53 48 4f | 52 54 5f 53 49 5a 45 20 |E = (SHO|RT_SIZE |
|000003c0| 2b 20 4e 41 4d 45 5f 53 | 49 5a 45 29 0d 01 2c 19 |+ NAME_S|IZE)..,.|
|000003d0| f4 20 62 79 74 65 73 20 | 70 65 72 20 64 69 72 20 |. bytes |per dir |
|000003e0| 65 6e 74 72 79 0d 01 36 | 24 44 49 52 5f 45 4e 54 |entry..6|$DIR_ENT|
|000003f0| 52 59 5f 53 49 5a 45 20 | 3d 20 44 49 52 5f 53 54 |RY_SIZE |= DIR_ST|
|00000400| 52 55 43 54 5f 53 49 5a | 45 0d 01 40 20 f4 20 6e |RUCT_SIZ|E..@ . n|
|00000410| 6f 2e 20 64 69 72 2e 20 | 65 6e 74 72 69 65 73 20 |o. dir. |entries |
|00000420| 70 65 72 20 62 6c 6f 63 | 6b 0d 01 4a 32 4e 52 5f |per bloc|k..J2NR_|
|00000430| 44 49 52 5f 45 4e 54 52 | 49 45 53 20 3d 20 28 42 |DIR_ENTR|IES = (B|
|00000440| 4c 4f 43 4b 5f 53 49 5a | 45 20 81 20 44 49 52 5f |LOCK_SIZ|E . DIR_|
|00000450| 45 4e 54 52 59 5f 53 49 | 5a 45 29 0d 01 54 1b f4 |ENTRY_SI|ZE)..T..|
|00000460| 20 53 69 7a 65 20 6f 66 | 20 61 20 7a 6f 6e 65 20 | Size of| a zone |
|00000470| 6e 75 6d 62 65 72 0d 01 | 5e 1e 5a 4f 4e 45 5f 4e |number..|^.ZONE_N|
|00000480| 55 4d 5f 53 49 5a 45 20 | 3d 20 53 48 4f 52 54 5f |UM_SIZE |= SHORT_|
|00000490| 53 49 5a 45 0d 01 68 28 | f4 20 4e 75 6d 62 65 72 |SIZE..h(|. Number|
|000004a0| 20 6f 66 20 7a 6f 6e 65 | 73 20 70 65 72 20 69 6e | of zone|s per in|
|000004b0| 64 69 72 65 63 74 20 62 | 6c 6f 63 6b 0d 01 72 2d |direct b|lock..r-|
|000004c0| 4e 52 5f 49 4e 44 49 52 | 45 43 54 53 20 3d 20 42 |NR_INDIR|ECTS = B|
|000004d0| 4c 4f 43 4b 5f 53 49 5a | 45 20 81 20 5a 4f 4e 45 |LOCK_SIZ|E . ZONE|
|000004e0| 5f 4e 55 4d 5f 53 49 5a | 45 0d 01 7c 46 f4 20 41 |_NUM_SIZ|E..|F. A|
|000004f0| 20 62 6c 6f 63 6b 20 6f | 66 20 6d 65 6d 6f 72 79 | block o|f memory|
|00000500| 2c 20 75 73 65 64 20 66 | 6f 72 20 70 61 73 73 69 |, used f|or passi|
|00000510| 6e 67 20 7a 65 72 6f 20 | 62 75 66 66 65 72 73 20 |ng zero |buffers |
|00000520| 74 6f 20 50 52 4f 43 70 | 75 74 62 6c 6f 63 6b 0d |to PROCp|utblock.|
|00000530| 01 86 15 de 20 7a 65 72 | 6f 20 42 4c 4f 43 4b 5f |.... zer|o BLOCK_|
|00000540| 53 49 5a 45 0d 01 90 33 | f4 20 6d 65 6d 6f 72 79 |SIZE...3|. memory|
|00000550| 20 73 65 74 20 61 73 69 | 64 65 20 66 6f 72 20 75 | set asi|de for u|
|00000560| 73 65 20 62 79 20 50 52 | 4f 43 69 6e 73 65 72 74 |se by PR|OCinsert|
|00000570| 5f 62 69 74 28 29 2e 0d | 01 9a 1f de 20 69 6e 73 |_bit()..|.... ins|
|00000580| 65 72 74 5f 62 69 74 5f | 62 75 66 20 42 4c 4f 43 |ert_bit_|buf BLOC|
|00000590| 4b 5f 53 49 5a 45 0d 01 | a4 43 f4 20 4e 75 6d 62 |K_SIZE..|.C. Numb|
|000005a0| 65 72 20 6f 66 20 7a 6f | 6e 65 20 70 6f 69 6e 74 |er of zo|ne point|
|000005b0| 65 72 73 2c 20 69 6e 63 | 6c 75 64 69 6e 67 20 74 |ers, inc|luding t|
|000005c0| 68 65 20 69 6e 64 69 72 | 65 63 74 73 20 69 6e 20 |he indir|ects in |
|000005d0| 61 6e 20 69 6e 6f 64 65 | 2e 0d 01 ae 14 4e 52 5f |an inode|.....NR_|
|000005e0| 5a 4f 4e 45 5f 4e 55 4d | 53 20 3d 20 39 0d 01 b8 |ZONE_NUM|S = 9...|
|000005f0| 41 f4 20 4e 75 6d 62 65 | 72 20 6f 66 20 61 63 74 |A. Numbe|r of act|
|00000600| 75 61 6c 20 7a 6f 6e 65 | 20 70 6f 69 6e 74 65 72 |ual zone| pointer|
|00000610| 73 20 6f 6e 20 74 68 65 | 20 69 6e 6f 64 65 20 2d |s on the| inode -|
|00000620| 20 6e 6f 74 20 69 6e 63 | 6c 75 64 69 6e 67 0d 01 | not inc|luding..|
|00000630| c2 1c f4 20 74 68 65 20 | 74 77 6f 20 69 6e 64 69 |... the |two indi|
|00000640| 65 63 74 65 64 20 6f 6e | 65 73 0d 01 cc 23 4e 52 |ected on|es...#NR|
|00000650| 5f 44 5a 4f 4e 45 5f 4e | 55 4d 20 3d 20 4e 52 5f |_DZONE_N|UM = NR_|
|00000660| 5a 4f 4e 45 5f 4e 55 4d | 53 20 2d 20 32 0d 01 d6 |ZONE_NUM|S - 2...|
|00000670| 2c f4 20 6d 65 6d 6f 72 | 79 20 66 6f 72 20 74 68 |,. memor|y for th|
|00000680| 65 20 72 6f 75 74 69 6e | 65 20 46 4e 61 6c 6c 6f |e routin|e FNallo|
|00000690| 63 5f 69 6e 6f 64 65 28 | 29 0d 01 e0 1a de 20 69 |c_inode(|)..... i|
|000006a0| 6e 6f 64 65 5f 62 75 66 | 20 42 4c 4f 43 4b 5f 53 |node_buf| BLOCK_S|
|000006b0| 49 5a 45 0d 01 ea 1c f4 | 20 61 6e 64 20 66 6f 72 |IZE.....| and for|
|000006c0| 20 65 6e 74 65 72 5f 64 | 69 72 28 29 2e 2e 2e 0d | enter_d|ir()....|
|000006d0| 01 f4 18 de 20 69 6e 6f | 5f 62 75 66 20 42 4c 4f |.... ino|_buf BLO|
|000006e0| 43 4b 5f 53 49 5a 45 0d | 01 fe 1a de 20 64 69 72 |CK_SIZE.|.... dir|
|000006f0| 5f 65 6e 74 72 79 20 42 | 4c 4f 43 4b 5f 53 49 5a |_entry B|LOCK_SIZ|
|00000700| 45 0d 02 08 1d e3 20 66 | 6f 6f 25 20 3d 20 30 20 |E..... f|oo% = 0 |
|00000710| b8 20 42 4c 4f 43 4b 5f | 53 49 5a 45 2d 31 0d 02 |. BLOCK_|SIZE-1..|
|00000720| 12 13 20 20 7a 65 72 6f | 3f 66 6f 6f 25 20 3d 20 |.. zero|?foo% = |
|00000730| 30 0d 02 1c 09 ed 66 6f | 6f 25 0d 02 26 46 f4 20 |0.....fo|o%..&F. |
|00000740| 54 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 69 73 |The foll|owing is|
|00000750| 20 61 20 36 34 20 62 79 | 74 65 20 64 69 73 63 20 | a 64 by|te disc |
|00000760| 72 65 63 6f 72 64 20 64 | 65 73 63 72 69 62 69 6e |record d|escribin|
|00000770| 67 20 74 6f 20 41 44 46 | 53 5f 44 69 73 63 4f 70 |g to ADF|S_DiscOp|
|00000780| 0d 02 30 1f f4 20 68 6f | 77 20 74 68 65 20 64 69 |..0.. ho|w the di|
|00000790| 73 63 20 69 73 20 61 72 | 72 61 6e 67 65 64 2e 0d |sc is ar|ranged..|
|000007a0| 02 3a 05 f4 0d 02 44 0a | f4 20 42 79 74 65 0d 02 |.:....D.|. Byte..|
|000007b0| 4e 25 f4 20 20 30 20 20 | 20 20 20 20 20 20 20 20 |N%. 0 | |
|000007c0| 4c 6f 67 32 20 6f 66 20 | 73 65 63 74 6f 72 20 73 |Log2 of |sector s|
|000007d0| 69 7a 65 0d 02 58 2c f4 | 20 20 31 20 20 20 20 20 |ize..X,.| 1 |
|000007e0| 20 20 20 20 20 4e 75 6d | 62 65 72 20 6f 66 20 73 | Num|ber of s|
|000007f0| 65 63 74 6f 72 20 70 65 | 72 20 74 72 61 63 6b 0d |ector pe|r track.|
|00000800| 02 62 21 f4 20 20 32 20 | 20 20 20 20 20 20 20 20 |.b!. 2 | |
|00000810| 20 4e 75 6d 62 65 72 20 | 6f 66 20 68 65 61 64 73 | Number |of heads|
|00000820| 0d 02 6c 24 f4 20 20 33 | 20 20 20 20 20 20 20 20 |..l$. 3| |
|00000830| 20 20 32 20 2d 20 64 6f | 75 62 6c 65 20 64 65 6e | 2 - do|uble den|
|00000840| 73 69 74 79 0d 02 76 17 | f4 20 34 2d 31 35 20 20 |sity..v.|. 4-15 |
|00000850| 20 20 20 20 20 20 5a 65 | 72 6f 73 0d 02 80 24 f4 | Ze|ros...$.|
|00000860| 20 31 36 2d 31 39 20 20 | 20 20 20 20 20 44 69 73 | 16-19 | Dis|
|00000870| 63 20 73 69 7a 65 20 69 | 6e 20 62 79 74 65 73 0d |c size i|n bytes.|
|00000880| 02 8a 17 f4 20 32 30 2d | 36 33 20 20 20 20 20 20 |.... 20-|63 |
|00000890| 20 5a 65 72 6f 73 0d 02 | 94 12 de 20 69 6e 66 6f | Zeros..|... info|
|000008a0| 62 6c 6f 63 6b 20 36 34 | 0d 02 9e 22 f4 20 73 65 |block 64|...". se|
|000008b0| 74 20 75 70 20 74 68 65 | 20 64 69 73 63 20 72 65 |t up the| disc re|
|000008c0| 63 6f 72 64 20 62 6c 6f | 63 6b 0d 02 a8 13 3f 69 |cord blo|ck....?i|
|000008d0| 6e 66 6f 62 6c 6f 63 6b | 20 3d 20 31 30 0d 02 b2 |nfoblock| = 10...|
|000008e0| 16 3f 28 69 6e 66 6f 62 | 6c 6f 63 6b 2b 31 29 20 |.?(infob|lock+1) |
|000008f0| 3d 20 35 0d 02 bc 16 3f | 28 69 6e 66 6f 62 6c 6f |= 5....?|(infoblo|
|00000900| 63 6b 2b 32 29 20 3d 20 | 32 0d 02 c6 16 3f 28 69 |ck+2) = |2....?(i|
|00000910| 6e 66 6f 62 6c 6f 63 6b | 2b 33 29 20 3d 20 32 0d |nfoblock|+3) = 2.|
|00000920| 02 d0 16 21 28 69 6e 66 | 6f 62 6c 6f 63 6b 2b 34 |...!(inf|oblock+4|
|00000930| 29 20 3d 20 30 0d 02 da | 16 21 28 69 6e 66 6f 62 |) = 0...|.!(infob|
|00000940| 6c 6f 63 6b 2b 38 29 20 | 3d 20 30 0d 02 e4 17 21 |lock+8) |= 0....!|
|00000950| 28 69 6e 66 6f 62 6c 6f | 63 6b 2b 31 32 29 20 3d |(infoblo|ck+12) =|
|00000960| 20 30 0d 02 ee 1e 21 28 | 69 6e 66 6f 62 6c 6f 63 | 0....!(|infobloc|
|00000970| 6b 2b 31 36 29 20 3d 20 | 38 30 30 2a 31 30 32 34 |k+16) = |800*1024|
|00000980| 0d 02 f8 18 e3 20 66 6f | 6f 25 20 3d 20 32 30 20 |..... fo|o% = 20 |
|00000990| b8 20 36 33 20 88 20 34 | 0d 03 02 1b 20 20 21 28 |. 63 . 4|.... !(|
|000009a0| 69 6e 66 6f 62 6c 6f 63 | 6b 2b 66 6f 6f 25 29 20 |infobloc|k+foo%) |
|000009b0| 3d 20 30 0d 03 0c 05 ed | 0d 03 16 35 f4 20 43 6f |= 0.....|...5. Co|
|000009c0| 6e 73 74 61 6e 74 73 20 | 66 6f 72 20 6f 66 66 73 |nstants |for offs|
|000009d0| 65 74 74 69 6e 67 20 69 | 6e 73 69 64 65 20 74 68 |etting i|nside th|
|000009e0| 65 20 73 75 70 65 72 62 | 6c 6f 63 6b 2e 0d 03 20 |e superb|lock... |
|000009f0| 3d f4 20 54 68 69 73 20 | 69 73 20 74 6f 20 62 65 |=. This |is to be|
|00000a00| 20 65 71 75 69 76 61 6c | 65 6e 74 20 74 6f 20 74 | equival|ent to t|
|00000a10| 68 65 20 43 20 73 74 72 | 75 63 74 75 72 65 20 69 |he C str|ucture i|
|00000a20| 74 20 69 73 20 74 61 6b | 65 6e 0d 03 2a 0b f4 20 |t is tak|en..*.. |
|00000a30| 66 72 6f 6d 2e 0d 03 34 | 11 73 5f 6e 69 6e 6f 64 |from...4|.s_ninod|
|00000a40| 65 73 20 3d 20 30 0d 03 | 3e 10 73 5f 6e 7a 6f 6e |es = 0..|>.s_nzon|
|00000a50| 65 73 20 3d 20 32 0d 03 | 48 15 73 5f 69 6d 61 70 |es = 2..|H.s_imap|
|00000a60| 5f 62 6c 6f 63 6b 73 20 | 3d 20 34 0d 03 52 15 73 |_blocks |= 4..R.s|
|00000a70| 5f 7a 6d 61 70 5f 62 6c | 6f 63 6b 73 20 3d 20 36 |_zmap_bl|ocks = 6|
|00000a80| 0d 03 5c 17 73 5f 66 69 | 72 73 74 64 61 74 61 7a |..\.s_fi|rstdataz|
|00000a90| 6f 6e 65 20 3d 20 38 0d | 03 66 18 73 5f 6c 6f 67 |one = 8.|.f.s_log|
|00000aa0| 5f 7a 6f 6e 65 5f 73 69 | 7a 65 20 3d 20 31 30 0d |_zone_si|ze = 10.|
|00000ab0| 03 70 13 73 5f 6d 61 78 | 5f 73 69 7a 65 20 3d 20 |.p.s_max|_size = |
|00000ac0| 31 32 0d 03 7a 10 73 5f | 6d 61 67 69 63 20 3d 20 |12..z.s_|magic = |
|00000ad0| 31 36 0d 03 84 0f 73 5f | 69 6d 61 70 20 3d 20 31 |16....s_|imap = 1|
|00000ae0| 38 0d 03 8e 0f 73 5f 7a | 6d 61 70 20 3d 20 33 34 |8....s_z|map = 34|
|00000af0| 0d 03 98 0e 73 5f 64 65 | 76 20 3d 20 35 38 0d 03 |....s_de|v = 58..|
|00000b00| a2 0f 73 5f 69 73 75 70 | 20 3d 20 36 30 0d 03 ac |..s_isup| = 60...|
|00000b10| 11 73 5f 69 6d 6f 75 6e | 74 20 3d 20 36 34 0d 03 |.s_imoun|t = 64..|
|00000b20| b6 0f 73 5f 74 69 6d 65 | 20 3d 20 36 38 0d 03 c0 |..s_time| = 68...|
|00000b30| 12 73 5f 72 64 5f 6f 6e | 6c 79 20 3d 20 37 32 0d |.s_rd_on|ly = 72.|
|00000b40| 03 ca 10 73 5f 64 69 72 | 74 79 20 3d 20 37 33 0d |...s_dir|ty = 73.|
|00000b50| 03 d4 0e 73 5f 65 6e 64 | 20 3d 20 37 34 0d 03 de |...s_end| = 74...|
|00000b60| 2f f4 20 43 6f 6e 73 74 | 61 6e 74 73 20 66 6f 72 |/. Const|ants for|
|00000b70| 20 6f 66 66 73 65 74 74 | 69 6e 67 20 69 6e 73 69 | offsett|ing insi|
|00000b80| 64 65 20 61 6e 20 69 6e | 6f 64 65 2e 0d 03 e8 43 |de an in|ode....C|
|00000b90| f4 20 54 68 69 73 20 69 | 73 20 65 71 75 69 76 61 |. This i|s equiva|
|00000ba0| 6c 65 6e 74 20 74 6f 20 | 74 68 65 20 43 20 73 74 |lent to |the C st|
|00000bb0| 72 75 63 74 75 72 65 20 | 66 72 6f 6d 20 77 68 69 |ructure |from whi|
|00000bc0| 63 68 20 69 74 20 69 73 | 20 74 61 6b 65 6e 2e 0d |ch it is| taken..|
|00000bd0| 03 f2 3a f4 20 54 68 65 | 20 73 69 7a 65 20 26 20 |..:. The| size & |
|00000be0| 6e 6f 2e 20 6f 66 20 69 | 6e 6f 64 65 73 20 69 6e |no. of i|nodes in|
|00000bf0| 20 61 20 62 6c 6f 63 6b | 20 69 73 20 61 6c 73 6f | a block| is also|
|00000c00| 20 64 65 66 69 6e 65 64 | 2e 0d 03 fc 0e 69 5f 6d | defined|.....i_m|
|00000c10| 6f 64 65 20 3d 20 30 0d | 04 06 0d 69 5f 75 69 64 |ode = 0.|...i_uid|
|00000c20| 20 3d 20 32 0d 04 10 0e | 69 5f 73 69 7a 65 20 3d | = 2....|i_size =|
|00000c30| 20 34 0d 04 1a 11 69 5f | 6d 6f 64 74 69 6d 65 20 | 4....i_|modtime |
|00000c40| 3d 20 38 0d 04 24 0e 69 | 5f 67 69 64 20 3d 20 31 |= 8..$.i|_gid = 1|
|00000c50| 32 0d 04 2e 11 69 5f 6e | 6c 69 6e 6b 73 20 3d 20 |2....i_n|links = |
|00000c60| 31 33 0d 04 38 0f 69 5f | 7a 6f 6e 65 20 3d 20 31 |13..8.i_|zone = 1|
|00000c70| 34 0d 04 42 13 49 4e 4f | 44 45 5f 53 49 5a 45 20 |4..B.INO|DE_SIZE |
|00000c80| 3d 20 33 32 0d 04 4c 2e | 49 4e 4f 44 45 53 5f 50 |= 32..L.|INODES_P|
|00000c90| 45 52 5f 42 4c 4f 43 4b | 20 3d 20 42 4c 4f 43 4b |ER_BLOCK| = BLOCK|
|00000ca0| 5f 53 49 5a 45 20 81 20 | 49 4e 4f 44 45 5f 53 49 |_SIZE . |INODE_SI|
|00000cb0| 5a 45 0d 04 56 38 f4 20 | 43 6f 6e 73 74 61 6e 74 |ZE..V8. |Constant|
|00000cc0| 73 20 66 6f 72 20 6f 66 | 66 73 65 74 74 69 6e 67 |s for of|fsetting|
|00000cd0| 20 69 6e 73 69 64 65 20 | 61 20 64 69 72 65 63 74 | inside |a direct|
|00000ce0| 6f 72 79 20 65 6e 74 72 | 79 2e 0d 04 60 28 f4 20 |ory entr|y...`(. |
|00000cf0| 54 68 69 73 20 69 73 20 | 74 6f 20 73 69 6d 75 6c |This is |to simul|
|00000d00| 61 74 65 20 61 20 43 20 | 73 74 72 75 63 74 75 72 |ate a C |structur|
|00000d10| 65 2e 0d 04 6a 11 64 69 | 72 5f 69 6e 75 6d 62 20 |e...j.di|r_inumb |
|00000d20| 3d 20 30 0d 04 74 10 64 | 69 72 5f 6e 61 6d 65 20 |= 0..t.d|ir_name |
|00000d30| 3d 20 32 0d 04 7e 3a f4 | 20 45 6e 6f 75 67 68 20 |= 2..~:.| Enough |
|00000d40| 62 6c 6f 63 6b 73 20 66 | 6f 72 20 61 6e 79 20 73 |blocks f|or any s|
|00000d50| 69 7a 65 20 64 69 73 63 | 2e 2e 2e 6d 75 73 74 20 |ize disc|...must |
|00000d60| 62 65 20 61 20 6d 75 6c | 74 69 70 6c 65 0d 04 88 |be a mul|tiple...|
|00000d70| 0a f4 20 6f 66 20 38 0d | 04 92 14 4e 5f 42 4c 4f |.. of 8.|...N_BLO|
|00000d80| 43 4b 53 20 3d 20 33 32 | 30 30 30 0d 04 9c 3f f4 |CKS = 32|000...?.|
|00000d90| 20 54 68 69 73 20 62 6c | 6f 63 6b 20 6f 66 20 6d | This bl|ock of m|
|00000da0| 65 6d 6f 72 79 20 72 65 | 6d 65 6d 62 65 72 73 20 |emory re|members |
|00000db0| 77 68 65 74 68 65 72 20 | 61 20 67 69 76 65 6e 20 |whether |a given |
|00000dc0| 64 69 73 63 20 62 6c 6f | 63 6b 0d 04 a6 18 f4 20 |disc blo|ck..... |
|00000dd0| 68 61 73 20 62 65 65 6e | 20 61 63 63 65 73 73 65 |has been| accesse|
|00000de0| 64 2e 0d 04 b0 22 55 4d | 41 50 5f 53 49 5a 45 20 |d...."UM|AP_SIZE |
|00000df0| 3d 20 28 4e 5f 42 4c 4f | 43 4b 53 20 2b 20 38 29 |= (N_BLO|CKS + 8)|
|00000e00| 20 81 20 38 0d 04 ba 14 | de 20 75 6d 61 70 20 55 | . 8....|. umap U|
|00000e10| 4d 41 50 5f 53 49 5a 45 | 0d 04 c4 2a f4 20 43 6c |MAP_SIZE|...*. Cl|
|00000e20| 65 61 72 20 74 68 65 20 | 62 69 74 20 6d 61 70 20 |ear the |bit map |
|00000e30| 6f 66 20 61 63 63 65 73 | 73 65 64 20 62 6c 6f 63 |of acces|sed bloc|
|00000e40| 6b 73 0d 04 ce 1c e3 20 | 66 6f 6f 25 20 3d 20 30 |ks..... |foo% = 0|
|00000e50| 20 b8 20 55 4d 41 50 5f | 53 49 5a 45 2d 31 0d 04 | . UMAP_|SIZE-1..|
|00000e60| d8 13 20 20 75 6d 61 70 | 3f 66 6f 6f 25 20 3d 20 |.. umap|?foo% = |
|00000e70| 30 0d 04 e2 05 ed 0d 04 | ec 33 f4 20 69 6e 69 74 |0.......|.3. init|
|00000e80| 69 61 6c 69 73 65 20 74 | 68 65 20 73 74 61 72 74 |ialise t|he start|
|00000e90| 20 70 6f 73 69 74 69 6f | 6e 20 6f 66 20 74 68 65 | positio|n of the|
|00000ea0| 20 7a 6f 6e 65 20 6d 61 | 70 0d 04 f6 11 7a 6f 6e | zone ma|p....zon|
|00000eb0| 65 5f 6d 61 70 25 20 3d | 20 33 0d 05 00 14 62 6c |e_map% =| 3....bl|
|00000ec0| 6f 63 6b 73 25 20 3d 20 | 42 4c 4f 43 4b 53 0d 05 |ocks% = |BLOCKS..|
|00000ed0| 0a 1f f4 20 41 73 73 75 | 6d 65 20 33 20 62 6c 6f |... Assu|me 3 blo|
|00000ee0| 63 6b 73 20 70 65 72 20 | 66 69 6c 65 2e 0d 05 14 |cks per |file....|
|00000ef0| 1d 69 6e 6f 64 65 73 25 | 20 3d 20 62 6c 6f 63 6b |.inodes%| = block|
|00000f00| 73 25 20 81 20 33 20 2b | 20 38 0d 05 1e 21 f4 20 |s% . 3 +| 8...!. |
|00000f10| 43 6f 6e 76 65 72 74 65 | 64 20 66 72 6f 6d 20 4f |Converte|d from O|
|00000f20| 63 74 61 6c 20 30 34 30 | 37 37 37 0d 05 28 11 6d |ctal 040|777..(.m|
|00000f30| 6f 64 65 25 20 3d 20 26 | 34 31 46 46 0d 05 32 10 |ode% = &|41FF..2.|
|00000f40| 75 73 72 69 64 25 20 3d | 20 42 49 4e 0d 05 3c 13 |usrid% =| BIN..<.|
|00000f50| 67 72 70 69 64 25 20 3d | 20 42 49 4e 47 52 50 0d |grpid% =| BINGRP.|
|00000f60| 05 46 17 6e 72 69 6e 6f | 64 65 73 25 20 3d 20 69 |.F.nrino|des% = i|
|00000f70| 6e 6f 64 65 73 25 0d 05 | 50 17 6e 72 62 6c 6f 63 |nodes%..|P.nrbloc|
|00000f80| 6b 73 25 20 3d 20 62 6c | 6f 63 6b 73 25 0d 05 5a |ks% = bl|ocks%..Z|
|00000f90| 1d f4 20 57 72 69 74 65 | 20 61 20 6e 75 6c 6c 20 |.. Write| a null |
|00000fa0| 62 6f 6f 74 20 62 6c 6f | 63 6b 0d 05 64 23 f1 22 |boot blo|ck..d#."|
|00000fb0| 43 72 65 61 74 69 6e 67 | 20 4e 55 4c 4c 20 62 6f |Creating| NULL bo|
|00000fc0| 6f 74 20 62 6c 6f 63 6b | 2e 2e 2e 22 3b 0d 05 6e |ot block|...";..n|
|00000fd0| 16 f2 70 75 74 62 6c 6f | 63 6b 28 30 2c 20 7a 65 |..putblo|ck(0, ze|
|00000fe0| 72 6f 29 0d 05 78 0c f1 | 22 64 6f 6e 65 2e 22 0d |ro)..x..|"done.".|
|00000ff0| 05 82 13 7a 6f 6e 65 5f | 73 68 69 66 74 25 20 3d |...zone_|shift% =|
|00001000| 20 30 0d 05 8c 23 7a 6f | 6e 65 73 25 20 3d 20 62 | 0...#zo|nes% = b|
|00001010| 6c 6f 63 6b 73 25 20 3e | 3e 20 7a 6f 6e 65 5f 73 |locks% >|> zone_s|
|00001020| 68 69 66 74 25 0d 05 96 | 1c f1 22 43 72 65 61 74 |hift%...|.."Creat|
|00001030| 69 6e 67 20 73 75 70 65 | 72 20 62 6c 6f 63 6b 3a |ing supe|r block:|
|00001040| 22 0d 05 a0 1b f2 73 75 | 70 65 72 28 7a 6f 6e 65 |".....su|per(zone|
|00001050| 73 25 2c 20 69 6e 6f 64 | 65 73 25 29 0d 05 aa 22 |s%, inod|es%)..."|
|00001060| f1 22 43 72 65 61 74 69 | 6e 67 20 72 6f 6f 74 20 |."Creati|ng root |
|00001070| 64 69 72 65 63 74 6f 72 | 79 2e 2e 2e 22 3b 0d 05 |director|y...";..|
|00001080| b4 2c 69 25 20 3d 20 a4 | 61 6c 6c 6f 63 5f 69 6e |.,i% = .|alloc_in|
|00001090| 6f 64 65 28 6d 6f 64 65 | 25 2c 20 75 73 72 69 64 |ode(mode|%, usrid|
|000010a0| 25 2c 20 67 72 70 69 64 | 25 29 0d 05 be 10 f2 72 |%, grpid|%).....r|
|000010b0| 6f 6f 74 64 69 72 28 69 | 25 29 0d 05 c8 10 f1 22 |ootdir(i|%)....."|
|000010c0| 61 6c 6c 20 64 6f 6e 65 | 21 22 0d 05 d2 05 e0 0d |all done|!"......|
|000010d0| 05 dc 3d f4 20 73 75 70 | 65 72 28 29 20 2d 20 63 |..=. sup|er() - c|
|000010e0| 6f 6e 73 74 72 75 63 74 | 20 61 20 73 75 70 65 72 |onstruct| a super|
|000010f0| 20 62 6c 6f 63 6b 2e 20 | 20 54 61 6b 65 6e 20 73 | block. | Taken s|
|00001100| 74 72 61 69 67 68 74 20 | 66 72 6f 6d 0d 05 e6 11 |traight |from....|
|00001110| f4 20 4d 69 6e 69 78 20 | 6d 6b 66 73 2e 0d 05 f0 |. Minix |mkfs....|
|00001120| 1d dd 20 f2 73 75 70 65 | 72 28 7a 6f 6e 65 73 25 |.. .supe|r(zones%|
|00001130| 2c 20 69 6e 6f 64 65 73 | 25 29 0d 05 fa 41 20 20 |, inodes|%)...A |
|00001140| ea 20 73 75 70 2c 20 6e | 6f 5f 62 6c 6f 63 6b 73 |. sup, n|o_blocks|
|00001150| 5f 69 6e 6f 64 65 73 25 | 2c 20 62 73 25 2c 20 6e |_inodes%|, bs%, n|
|00001160| 6f 5f 62 6c 6f 63 6b 73 | 5f 7a 6f 6e 65 73 25 2c |o_blocks|_zones%,|
|00001170| 20 69 6e 6f 64 65 62 6c | 6b 73 25 0d 06 04 40 20 | inodebl|ks%...@ |
|00001180| 20 ea 20 69 6e 69 74 62 | 6c 6b 73 25 2c 20 7a 6f | . initb|lks%, zo|
|00001190| 6e 65 62 6c 6b 73 25 2c | 20 6d 61 70 5f 73 69 7a |neblks%,| map_siz|
|000011a0| 65 25 2c 20 62 69 74 5f | 6d 61 70 5f 6c 65 6e 25 |e%, bit_|map_len%|
|000011b0| 2c 20 62 5f 6e 65 65 64 | 65 64 25 0d 06 0e 24 20 |, b_need|ed%...$ |
|000011c0| 20 ea 20 62 5f 61 6c 6c | 6f 63 61 74 65 64 25 2c | . b_all|ocated%,|
|000011d0| 20 72 65 73 69 64 75 61 | 6c 25 2c 20 7a 6f 25 0d | residua|l%, zo%.|
|000011e0| 06 18 16 20 20 de 20 73 | 75 70 20 42 4c 4f 43 4b |... . s|up BLOCK|
|000011f0| 5f 53 49 5a 45 0d 06 22 | 1e 20 20 62 73 25 20 3d |_SIZE.."|. bs% =|
|00001200| 20 31 20 3c 3c 20 42 49 | 54 5f 4d 41 50 5f 53 48 | 1 << BI|T_MAP_SH|
|00001210| 49 46 54 0d 06 2c 2f 20 | 20 6e 6f 5f 62 6c 6f 63 |IFT..,/ | no_bloc|
|00001220| 6b 73 5f 69 6e 6f 64 65 | 73 25 20 3d 20 28 69 6e |ks_inode|s% = (in|
|00001230| 6f 64 65 73 25 20 2b 20 | 62 73 25 29 20 81 20 62 |odes% + |bs%) . b|
|00001240| 73 25 0d 06 36 31 20 20 | 6e 6f 5f 62 6c 6f 63 6b |s%..61 |no_block|
|00001250| 73 5f 7a 6f 6e 65 73 25 | 20 3d 20 28 7a 6f 6e 65 |s_zones%| = (zone|
|00001260| 73 25 20 2b 20 62 73 25 | 20 2d 20 31 29 20 81 20 |s% + bs%| - 1) . |
|00001270| 62 73 25 0d 06 40 28 20 | 20 f2 70 75 74 5f 73 68 |bs%..@( | .put_sh|
|00001280| 6f 72 74 28 73 75 70 2b | 73 5f 6e 69 6e 6f 64 65 |ort(sup+|s_ninode|
|00001290| 73 2c 20 69 6e 6f 64 65 | 73 25 29 0d 06 4a 26 20 |s, inode|s%)..J& |
|000012a0| 20 f2 70 75 74 5f 73 68 | 6f 72 74 28 73 75 70 2b | .put_sh|ort(sup+|
|000012b0| 73 5f 6e 7a 6f 6e 65 73 | 2c 20 7a 6f 6e 65 73 25 |s_nzones|, zones%|
|000012c0| 29 0d 06 54 36 20 20 f2 | 70 75 74 5f 73 68 6f 72 |)..T6 .|put_shor|
|000012d0| 74 28 73 75 70 2b 73 5f | 69 6d 61 70 5f 62 6c 6f |t(sup+s_|imap_blo|
|000012e0| 63 6b 73 2c 20 6e 6f 5f | 62 6c 6f 63 6b 73 5f 69 |cks, no_|blocks_i|
|000012f0| 6e 6f 64 65 73 25 29 0d | 06 5e 35 20 20 f2 70 75 |nodes%).|.^5 .pu|
|00001300| 74 5f 73 68 6f 72 74 28 | 73 75 70 2b 73 5f 7a 6d |t_short(|sup+s_zm|
|00001310| 61 70 5f 62 6c 6f 63 6b | 73 2c 20 6e 6f 5f 62 6c |ap_block|s, no_bl|
|00001320| 6f 63 6b 73 5f 7a 6f 6e | 65 73 25 29 0d 06 68 3e |ocks_zon|es%)..h>|
|00001330| 20 20 69 6e 6f 64 65 5f | 6f 66 66 73 65 74 25 20 | inode_|offset% |
|00001340| 3d 20 6e 6f 5f 62 6c 6f | 63 6b 73 5f 69 6e 6f 64 |= no_blo|cks_inod|
|00001350| 65 73 25 20 2b 20 6e 6f | 5f 62 6c 6f 63 6b 73 5f |es% + no|_blocks_|
|00001360| 7a 6f 6e 65 73 25 20 2b | 20 32 0d 06 72 46 20 20 |zones% +| 2..rF |
|00001370| 69 6e 6f 64 65 62 6c 6b | 73 25 20 3d 20 28 69 6e |inodeblk|s% = (in|
|00001380| 6f 64 65 73 25 20 2b 20 | 49 4e 4f 44 45 53 5f 50 |odes% + |INODES_P|
|00001390| 45 52 5f 42 4c 4f 43 4b | 20 2d 20 31 29 20 81 20 |ER_BLOCK| - 1) . |
|000013a0| 49 4e 4f 44 45 53 5f 50 | 45 52 5f 42 4c 4f 43 4b |INODES_P|ER_BLOCK|
|000013b0| 0d 06 7c 2c 20 20 69 6e | 69 74 62 6c 6b 73 25 20 |..|, in|itblks% |
|000013c0| 3d 20 69 6e 6f 64 65 5f | 6f 66 66 73 65 74 25 20 |= inode_|offset% |
|000013d0| 2b 20 69 6e 6f 64 65 62 | 6c 6b 73 25 0d 06 86 46 |+ inodeb|lks%...F|
|000013e0| 20 20 69 6e 69 74 7a 6f | 6e 65 73 25 20 3d 20 28 | initzo|nes% = (|
|000013f0| 69 6e 69 74 62 6c 6b 73 | 25 20 2b 20 28 31 20 3c |initblks|% + (1 <|
|00001400| 3c 20 7a 6f 6e 65 5f 73 | 68 69 66 74 25 29 20 2d |< zone_s|hift%) -|
|00001410| 20 31 29 20 3e 3e 20 7a | 6f 6e 65 5f 73 68 69 66 | 1) >> z|one_shif|
|00001420| 74 25 0d 06 90 29 20 20 | 6e 72 7a 6f 6e 65 73 25 |t%...) |nrzones%|
|00001430| 20 3d 20 6e 72 62 6c 6f | 63 6b 73 25 20 3e 3e 20 | = nrblo|cks% >> |
|00001440| 7a 6f 6e 65 5f 73 68 69 | 66 74 25 0d 06 9a 31 20 |zone_shi|ft%...1 |
|00001450| 20 f2 70 75 74 5f 73 68 | 6f 72 74 28 73 75 70 2b | .put_sh|ort(sup+|
|00001460| 73 5f 66 69 72 73 74 64 | 61 74 61 7a 6f 6e 65 2c |s_firstd|atazone,|
|00001470| 20 69 6e 69 74 7a 6f 6e | 65 73 25 29 0d 06 a4 1c | initzon|es%)....|
|00001480| 20 20 7a 6f 66 66 25 20 | 3d 20 69 6e 69 74 7a 6f | zoff% |= initzo|
|00001490| 6e 65 73 25 20 2d 20 31 | 0d 06 ae 32 20 20 f2 70 |nes% - 1|...2 .p|
|000014a0| 75 74 5f 73 68 6f 72 74 | 28 73 75 70 2b 73 5f 6c |ut_short|(sup+s_l|
|000014b0| 6f 67 5f 7a 6f 6e 65 5f | 73 69 7a 65 2c 20 7a 6f |og_zone_|size, zo|
|000014c0| 6e 65 5f 73 68 69 66 74 | 25 29 0d 06 b8 2a 20 20 |ne_shift|%)...* |
|000014d0| f2 70 75 74 5f 73 68 6f | 72 74 28 73 75 70 2b 73 |.put_sho|rt(sup+s|
|000014e0| 5f 6d 61 67 69 63 2c 20 | 53 55 50 45 52 5f 4d 41 |_magic, |SUPER_MA|
|000014f0| 47 49 43 29 0d 06 c2 38 | 20 20 7a 6f 25 20 3d 20 |GIC)...8| zo% = |
|00001500| 37 20 2b 20 4e 52 5f 49 | 4e 44 49 52 45 43 54 53 |7 + NR_I|NDIRECTS|
|00001510| 20 2b 20 4e 52 5f 49 4e | 44 49 52 45 43 54 53 2a | + NR_IN|DIRECTS*|
|00001520| 4e 52 5f 49 4e 44 49 52 | 45 43 54 53 0d 06 cc 2f |NR_INDIR|ECTS.../|
|00001530| 20 20 f2 70 75 74 5f 6c | 6f 6e 67 28 73 75 70 2b | .put_l|ong(sup+|
|00001540| 73 5f 6d 61 78 5f 73 69 | 7a 65 2c 20 7a 6f 25 2a |s_max_si|ze, zo%*|
|00001550| 42 4c 4f 43 4b 5f 53 49 | 5a 45 29 0d 06 d6 23 20 |BLOCK_SI|ZE)...# |
|00001560| 20 7a 6f 6e 65 5f 73 69 | 7a 65 25 20 3d 20 31 20 | zone_si|ze% = 1 |
|00001570| 3c 3c 20 7a 6f 6e 65 5f | 73 68 69 66 74 25 0d 06 |<< zone_|shift%..|
|00001580| e0 36 20 20 f4 20 4e 75 | 6c 6c 20 74 68 65 20 72 |.6 . Nu|ll the r|
|00001590| 65 73 74 20 6f 66 20 74 | 68 65 20 62 79 74 65 73 |est of t|he bytes|
|000015a0| 20 69 6e 20 74 68 65 20 | 73 75 70 65 72 20 62 6c | in the |super bl|
|000015b0| 6f 63 6b 2e 0d 06 ea 2f | 20 20 e3 20 66 6f 6f 25 |ock..../| . foo%|
|000015c0| 20 3d 20 28 73 75 70 2b | 73 5f 65 6e 64 29 20 b8 | = (sup+|s_end) .|
|000015d0| 20 28 73 75 70 2b 42 4c | 4f 43 4b 5f 53 49 5a 45 | (sup+BL|OCK_SIZE|
|000015e0| 2d 31 29 0d 06 f4 11 20 | 20 20 20 3f 66 6f 6f 25 |-1).... | ?foo%|
|000015f0| 20 3d 20 30 0d 06 fe 07 | 20 20 ed 0d 07 08 17 20 | = 0....| ..... |
|00001600| 20 f2 70 75 74 62 6c 6f | 63 6b 28 31 2c 20 73 75 | .putblo|ck(1, su|
|00001610| 70 29 0d 07 12 36 20 20 | f4 20 43 6c 65 61 72 20 |p)...6 |. Clear |
|00001620| 69 6e 6f 64 65 2f 7a 6f | 6e 65 20 62 69 74 20 6d |inode/zo|ne bit m|
|00001630| 61 70 73 20 61 6e 64 20 | 74 68 65 20 69 6e 6f 64 |aps and |the inod|
|00001640| 65 20 74 61 62 6c 65 73 | 0d 07 1c 25 20 20 f1 22 |e tables|...% ."|
|00001650| 43 6c 65 61 72 69 6e 67 | 20 69 6e 6f 64 65 2f 7a |Clearing| inode/z|
|00001660| 6f 6e 65 20 6d 61 70 73 | 2e 2e 2e 22 3b 0d 07 26 |one maps|...";..&|
|00001670| 1e 20 20 e3 20 66 6f 6f | 25 20 3d 20 32 20 b8 20 |. . foo|% = 2 . |
|00001680| 69 6e 69 74 62 6c 6b 73 | 25 2d 31 0d 07 30 1d 20 |initblks|%-1..0. |
|00001690| 20 20 20 f2 70 75 74 62 | 6c 6f 63 6b 28 66 6f 6f | .putb|lock(foo|
|000016a0| 25 2c 20 7a 65 72 6f 29 | 0d 07 3a 07 20 20 ed 0d |%, zero)|..:. ..|
|000016b0| 07 44 0e 20 20 f1 22 64 | 6f 6e 65 2e 22 0d 07 4e |.D. ."d|one."..N|
|000016c0| 1d 20 20 6e 65 78 74 5f | 7a 6f 6e 65 25 20 3d 20 |. next_|zone% = |
|000016d0| 69 6e 69 74 7a 6f 6e 65 | 73 25 0d 07 58 15 20 20 |initzone|s%..X. |
|000016e0| 6e 65 78 74 5f 69 6e 6f | 64 65 25 20 3d 20 31 0d |next_ino|de% = 1.|
|000016f0| 07 62 42 20 20 f4 20 4d | 61 72 6b 20 61 6c 6c 20 |.bB . M|ark all |
|00001700| 62 69 74 73 20 62 65 79 | 6f 6e 64 20 74 68 65 20 |bits bey|ond the |
|00001710| 65 6e 64 20 6f 66 20 74 | 68 65 20 6c 65 67 61 6c |end of t|he legal|
|00001720| 20 69 6e 6f 64 65 73 20 | 61 6e 64 20 7a 6f 6e 65 | inodes |and zone|
|00001730| 73 0d 07 6c 34 20 20 f4 | 20 61 73 20 61 6c 6c 6f |s..l4 .| as allo|
|00001740| 63 61 74 65 64 2e 20 20 | 54 68 75 73 20 73 65 74 |cated. |Thus set|
|00001750| 74 69 6e 67 20 75 70 20 | 74 68 65 20 62 69 74 20 |ting up |the bit |
|00001760| 6d 61 70 73 2e 0d 07 76 | 49 20 20 f4 20 20 20 46 |maps...v|I . F|
|00001770| 6f 72 20 69 6e 6f 64 65 | 73 3a 20 45 76 65 72 79 |or inode|s: Every|
|00001780| 20 69 6e 6f 64 65 20 6f | 63 63 75 70 69 65 73 20 | inode o|ccupies |
|00001790| 61 6e 20 62 69 74 20 6d | 61 70 20 73 6c 6f 74 2c |an bit m|ap slot,|
|000017a0| 20 65 76 65 6e 20 69 6e | 6f 64 65 20 30 2e 0d 07 | even in|ode 0...|
|000017b0| 80 4a 20 20 f4 20 20 20 | 20 20 20 20 20 20 20 20 |.J . | |
|000017c0| 20 20 20 20 54 68 65 20 | 66 69 72 73 74 20 75 73 | The |first us|
|000017d0| 61 62 6c 65 20 69 6e 6f | 64 65 20 69 73 20 69 6e |able ino|de is in|
|000017e0| 6f 64 65 20 31 2c 20 73 | 6f 20 73 65 74 20 62 69 |ode 1, s|o set bi|
|000017f0| 74 20 30 20 74 6f 20 31 | 0d 07 8a 48 20 20 f4 20 |t 0 to 1|...H . |
|00001800| 20 20 46 6f 72 20 7a 6f | 6e 65 73 3a 20 20 4f 6e | For zo|nes: On|
|00001810| 6c 79 20 7a 6f 6e 65 73 | 20 73 74 61 72 74 69 6e |ly zones| startin|
|00001820| 67 20 66 72 6f 6d 20 74 | 68 65 20 6c 61 73 74 20 |g from t|he last |
|00001830| 69 6e 6f 64 65 20 62 6c | 6f 63 6b 20 68 61 76 65 |inode bl|ock have|
|00001840| 0d 07 94 4a 20 20 f4 20 | 20 20 20 20 20 20 20 20 |...J . | |
|00001850| 20 20 20 20 20 20 73 6c | 6f 74 73 20 6f 6e 20 74 | sl|ots on t|
|00001860| 68 65 20 7a 6f 6e 65 20 | 62 69 74 20 6d 61 70 2e |he zone |bit map.|
|00001870| 20 20 54 68 65 20 66 69 | 72 73 74 20 61 76 61 69 | The fi|rst avai|
|00001880| 6c 61 62 6c 65 20 7a 6f | 6e 65 0d 07 9e 20 20 20 |lable zo|ne... |
|00001890| f4 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000018a0| 69 73 20 7a 6f 6e 65 20 | 31 2e 0d 07 a8 21 20 20 |is zone |1....! |
|000018b0| f1 22 4d 61 72 6b 69 6e | 67 20 69 6c 6c 65 67 61 |."Markin|g illega|
|000018c0| 6c 20 62 69 74 73 2e 2e | 2e 22 3b 0d 07 b2 45 20 |l bits..|.";...E |
|000018d0| 20 f4 20 46 69 72 73 74 | 20 73 65 74 20 74 68 65 | . First| set the|
|000018e0| 20 62 69 74 73 20 62 65 | 79 6f 6e 64 20 74 68 65 | bits be|yond the|
|000018f0| 20 65 6e 64 20 6f 66 20 | 74 68 65 20 69 6e 6f 64 | end of |the inod|
|00001900| 65 73 20 61 73 20 61 6c | 6c 6f 63 61 74 65 64 2e |es as al|located.|
|00001910| 0d 07 bc 24 20 20 6d 61 | 70 5f 73 69 7a 65 25 20 |...$ ma|p_size% |
|00001920| 3d 20 31 20 3c 3c 20 42 | 49 54 5f 4d 41 50 5f 53 |= 1 << B|IT_MAP_S|
|00001930| 48 49 46 54 0d 07 c6 21 | 20 20 f4 20 4e 6f 2e 20 |HIFT...!| . No. |
|00001940| 6f 66 20 62 69 74 73 20 | 6e 65 65 64 65 64 20 69 |of bits |needed i|
|00001950| 6e 20 6d 61 70 0d 07 d0 | 20 20 20 62 69 74 5f 6d |n map...| bit_m|
|00001960| 61 70 5f 6c 65 6e 25 20 | 3d 20 6e 72 69 6e 6f 64 |ap_len% |= nrinod|
|00001970| 65 73 25 2b 31 0d 07 da | 2f 20 20 72 65 73 69 64 |es%+1...|/ resid|
|00001980| 75 61 6c 25 20 3d 20 62 | 69 74 5f 6d 61 70 5f 6c |ual% = b|it_map_l|
|00001990| 65 6e 25 20 83 20 28 38 | 2a 42 4c 4f 43 4b 5f 53 |en% . (8|*BLOCK_S|
|000019a0| 49 5a 45 29 0d 07 e4 32 | 20 20 e7 20 28 72 65 73 |IZE)...2| . (res|
|000019b0| 69 64 75 61 6c 25 20 3d | 20 30 29 20 8c 20 72 65 |idual% =| 0) . re|
|000019c0| 73 69 64 75 61 6c 25 20 | 3d 20 38 2a 42 4c 4f 43 |sidual% |= 8*BLOC|
|000019d0| 4b 5f 53 49 5a 45 0d 07 | ee 40 20 20 62 5f 6e 65 |K_SIZE..|.@ b_ne|
|000019e0| 65 64 65 64 25 20 3d 20 | 28 62 69 74 5f 6d 61 70 |eded% = |(bit_map|
|000019f0| 5f 6c 65 6e 25 20 2b 20 | 6d 61 70 5f 73 69 7a 65 |_len% + |map_size|
|00001a00| 25 20 2d 31 29 20 3e 3e | 20 42 49 54 5f 4d 41 50 |% -1) >>| BIT_MAP|
|00001a10| 5f 53 48 49 46 54 0d 07 | f8 2f 20 20 f4 20 49 66 |_SHIFT..|./ . If|
|00001a20| 20 69 6d 61 70 20 3e 20 | 31 2c 20 20 61 64 6a 75 | imap > |1, adju|
|00001a30| 73 74 20 73 74 61 72 74 | 20 6f 66 20 7a 6f 6e 65 |st start| of zone|
|00001a40| 20 6d 61 70 2e 0d 08 02 | 2b 20 20 7a 6f 6e 65 5f | map....|+ zone_|
|00001a50| 6d 61 70 25 20 3d 20 7a | 6f 6e 65 5f 6d 61 70 25 |map% = z|one_map%|
|00001a60| 20 2b 20 28 62 5f 6e 65 | 65 64 65 64 25 2d 31 29 | + (b_ne|eded%-1)|
|00001a70| 0d 08 0c 4d 20 20 f2 69 | 6e 73 65 72 74 5f 62 69 |...M .i|nsert_bi|
|00001a80| 74 28 28 49 4e 4f 44 45 | 5f 4d 41 50 2b 62 5f 6e |t((INODE|_MAP+b_n|
|00001a90| 65 65 64 65 64 25 2d 31 | 29 2c 20 72 65 73 69 64 |eeded%-1|), resid|
|00001aa0| 75 61 6c 25 2c 20 38 2a | 42 4c 4f 43 4b 5f 53 49 |ual%, 8*|BLOCK_SI|
|00001ab0| 5a 45 2d 72 65 73 69 64 | 75 61 6c 25 29 0d 08 16 |ZE-resid|ual%)...|
|00001ac0| 22 20 20 f4 20 4e 6f 2e | 20 6f 66 20 62 69 74 73 |" . No.| of bits|
|00001ad0| 20 6e 65 65 64 65 64 20 | 69 6e 20 6d 61 70 2e 0d | needed |in map..|
|00001ae0| 08 20 2a 20 20 62 69 74 | 5f 6d 61 70 5f 6c 65 6e |. * bit|_map_len|
|00001af0| 25 20 3d 20 6e 72 7a 6f | 6e 65 73 25 2d 69 6e 69 |% = nrzo|nes%-ini|
|00001b00| 74 7a 6f 6e 65 73 25 2b | 31 0d 08 2a 2f 20 20 72 |tzones%+|1..*/ r|
|00001b10| 65 73 69 64 75 61 6c 25 | 20 3d 20 62 69 74 5f 6d |esidual%| = bit_m|
|00001b20| 61 70 5f 6c 65 6e 25 20 | 83 20 28 38 2a 42 4c 4f |ap_len% |. (8*BLO|
|00001b30| 43 4b 5f 53 49 5a 45 29 | 0d 08 34 34 20 20 e7 20 |CK_SIZE)|..44 . |
|00001b40| 28 72 65 73 69 64 75 61 | 6c 25 20 3d 20 30 29 20 |(residua|l% = 0) |
|00001b50| 8c 20 72 65 73 69 64 75 | 61 6c 25 20 3d 20 28 38 |. residu|al% = (8|
|00001b60| 2a 42 4c 4f 43 4b 5f 53 | 49 5a 45 29 0d 08 3e 3d |*BLOCK_S|IZE)..>=|
|00001b70| 20 20 62 5f 6e 65 65 64 | 65 64 25 20 3d 20 28 62 | b_need|ed% = (b|
|00001b80| 69 74 5f 6d 61 70 5f 6c | 65 6e 25 2b 6d 61 70 5f |it_map_l|en%+map_|
|00001b90| 73 69 7a 65 25 2d 31 29 | 20 3e 3e 20 42 49 54 5f |size%-1)| >> BIT_|
|00001ba0| 4d 41 50 5f 53 48 49 46 | 54 0d 08 48 3c 20 20 62 |MAP_SHIF|T..H< b|
|00001bb0| 5f 61 6c 6c 6f 63 61 74 | 65 64 25 20 3d 20 28 6e |_allocat|ed% = (n|
|00001bc0| 72 7a 6f 6e 65 73 25 2b | 6d 61 70 5f 73 69 7a 65 |rzones%+|map_size|
|00001bd0| 25 2d 31 29 20 3e 3e 20 | 42 49 54 5f 4d 41 50 5f |%-1) >> |BIT_MAP_|
|00001be0| 53 48 49 46 54 0d 08 52 | 4b 20 20 f2 69 6e 73 65 |SHIFT..R|K .inse|
|00001bf0| 72 74 5f 62 69 74 28 7a | 6f 6e 65 5f 6d 61 70 25 |rt_bit(z|one_map%|
|00001c00| 2b 62 5f 6e 65 65 64 65 | 64 25 2d 31 2c 20 72 65 |+b_neede|d%-1, re|
|00001c10| 73 69 64 75 61 6c 25 2c | 20 38 2a 42 4c 4f 43 4b |sidual%,| 8*BLOCK|
|00001c20| 5f 53 49 5a 45 2d 72 65 | 73 69 64 75 61 6c 25 29 |_SIZE-re|sidual%)|
|00001c30| 0d 08 5c 25 20 20 e7 20 | 28 62 5f 6e 65 65 64 65 |..\% . |(b_neede|
|00001c40| 64 25 20 3c 3e 20 62 5f | 61 6c 6c 6f 63 61 74 65 |d% <> b_|allocate|
|00001c50| 64 25 29 20 8c 0d 08 66 | 3b 20 20 20 20 f2 69 6e |d%) ...f|; .in|
|00001c60| 73 65 72 74 5f 62 69 74 | 28 7a 6f 6e 65 5f 6d 61 |sert_bit|(zone_ma|
|00001c70| 70 25 2b 62 5f 61 6c 6c | 6f 63 61 74 65 64 25 2d |p%+b_all|ocated%-|
|00001c80| 31 2c 20 30 2c 20 6d 61 | 70 5f 73 69 7a 65 25 29 |1, 0, ma|p_size%)|
|00001c90| 0d 08 70 07 20 20 cd 0d | 08 7a 0e 20 20 f1 22 64 |..p. ..|.z. ."d|
|00001ca0| 6f 6e 65 2e 22 0d 08 84 | 29 20 20 f1 22 41 6c 6c |one."...|) ."All|
|00001cb0| 6f 63 61 74 65 20 5a 65 | 72 6f 20 69 6e 6f 64 65 |ocate Ze|ro inode|
|00001cc0| 20 61 6e 64 20 7a 6f 6e | 65 2e 2e 2e 22 3b 0d 08 | and zon|e...";..|
|00001cd0| 8e 46 20 20 f4 20 62 69 | 74 20 7a 65 72 6f 20 6d |.F . bi|t zero m|
|00001ce0| 75 73 74 20 61 6c 77 61 | 79 73 20 62 65 20 61 6c |ust alwa|ys be al|
|00001cf0| 6c 6f 63 61 74 65 64 20 | 28 7a 6f 6e 65 2f 69 6e |located |(zone/in|
|00001d00| 6f 64 65 20 30 20 69 73 | 20 6e 65 76 65 72 20 75 |ode 0 is| never u|
|00001d10| 73 65 64 29 0d 08 98 22 | 20 20 f2 69 6e 73 65 72 |sed)..."| .inser|
|00001d20| 74 5f 62 69 74 28 7a 6f | 6e 65 5f 6d 61 70 25 2c |t_bit(zo|ne_map%,|
|00001d30| 20 30 2c 20 31 29 0d 08 | a2 22 20 20 f2 69 6e 73 | 0, 1)..|." .ins|
|00001d40| 65 72 74 5f 62 69 74 28 | 49 4e 4f 44 45 5f 4d 41 |ert_bit(|INODE_MA|
|00001d50| 50 2c 20 30 2c 20 31 29 | 0d 08 ac 0e 20 20 f1 22 |P, 0, 1)|.... ."|
|00001d60| 64 6f 6e 65 2e 22 0d 08 | b6 05 e1 0d 08 c0 41 f4 |done."..|......A.|
|00001d70| 20 70 75 74 62 6c 6f 63 | 6b 28 29 20 2d 20 74 68 | putbloc|k() - th|
|00001d80| 69 73 20 69 73 20 70 61 | 73 73 65 64 20 74 68 65 |is is pa|ssed the|
|00001d90| 20 62 6c 6f 63 6b 20 6e | 75 6d 62 65 72 20 6f 6e | block n|umber on|
|00001da0| 20 74 68 65 20 64 69 73 | 63 20 74 6f 0d 08 ca 41 | the dis|c to...A|
|00001db0| f4 20 77 72 69 74 65 20 | 74 6f 2c 20 61 6c 6f 6e |. write |to, alon|
|00001dc0| 67 20 77 69 74 68 20 61 | 20 70 6f 69 6e 74 65 72 |g with a| pointer|
|00001dd0| 20 74 6f 20 74 68 65 20 | 6d 65 6d 6f 72 79 20 77 | to the |memory w|
|00001de0| 68 69 63 68 20 6e 65 65 | 64 73 20 74 6f 0d 08 d4 |hich nee|ds to...|
|00001df0| 40 f4 20 77 72 69 74 74 | 65 6e 20 6f 75 74 2e 20 |@. writt|en out. |
|00001e00| 20 55 73 65 20 41 44 46 | 53 5f 44 69 73 63 4f 70 | Use ADF|S_DiscOp|
|00001e10| 20 77 69 74 68 20 74 68 | 65 20 36 34 20 62 79 74 | with th|e 64 byt|
|00001e20| 65 20 64 69 73 63 20 72 | 65 63 6f 72 64 0d 08 de |e disc r|ecord...|
|00001e30| 3f f4 20 64 65 73 63 72 | 69 62 69 6e 67 20 74 68 |?. descr|ibing th|
|00001e40| 65 20 61 72 72 61 6e 67 | 65 6d 65 6e 74 20 6f 66 |e arrang|ement of|
|00001e50| 20 74 68 65 20 64 69 73 | 63 2e 20 20 54 68 69 73 | the dis|c. This|
|00001e60| 20 64 69 73 63 20 72 65 | 63 6f 72 64 0d 08 e8 3f | disc re|cord...?|
|00001e70| f4 20 69 73 20 73 65 74 | 20 75 70 20 61 74 20 74 |. is set| up at t|
|00001e80| 68 65 20 73 74 61 72 74 | 20 6f 66 20 74 68 65 20 |he start| of the |
|00001e90| 70 72 6f 67 72 61 6d 20 | 61 6e 64 20 72 65 6d 61 |program |and rema|
|00001ea0| 69 6e 20 74 68 65 20 73 | 61 6d 65 0d 08 f2 2d f4 |in the s|ame...-.|
|00001eb0| 20 74 68 72 6f 75 67 68 | 6f 75 74 2e 20 20 4d 61 | through|out. Ma|
|00001ec0| 72 6b 20 74 68 65 20 62 | 6c 6f 63 6b 20 61 73 20 |rk the b|lock as |
|00001ed0| 77 72 69 74 74 65 6e 2e | 0d 08 fc 18 dd 20 f2 70 |written.|..... .p|
|00001ee0| 75 74 62 6c 6f 63 6b 28 | 6e 25 2c 20 62 75 66 29 |utblock(|n%, buf)|
|00001ef0| 0d 09 06 1a 20 20 ea 20 | 72 30 2c 20 72 31 2c 20 |.... . |r0, r1, |
|00001f00| 72 32 2c 20 72 33 2c 20 | 72 34 0d 09 10 0e 20 20 |r2, r3, |r4.... |
|00001f10| f2 73 65 74 28 6e 25 29 | 0d 09 1a 0c 20 20 72 30 |.set(n%)|.... r0|
|00001f20| 20 3d 20 30 0d 09 24 1b | 20 20 f4 20 53 65 74 20 | = 0..$.| . Set |
|00001f30| 75 70 20 72 65 61 73 6f | 6e 20 63 6f 64 65 2e 0d |up reaso|n code..|
|00001f40| 09 2e 25 20 20 72 31 20 | 3d 20 28 69 6e 66 6f 62 |..% r1 |= (infob|
|00001f50| 6c 6f 63 6b 20 3c 3c 20 | 36 29 20 2b 20 32 5e 36 |lock << |6) + 2^6|
|00001f60| 20 2b 20 32 0d 09 38 1a | 20 20 72 32 20 3d 20 6e | + 2..8.| r2 = n|
|00001f70| 25 20 2a 20 42 4c 4f 43 | 4b 5f 53 49 5a 45 0d 09 |% * BLOC|K_SIZE..|
|00001f80| 42 0e 20 20 72 33 20 3d | 20 62 75 66 0d 09 4c 15 |B. r3 =| buf..L.|
|00001f90| 20 20 72 34 20 3d 20 42 | 4c 4f 43 4b 5f 53 49 5a | r4 = B|LOCK_SIZ|
|00001fa0| 45 0d 09 56 37 20 20 c8 | 99 20 22 41 44 46 53 5f |E..V7 .|. "ADFS_|
|00001fb0| 44 69 73 63 4f 70 22 2c | 20 72 30 2c 72 31 2c 72 |DiscOp",| r0,r1,r|
|00001fc0| 32 2c 72 33 2c 72 34 20 | b8 20 72 30 2c 72 31 2c |2,r3,r4 |. r0,r1,|
|00001fd0| 72 32 2c 72 33 2c 72 34 | 0d 09 60 05 e1 0d 09 6a |r2,r3,r4|..`....j|
|00001fe0| 3f f4 20 67 65 74 62 6c | 6f 63 6b 28 29 20 2d 20 |?. getbl|ock() - |
|00001ff0| 76 65 72 79 20 73 69 6d | 69 6c 61 72 20 74 6f 20 |very sim|ilar to |
|00002000| 70 75 74 62 6c 6f 63 6b | 2c 20 6f 6e 6c 79 20 74 |putblock|, only t|
|00002010| 68 69 73 20 74 69 6d 65 | 20 62 75 66 0d 09 74 44 |his time| buf..tD|
|00002020| f4 20 69 73 20 77 68 65 | 72 65 20 74 68 65 20 62 |. is whe|re the b|
|00002030| 6c 6f 63 6b 20 66 72 6f | 6d 20 64 69 73 63 20 69 |lock fro|m disc i|
|00002040| 73 20 74 6f 20 62 65 20 | 70 75 74 20 69 6e 20 6d |s to be |put in m|
|00002050| 65 6d 6f 72 79 2e 20 20 | 43 68 65 63 6b 20 69 66 |emory. |Check if|
|00002060| 0d 09 7e 25 f4 20 74 68 | 65 20 62 6c 6f 63 6b 20 |..~%. th|e block |
|00002070| 68 61 73 20 62 65 65 6e | 20 72 65 61 64 20 62 65 |has been| read be|
|00002080| 66 6f 72 65 2e 0d 09 88 | 18 dd 20 f2 67 65 74 62 |fore....|.. .getb|
|00002090| 6c 6f 63 6b 28 6e 25 2c | 20 62 75 66 29 0d 09 92 |lock(n%,| buf)...|
|000020a0| 1a 20 20 ea 20 72 30 2c | 20 72 31 2c 20 72 32 2c |. . r0,| r1, r2,|
|000020b0| 20 72 33 2c 20 72 34 0d | 09 9c 18 20 20 e7 20 28 | r3, r4.|... . (|
|000020c0| ac 28 a4 72 65 61 64 28 | 6e 25 29 29 29 20 8c 0d |.(.read(|n%))) ..|
|000020d0| 09 a6 24 20 20 20 20 f2 | 63 6f 70 79 28 7a 65 72 |..$ .|copy(zer|
|000020e0| 6f 2c 20 62 75 66 2c 20 | 42 4c 4f 43 4b 5f 53 49 |o, buf, |BLOCK_SI|
|000020f0| 5a 45 29 0d 09 b0 09 20 | 20 20 20 e1 0d 09 ba 07 |ZE).... | .....|
|00002100| 20 20 cd 0d 09 c4 0c 20 | 20 72 30 20 3d 20 30 0d | ..... | r0 = 0.|
|00002110| 09 ce 1b 20 20 f4 20 53 | 65 74 20 75 70 20 72 65 |... . S|et up re|
|00002120| 61 73 6f 6e 20 63 6f 64 | 65 2e 0d 09 d8 25 20 20 |ason cod|e....% |
|00002130| 72 31 20 3d 20 28 69 6e | 66 6f 62 6c 6f 63 6b 20 |r1 = (in|foblock |
|00002140| 3c 3c 20 36 29 20 2b 20 | 32 5e 36 20 2b 20 31 0d |<< 6) + |2^6 + 1.|
|00002150| 09 e2 1a 20 20 72 32 20 | 3d 20 6e 25 20 2a 20 42 |... r2 |= n% * B|
|00002160| 4c 4f 43 4b 5f 53 49 5a | 45 0d 09 ec 0e 20 20 72 |LOCK_SIZ|E.... r|
|00002170| 33 20 3d 20 62 75 66 0d | 09 f6 15 20 20 72 34 20 |3 = buf.|... r4 |
|00002180| 3d 20 42 4c 4f 43 4b 5f | 53 49 5a 45 0d 0a 00 37 |= BLOCK_|SIZE...7|
|00002190| 20 20 c8 99 20 22 41 44 | 46 53 5f 44 69 73 63 4f | .. "AD|FS_DiscO|
|000021a0| 70 22 2c 20 72 30 2c 72 | 31 2c 72 32 2c 72 33 2c |p", r0,r|1,r2,r3,|
|000021b0| 72 34 20 b8 20 72 30 2c | 72 31 2c 72 32 2c 72 33 |r4 . r0,|r1,r2,r3|
|000021c0| 2c 72 34 0d 0a 0a 05 e1 | 0d 0a 14 1c f4 20 63 6f |,r4.....|..... co|
|000021d0| 70 79 28 29 20 2d 20 63 | 6f 70 69 65 73 20 6d 65 |py() - c|opies me|
|000021e0| 6d 6f 72 79 0d 0a 1e 1d | dd 20 f2 63 6f 70 79 28 |mory....|. .copy(|
|000021f0| 66 72 6f 6d 2c 20 74 6f | 2c 20 63 6f 75 6e 74 25 |from, to|, count%|
|00002200| 29 0d 0a 28 16 20 20 c8 | 95 20 28 63 6f 75 6e 74 |)..(. .|. (count|
|00002210| 25 20 3c 3e 20 30 29 0d | 0a 32 13 20 20 20 20 3f |% <> 0).|.2. ?|
|00002220| 74 6f 20 3d 20 3f 66 72 | 6f 6d 0d 0a 3c 0f 20 20 |to = ?fr|om..<. |
|00002230| 20 20 74 6f 20 2b 3d 20 | 31 0d 0a 46 11 20 20 20 | to += |1..F. |
|00002240| 20 66 72 6f 6d 20 2b 3d | 20 31 0d 0a 50 13 20 20 | from +=| 1..P. |
|00002250| 20 20 63 6f 75 6e 74 25 | 20 2d 3d 20 31 0d 0a 5a | count%| -= 1..Z|
|00002260| 07 20 20 ce 0d 0a 64 05 | e1 0d 0a 6e 4a f4 20 73 |. ...d.|...nJ. s|
|00002270| 65 74 28 29 20 2d 20 74 | 68 69 73 20 73 65 74 73 |et() - t|his sets|
|00002280| 20 74 68 65 20 66 6c 61 | 67 20 69 6e 20 74 68 65 | the fla|g in the|
|00002290| 20 75 6d 61 70 20 74 6f | 20 69 6e 64 69 63 61 74 | umap to| indicat|
|000022a0| 65 20 74 68 61 74 20 61 | 20 70 61 72 74 69 63 75 |e that a| particu|
|000022b0| 6c 61 72 0d 0a 78 21 f4 | 20 64 69 73 63 20 62 6c |lar..x!.| disc bl|
|000022c0| 6f 63 6b 20 68 61 73 20 | 62 65 65 6e 20 77 72 69 |ock has |been wri|
|000022d0| 74 74 65 6e 0d 0a 82 0e | dd 20 f2 73 65 74 28 6e |tten....|. .set(n|
|000022e0| 25 29 0d 0a 8c 15 20 20 | ea 20 77 25 2c 20 73 25 |%).... |. w%, s%|
|000022f0| 2c 20 6d 61 73 6b 25 0d | 0a 96 11 20 20 77 25 20 |, mask%.|... w% |
|00002300| 3d 20 6e 25 20 81 20 38 | 0d 0a a0 11 20 20 73 25 |= n% . 8|.... s%|
|00002310| 20 3d 20 6e 25 20 83 20 | 38 0d 0a aa 15 20 20 6d | = n% . |8.... m|
|00002320| 61 73 6b 25 20 3d 20 31 | 20 3c 3c 20 73 25 0d 0a |ask% = 1| << s%..|
|00002330| b4 1f 20 20 75 6d 61 70 | 3f 77 25 20 3d 20 75 6d |.. umap|?w% = um|
|00002340| 61 70 3f 77 25 20 84 20 | 6d 61 73 6b 25 0d 0a be |ap?w% . |mask%...|
|00002350| 05 e1 0d 0a c8 48 f4 20 | 72 65 61 64 28 29 20 2d |.....H. |read() -|
|00002360| 20 74 68 69 73 20 72 65 | 74 75 72 6e 73 20 77 68 | this re|turns wh|
|00002370| 65 74 68 65 72 20 64 69 | 73 63 20 62 6c 6f 63 6b |ether di|sc block|
|00002380| 20 68 61 73 20 62 65 65 | 6e 20 61 63 63 65 73 73 | has bee|n access|
|00002390| 65 64 20 62 65 66 6f 72 | 65 2c 0d 0a d2 33 f4 20 |ed befor|e,...3. |
|000023a0| 69 74 20 61 6c 73 6f 20 | 73 65 74 20 74 68 65 20 |it also |set the |
|000023b0| 66 6c 61 67 20 74 6f 20 | 69 6e 64 69 63 61 74 65 |flag to |indicate|
|000023c0| 20 74 68 61 74 20 69 74 | 20 68 61 73 2e 0d 0a dc | that it| has....|
|000023d0| 0f dd 20 a4 72 65 61 64 | 28 6e 25 29 0d 0a e6 19 |.. .read|(n%)....|
|000023e0| 20 20 ea 20 77 25 2c 20 | 73 25 2c 20 6d 61 73 6b | . w%, |s%, mask|
|000023f0| 25 2c 20 72 25 0d 0a f0 | 11 20 20 77 25 20 3d 20 |%, r%...|. w% = |
|00002400| 6e 25 20 81 20 38 0d 0a | fa 12 20 20 20 73 25 20 |n% . 8..|.. s% |
|00002410| 3d 20 6e 25 20 83 20 38 | 0d 0b 04 15 20 20 6d 61 |= n% . 8|.... ma|
|00002420| 73 6b 25 20 3d 20 31 20 | 3c 3c 20 73 25 0d 0b 0e |sk% = 1 |<< s%...|
|00002430| 26 20 20 72 25 20 3d 20 | 28 28 75 6d 61 70 3f 77 |& r% = |((umap?w|
|00002440| 25 20 80 20 6d 61 73 6b | 25 29 20 3d 20 6d 61 73 |% . mask|%) = mas|
|00002450| 6b 25 29 0d 0b 18 1f 20 | 20 75 6d 61 70 3f 77 25 |k%).... | umap?w%|
|00002460| 20 3d 20 75 6d 61 70 3f | 77 25 20 84 20 6d 61 73 | = umap?|w% . mas|
|00002470| 6b 25 0d 0b 22 08 3d 20 | 72 25 0d 0b 2c 43 f4 20 |k%..".= |r%..,C. |
|00002480| 70 75 74 5f 73 68 6f 72 | 74 28 29 20 2d 20 74 68 |put_shor|t() - th|
|00002490| 69 73 20 70 75 74 73 20 | 61 20 73 68 6f 72 74 2c |is puts |a short,|
|000024a0| 20 6c 6f 77 20 62 79 74 | 65 20 66 69 72 73 74 20 | low byt|e first |
|000024b0| 61 74 20 74 68 65 20 6d | 65 6d 6f 72 79 0d 0b 36 |at the m|emory..6|
|000024c0| 13 f4 20 61 64 64 72 65 | 73 73 20 70 6f 73 25 2e |.. addre|ss pos%.|
|000024d0| 0d 0b 40 1e dd 20 f2 70 | 75 74 5f 73 68 6f 72 74 |..@.. .p|ut_short|
|000024e0| 28 70 6f 73 25 2c 20 76 | 61 6c 75 65 25 29 0d 0b |(pos%, v|alue%)..|
|000024f0| 4a 1a 20 20 3f 70 6f 73 | 25 20 3d 20 76 61 6c 75 |J. ?pos|% = valu|
|00002500| 65 25 20 83 20 32 35 36 | 0d 0b 54 1b 20 20 70 6f |e% . 256|..T. po|
|00002510| 73 25 3f 31 20 3d 20 76 | 61 6c 75 65 25 20 81 20 |s%?1 = v|alue% . |
|00002520| 32 35 36 0d 0b 5e 05 e1 | 0d 0b 68 2c f4 20 67 65 |256..^..|..h,. ge|
|00002530| 74 5f 73 68 6f 72 74 28 | 29 20 2d 20 74 68 65 20 |t_short(|) - the |
|00002540| 69 6e 76 65 72 73 65 20 | 6f 66 20 70 75 74 73 68 |inverse |of putsh|
|00002550| 6f 72 74 2e 0d 0b 72 16 | dd 20 a4 67 65 74 5f 73 |ort...r.|. .get_s|
|00002560| 68 6f 72 74 28 70 6f 73 | 25 29 0d 0b 7c 1c 3d 28 |hort(pos|%)..|.=(|
|00002570| 3f 70 6f 73 25 20 2b 20 | 28 70 6f 73 25 3f 31 20 |?pos% + |(pos%?1 |
|00002580| 3c 3c 20 38 29 29 0d 0b | 86 44 f4 20 70 75 74 5f |<< 8))..|.D. put_|
|00002590| 6c 6f 6e 67 28 29 20 2d | 20 62 69 74 20 6c 69 6b |long() -| bit lik|
|000025a0| 65 20 70 75 74 73 68 6f | 72 74 2c 20 65 78 63 65 |e putsho|rt, exce|
|000025b0| 70 74 20 69 74 20 70 75 | 74 73 20 61 20 6c 6f 6e |pt it pu|ts a lon|
|000025c0| 67 20 61 74 20 70 6f 73 | 25 21 0d 0b 90 1f f4 20 |g at pos|%!..... |
|000025d0| 61 73 73 75 6d 65 20 61 | 20 6c 6f 6e 67 20 69 73 |assume a| long is|
|000025e0| 20 34 20 62 79 74 65 73 | 2e 0d 0b 9a 1d dd 20 f2 | 4 bytes|...... .|
|000025f0| 70 75 74 5f 6c 6f 6e 67 | 28 70 6f 73 25 2c 20 76 |put_long|(pos%, v|
|00002600| 61 6c 75 65 25 29 0d 0b | a4 14 20 20 21 70 6f 73 |alue%)..|.. !pos|
|00002610| 25 20 3d 20 76 61 6c 75 | 65 25 0d 0b ae 05 e1 0d |% = valu|e%......|
|00002620| 0b b8 40 f4 20 69 6e 73 | 65 72 74 5f 62 69 74 28 |..@. ins|ert_bit(|
|00002630| 29 20 2d 20 74 68 69 73 | 20 74 61 6b 65 73 20 61 |) - this| takes a|
|00002640| 20 62 6c 6f 63 6b 20 6e | 6f 2e 2c 20 61 20 62 69 | block n|o., a bi|
|00002650| 74 2c 20 61 6e 64 20 61 | 20 63 6f 75 6e 74 2e 0d |t, and a| count..|
|00002660| 0b c2 29 f4 20 69 6e 73 | 65 72 74 20 63 6f 75 6e |..). ins|ert coun|
|00002670| 74 20 62 69 74 73 20 69 | 6e 74 6f 20 74 68 65 20 |t bits i|nto the |
|00002680| 62 69 74 20 6d 61 70 2e | 0d 0b cc 47 f4 20 54 68 |bit map.|...G. Th|
|00002690| 69 73 20 75 73 65 73 20 | 61 20 42 4c 4f 43 4b 20 |is uses |a BLOCK |
|000026a0| 6f 66 20 6d 65 6d 6f 72 | 79 20 74 6f 20 72 65 61 |of memor|y to rea|
|000026b0| 64 20 74 68 65 20 64 69 | 73 6b 20 62 6c 61 63 6b |d the di|sk black|
|000026c0| 20 69 6e 74 6f 20 77 68 | 69 63 68 20 68 61 73 0d | into wh|ich has.|
|000026d0| 0b d6 44 f4 20 62 65 65 | 6e 20 61 6c 6c 6f 63 61 |..D. bee|n alloca|
|000026e0| 74 65 64 20 66 6f 72 20 | 75 73 65 20 62 79 20 74 |ted for |use by t|
|000026f0| 68 69 73 20 72 6f 75 74 | 69 6e 65 2e 2e 20 63 61 |his rout|ine.. ca|
|00002700| 6c 6c 65 64 20 69 6e 73 | 65 72 74 5f 62 69 74 5f |lled ins|ert_bit_|
|00002710| 62 75 66 0d 0b e0 27 dd | 20 f2 69 6e 73 65 72 74 |buf...'.| .insert|
|00002720| 5f 62 69 74 28 62 6c 6f | 63 6b 25 2c 20 62 69 74 |_bit(blo|ck%, bit|
|00002730| 25 2c 20 63 6f 75 6e 74 | 25 29 0d 0b ea 12 20 20 |%, count|%).... |
|00002740| ea 20 69 25 2c 20 77 25 | 2c 20 73 25 0d 0b f4 27 |. i%, w%|, s%...'|
|00002750| 20 20 f2 67 65 74 62 6c | 6f 63 6b 28 62 6c 6f 63 | .getbl|ock(bloc|
|00002760| 6b 25 2c 20 69 6e 73 65 | 72 74 5f 62 69 74 5f 62 |k%, inse|rt_bit_b|
|00002770| 75 66 29 0d 0b fe 21 20 | 20 e3 20 69 25 20 3d 20 |uf)...! | . i% = |
|00002780| 62 69 74 25 20 b8 20 62 | 69 74 25 2b 63 6f 75 6e |bit% . b|it%+coun|
|00002790| 74 25 2d 31 0d 0c 08 20 | 20 20 20 20 77 25 20 3d |t%-1... | w% =|
|000027a0| 20 69 25 20 81 20 28 38 | 2a 53 48 4f 52 54 5f 53 | i% . (8|*SHORT_S|
|000027b0| 49 5a 45 29 0d 0c 12 20 | 20 20 20 20 73 25 20 3d |IZE)... | s% =|
|000027c0| 20 69 25 20 83 20 28 38 | 2a 53 48 4f 52 54 5f 53 | i% . (8|*SHORT_S|
|000027d0| 49 5a 45 29 0d 0c 1c 39 | 20 20 20 20 69 6e 73 65 |IZE)...9| inse|
|000027e0| 72 74 5f 62 69 74 5f 62 | 75 66 3f 77 25 20 3d 20 |rt_bit_b|uf?w% = |
|000027f0| 69 6e 73 65 72 74 5f 62 | 69 74 5f 62 75 66 3f 77 |insert_b|it_buf?w|
|00002800| 25 20 84 20 28 31 20 3c | 3c 20 73 25 29 0d 0c 26 |% . (1 <|< s%)..&|
|00002810| 07 20 20 ed 0d 0c 30 27 | 20 20 f2 70 75 74 62 6c |. ...0'| .putbl|
|00002820| 6f 63 6b 28 62 6c 6f 63 | 6b 25 2c 20 69 6e 73 65 |ock(bloc|k%, inse|
|00002830| 72 74 5f 62 69 74 5f 62 | 75 66 29 0d 0c 3a 05 e1 |rt_bit_b|uf)..:..|
|00002840| 0d 0c 44 3d f4 20 61 6c | 6c 6f 63 5f 69 6e 6f 64 |..D=. al|loc_inod|
|00002850| 65 28 29 20 2d 20 61 6c | 6c 6f 63 61 74 65 73 20 |e() - al|locates |
|00002860| 61 6e 20 69 6e 6f 64 65 | 20 26 20 72 65 74 75 72 |an inode| & retur|
|00002870| 6e 73 20 69 74 73 20 6e | 75 6d 62 65 72 0d 0c 4e |ns its n|umber..N|
|00002880| 34 f4 20 73 65 74 73 20 | 75 70 20 74 68 65 20 6d |4. sets |up the m|
|00002890| 6f 64 65 2c 20 75 73 72 | 69 64 20 61 6e 64 20 67 |ode, usr|id and g|
|000028a0| 72 70 69 64 20 6f 66 20 | 74 68 65 20 69 6e 6f 64 |rpid of |the inod|
|000028b0| 65 0d 0c 58 29 dd 20 a4 | 61 6c 6c 6f 63 5f 69 6e |e..X). .|alloc_in|
|000028c0| 6f 64 65 28 6d 6f 64 65 | 25 2c 20 75 73 72 69 64 |ode(mode|%, usrid|
|000028d0| 25 2c 20 67 72 70 69 64 | 25 29 0d 0c 62 16 20 20 |%, grpid|%)..b. |
|000028e0| ea 20 6e 75 6d 25 2c 20 | 62 25 2c 20 6f 66 66 25 |. num%, |b%, off%|
|000028f0| 0d 0c 6c 18 20 20 6e 75 | 6d 25 20 3d 20 6e 65 78 |..l. nu|m% = nex|
|00002900| 74 5f 69 6e 6f 64 65 25 | 0d 0c 76 16 20 20 6e 65 |t_inode%|..v. ne|
|00002910| 78 74 5f 69 6e 6f 64 65 | 25 20 2b 3d 20 31 0d 0c |xt_inode|% += 1..|
|00002920| 80 1d 20 20 e7 20 28 6e | 75 6d 25 20 3e 3d 20 6e |.. . (n|um% >= n|
|00002930| 72 69 6e 6f 64 65 73 25 | 29 20 8c 0d 0c 8a 34 20 |rinodes%|) ....4 |
|00002940| 20 20 20 f1 20 22 46 69 | 6c 65 20 73 79 73 74 65 | . "Fi|le syste|
|00002950| 6d 20 64 6f 65 73 20 6e | 6f 74 20 68 61 76 65 20 |m does n|ot have |
|00002960| 65 6e 6f 75 67 68 20 69 | 6e 6f 64 65 73 2e 22 0d |enough i|nodes.".|
|00002970| 0c 94 09 20 20 20 20 fa | 0d 0c 9e 07 20 20 cd 0d |... .|.... ..|
|00002980| 0c a8 38 20 20 62 25 20 | 3d 20 28 28 6e 75 6d 25 |..8 b% |= ((num%|
|00002990| 2d 31 29 20 81 20 49 4e | 4f 44 45 53 5f 50 45 52 |-1) . IN|ODES_PER|
|000029a0| 5f 42 4c 4f 43 4b 29 20 | 2b 20 69 6e 6f 64 65 5f |_BLOCK) |+ inode_|
|000029b0| 6f 66 66 73 65 74 25 0d | 0c b2 28 20 20 6f 66 66 |offset%.|..( off|
|000029c0| 25 20 3d 20 28 6e 75 6d | 25 2d 31 29 20 83 20 49 |% = (num|%-1) . I|
|000029d0| 4e 4f 44 45 53 5f 50 45 | 52 5f 42 4c 4f 43 4b 0d |NODES_PE|R_BLOCK.|
|000029e0| 0c bc 1e 20 20 f2 67 65 | 74 62 6c 6f 63 6b 28 62 |... .ge|tblock(b|
|000029f0| 25 2c 20 69 6e 6f 64 65 | 5f 62 75 66 29 0d 0c c6 |%, inode|_buf)...|
|00002a00| 37 20 20 f4 20 73 65 74 | 20 75 70 20 69 6e 64 65 |7 . set| up inde|
|00002a10| 78 20 74 6f 20 70 6f 69 | 6e 74 20 74 6f 20 74 68 |x to poi|nt to th|
|00002a20| 65 20 69 6e 6f 64 65 20 | 77 65 27 72 65 20 61 66 |e inode |we're af|
|00002a30| 74 65 72 2e 0d 0c d0 28 | 20 20 69 6e 64 65 78 25 |ter....(| index%|
|00002a40| 20 3d 20 69 6e 6f 64 65 | 5f 62 75 66 2b 49 4e 4f | = inode|_buf+INO|
|00002a50| 44 45 5f 53 49 5a 45 2a | 6f 66 66 25 0d 0c da 26 |DE_SIZE*|off%...&|
|00002a60| 20 20 f2 70 75 74 5f 73 | 68 6f 72 74 28 69 6e 64 | .put_s|hort(ind|
|00002a70| 65 78 25 2b 69 5f 6d 6f | 64 65 2c 20 6d 6f 64 65 |ex%+i_mo|de, mode|
|00002a80| 25 29 0d 0c e4 26 20 20 | f2 70 75 74 5f 73 68 6f |%)...& |.put_sho|
|00002a90| 72 74 28 69 6e 64 65 78 | 25 2b 69 5f 75 69 64 2c |rt(index|%+i_uid,|
|00002aa0| 20 75 73 72 69 64 25 29 | 0d 0c ee 1e 20 20 3f 28 | usrid%)|.... ?(|
|00002ab0| 69 6e 64 65 78 25 2b 69 | 5f 67 69 64 29 20 3d 20 |index%+i|_gid) = |
|00002ac0| 67 72 70 69 64 25 0d 0c | f8 1e 20 20 f2 70 75 74 |grpid%..|.. .put|
|00002ad0| 62 6c 6f 63 6b 28 62 25 | 2c 20 69 6e 6f 64 65 5f |block(b%|, inode_|
|00002ae0| 62 75 66 29 0d 0d 02 0a | 3d 20 6e 75 6d 25 0d 0d |buf)....|= num%..|
|00002af0| 0c 48 f4 20 72 6f 6f 74 | 64 69 72 28 29 20 2d 20 |.H. root|dir() - |
|00002b00| 74 68 69 73 20 63 72 65 | 61 74 65 73 20 61 20 72 |this cre|ates a r|
|00002b10| 6f 6f 74 20 64 69 72 65 | 63 74 6f 72 79 20 61 6e |oot dire|ctory an|
|00002b20| 64 20 73 65 74 73 20 75 | 70 20 61 6e 20 69 6e 6f |d sets u|p an ino|
|00002b30| 64 65 20 66 6f 72 0d 0d | 16 09 f4 20 69 74 2e 0d |de for..|... it..|
|00002b40| 0d 20 16 dd 20 f2 72 6f | 6f 74 64 69 72 28 69 6e |. .. .ro|otdir(in|
|00002b50| 6f 64 65 25 29 0d 0d 2a | 0a 20 20 ea 20 7a 25 0d |ode%)..*|. . z%.|
|00002b60| 0d 34 16 20 20 7a 25 20 | 3d 20 a4 61 6c 6c 6f 63 |.4. z% |= .alloc|
|00002b70| 5f 7a 6f 6e 65 0d 0d 3e | 2e 20 20 f2 61 64 64 5f |_zone..>|. .add_|
|00002b80| 7a 6f 6e 65 28 69 6e 6f | 64 65 25 2c 20 7a 25 2c |zone(ino|de%, z%,|
|00002b90| 20 33 32 2c 20 63 75 72 | 72 65 6e 74 5f 74 69 6d | 32, cur|rent_tim|
|00002ba0| 65 25 29 0d 0d 48 25 20 | 20 f2 65 6e 74 65 72 5f |e%)..H% | .enter_|
|00002bb0| 64 69 72 28 69 6e 6f 64 | 65 25 2c 20 22 2e 22 2c |dir(inod|e%, ".",|
|00002bc0| 20 69 6e 6f 64 65 25 29 | 0d 0d 52 26 20 20 f2 65 | inode%)|..R& .e|
|00002bd0| 6e 74 65 72 5f 64 69 72 | 28 69 6e 6f 64 65 25 2c |nter_dir|(inode%,|
|00002be0| 20 22 2e 2e 22 2c 20 69 | 6e 6f 64 65 25 29 0d 0d | "..", i|node%)..|
|00002bf0| 5c 18 20 20 f2 69 6e 63 | 72 5f 6c 69 6e 6b 28 69 |\. .inc|r_link(i|
|00002c00| 6e 6f 64 65 25 29 0d 0d | 66 18 20 20 f2 69 6e 63 |node%)..|f. .inc|
|00002c10| 72 5f 6c 69 6e 6b 28 69 | 6e 6f 64 65 25 29 0d 0d |r_link(i|node%)..|
|00002c20| 70 18 20 20 f2 69 6e 63 | 72 5f 6c 69 6e 6b 28 69 |p. .inc|r_link(i|
|00002c30| 6e 6f 64 65 25 29 0d 0d | 7a 05 e1 0d 0d 84 46 f4 |node%)..|z.....F.|
|00002c40| 20 61 64 64 5f 7a 6f 6e | 65 28 29 20 2d 20 66 69 | add_zon|e() - fi|
|00002c50| 6e 64 73 20 74 68 65 20 | 69 6e 6f 64 65 2c 20 67 |nds the |inode, g|
|00002c60| 65 74 73 20 69 74 20 6f | 66 66 20 74 68 65 20 64 |ets it o|ff the d|
|00002c70| 69 73 6b 20 74 68 65 6e | 20 73 74 69 63 6b 73 20 |isk then| sticks |
|00002c80| 61 0d 0d 8e 20 f4 20 72 | 65 66 65 72 65 6e 63 65 |a... . r|eference|
|00002c90| 20 74 6f 20 7a 6f 6e 65 | 20 7a 20 69 6e 20 69 74 | to zone| z in it|
|00002ca0| 2e 0d 0d 98 2a dd 20 f2 | 61 64 64 5f 7a 6f 6e 65 |....*. .|add_zone|
|00002cb0| 28 6e 25 2c 20 7a 25 2c | 20 62 79 74 65 73 25 2c |(n%, z%,| bytes%,|
|00002cc0| 20 63 75 72 5f 74 69 6d | 65 25 29 0d 0d a2 20 20 | cur_tim|e%)... |
|00002cd0| 20 ea 20 62 25 2c 20 6f | 66 66 25 2c 20 69 6e 64 | . b%, o|ff%, ind|
|00002ce0| 69 72 25 2c 20 69 25 2c | 20 70 25 0d 0d ac 36 20 |ir%, i%,| p%...6 |
|00002cf0| 20 62 25 20 3d 20 28 28 | 6e 25 2d 31 29 20 81 20 | b% = ((|n%-1) . |
|00002d00| 49 4e 4f 44 45 53 5f 50 | 45 52 5f 42 4c 4f 43 4b |INODES_P|ER_BLOCK|
|00002d10| 29 20 2b 20 69 6e 6f 64 | 65 5f 6f 66 66 73 65 74 |) + inod|e_offset|
|00002d20| 25 0d 0d b6 26 20 20 6f | 66 66 25 20 3d 20 28 6e |%...& o|ff% = (n|
|00002d30| 25 2d 31 29 20 83 20 49 | 4e 4f 44 45 53 5f 50 45 |%-1) . I|NODES_PE|
|00002d40| 52 5f 42 4c 4f 43 4b 0d | 0d c0 1e 20 20 f2 67 65 |R_BLOCK.|... .ge|
|00002d50| 74 62 6c 6f 63 6b 28 62 | 25 2c 20 69 6e 6f 64 65 |tblock(b|%, inode|
|00002d60| 5f 62 75 66 29 0d 0d ca | 24 20 20 70 25 20 3d 20 |_buf)...|$ p% = |
|00002d70| 49 4e 4f 44 45 5f 53 49 | 5a 45 2a 6f 66 66 25 2b |INODE_SI|ZE*off%+|
|00002d80| 69 6e 6f 64 65 5f 62 75 | 66 0d 0d d4 22 20 20 f2 |inode_bu|f..." .|
|00002d90| 70 75 74 5f 6c 6f 6e 67 | 28 70 25 2b 69 5f 73 69 |put_long|(p%+i_si|
|00002da0| 7a 65 2c 20 62 79 74 65 | 73 25 29 0d 0d de 28 20 |ze, byte|s%)...( |
|00002db0| 20 f2 70 75 74 5f 6c 6f | 6e 67 28 70 25 2b 69 5f | .put_lo|ng(p%+i_|
|00002dc0| 6d 6f 64 74 69 6d 65 2c | 20 63 75 72 5f 74 69 6d |modtime,| cur_tim|
|00002dd0| 65 25 29 0d 0d e8 0c 20 | 20 69 25 20 3d 20 30 0d |e%).... | i% = 0.|
|00002de0| 0d f2 1c 20 20 c8 95 20 | 28 69 25 20 3c 20 4e 52 |... .. |(i% < NR|
|00002df0| 5f 44 5a 4f 4e 45 5f 4e | 55 4d 29 0d 0d fc 2a 20 |_DZONE_N|UM)...* |
|00002e00| 20 20 20 69 6e 64 65 78 | 25 20 3d 20 70 25 2b 69 | index|% = p%+i|
|00002e10| 5f 7a 6f 6e 65 2b 28 69 | 25 2a 53 48 4f 52 54 5f |_zone+(i|%*SHORT_|
|00002e20| 53 49 5a 45 29 0d 0e 06 | 24 20 20 20 20 e7 20 28 |SIZE)...|$ . (|
|00002e30| a4 67 65 74 5f 73 68 6f | 72 74 28 69 6e 64 65 78 |.get_sho|rt(index|
|00002e40| 25 29 20 3d 20 30 29 20 | 8c 0d 0e 10 20 20 20 20 |%) = 0) |.... |
|00002e50| 20 20 20 f2 70 75 74 5f | 73 68 6f 72 74 28 69 6e | .put_|short(in|
|00002e60| 64 65 78 25 2c 20 7a 25 | 29 0d 0e 1a 22 20 20 20 |dex%, z%|)..." |
|00002e70| 20 20 20 f2 70 75 74 62 | 6c 6f 63 6b 28 62 25 2c | .putb|lock(b%,|
|00002e80| 20 69 6e 6f 64 65 5f 62 | 75 66 29 0d 0e 24 0b 20 | inode_b|uf)..$. |
|00002e90| 20 20 20 20 20 e1 0d 0e | 2e 09 20 20 20 20 cd 0d | ...|.. ..|
|00002ea0| 0e 38 0f 20 20 20 20 69 | 25 20 2b 3d 20 31 0d 0e |.8. i|% += 1..|
|00002eb0| 42 07 20 20 ce 0d 0e 4c | 1e 20 20 f2 70 75 74 62 |B. ...L|. .putb|
|00002ec0| 6c 6f 63 6b 28 62 25 2c | 20 69 6e 6f 64 65 5f 62 |lock(b%,| inode_b|
|00002ed0| 75 66 29 0d 0e 56 3b 20 | 20 f4 20 2a 2a 2a 2a 2a |uf)..V; | . *****|
|00002ee0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002ef0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002f00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0d 0e |********|******..|
|00002f10| 60 31 20 20 f4 20 44 6f | 65 73 20 6e 6f 74 20 68 |`1 . Do|es not h|
|00002f20| 61 6e 64 6c 65 20 6c 61 | 72 67 65 20 66 69 6c 65 |andle la|rge file|
|00002f30| 73 20 26 20 69 6e 64 69 | 72 65 63 74 69 6f 6e 0d |s & indi|rection.|
|00002f40| 0e 6a 3b 20 20 f4 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.j; . *|********|
|00002f50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002f60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002f70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0d 0e 74 05 e1 0d |********|**..t...|
|00002f80| 0e 7e 38 f4 20 61 6c 6c | 6f 63 5f 7a 6f 6e 65 28 |.~8. all|oc_zone(|
|00002f90| 29 20 2d 20 74 68 69 73 | 20 66 69 6e 64 73 20 61 |) - this| finds a|
|00002fa0| 20 66 72 65 65 20 7a 6f | 6e 65 20 6f 6e 20 74 68 | free zo|ne on th|
|00002fb0| 65 20 64 69 73 6b 2e 0d | 0e 88 11 dd 20 a4 61 6c |e disk..|.... .al|
|00002fc0| 6c 6f 63 5f 7a 6f 6e 65 | 0d 0e 92 12 20 20 ea 20 |loc_zone|.... . |
|00002fd0| 62 25 2c 20 7a 25 2c 20 | 69 25 0d 0e 9c 15 20 20 |b%, z%, |i%.... |
|00002fe0| 7a 25 20 3d 20 6e 65 78 | 74 5f 7a 6f 6e 65 25 0d |z% = nex|t_zone%.|
|00002ff0| 0e a6 15 20 20 6e 65 78 | 74 5f 7a 6f 6e 65 25 20 |... nex|t_zone% |
|00003000| 2b 3d 20 31 0d 0e b0 1c | 20 20 62 25 20 3d 20 7a |+= 1....| b% = z|
|00003010| 25 20 3c 3c 20 7a 6f 6e | 65 5f 73 68 69 66 74 25 |% << zon|e_shift%|
|00003020| 0d 0e ba 27 20 20 e7 20 | 28 28 62 25 2b 7a 6f 6e |...' . |((b%+zon|
|00003030| 65 5f 73 69 7a 65 25 29 | 20 3e 20 6e 72 62 6c 6f |e_size%)| > nrblo|
|00003040| 63 6b 73 25 29 20 8c 0d | 0e c4 35 20 20 20 20 f1 |cks%) ..|..5 .|
|00003050| 20 22 46 69 6c 65 20 73 | 79 73 74 65 6d 20 6e 6f | "File s|ystem no|
|00003060| 74 20 62 69 67 20 65 6e | 6f 75 67 68 20 66 6f 72 |t big en|ough for|
|00003070| 20 61 6c 6c 20 66 69 6c | 65 73 2e 22 0d 0e ce 09 | all fil|es."....|
|00003080| 20 20 20 20 fa 0d 0e d8 | 07 20 20 cd 0d 0e e2 1d | ....|. .....|
|00003090| 20 20 e3 20 69 25 20 3d | 20 30 20 b8 20 7a 6f 6e | . i% =| 0 . zon|
|000030a0| 65 5f 73 69 7a 65 25 2d | 31 0d 0e ec 1e 20 20 20 |e_size%-|1.... |
|000030b0| 20 f2 70 75 74 62 6c 6f | 63 6b 28 62 25 2b 69 25 | .putblo|ck(b%+i%|
|000030c0| 2c 20 7a 65 72 6f 29 0d | 0e f6 07 20 20 ed 0d 0f |, zero).|... ...|
|000030d0| 00 29 20 20 f2 69 6e 73 | 65 72 74 5f 62 69 74 28 |.) .ins|ert_bit(|
|000030e0| 7a 6f 6e 65 5f 6d 61 70 | 25 2c 20 7a 25 2d 7a 6f |zone_map|%, z%-zo|
|000030f0| 66 66 25 2c 20 31 29 0d | 0f 0a 07 3d 7a 25 0d 0f |ff%, 1).|...=z%..|
|00003100| 14 38 f4 20 65 6e 74 65 | 72 5f 64 69 72 28 29 20 |.8. ente|r_dir() |
|00003110| 2d 20 6d 61 6b 65 73 20 | 61 20 64 69 72 65 63 74 |- makes |a direct|
|00003120| 6f 72 79 20 65 6e 74 72 | 79 20 69 6e 20 61 6e 20 |ory entr|y in an |
|00003130| 69 6e 6f 64 65 2e 0d 0f | 1e 28 dd 20 f2 65 6e 74 |inode...|.(. .ent|
|00003140| 65 72 5f 64 69 72 28 70 | 61 72 65 6e 74 25 2c 20 |er_dir(p|arent%, |
|00003150| 6e 61 6d 65 24 2c 20 63 | 68 69 6c 64 25 29 0d 0f |name$, c|hild%)..|
|00003160| 28 24 20 20 ea 20 69 25 | 2c 20 6a 25 2c 20 6b 25 |($ . i%|, j%, k%|
|00003170| 2c 20 6c 25 2c 20 62 25 | 2c 20 7a 25 2c 20 6f 66 |, l%, b%|, z%, of|
|00003180| 66 25 0d 0f 32 0a 20 20 | ea 20 70 31 0d 0f 3c 3b |f%..2. |. p1..<;|
|00003190| 20 20 62 25 20 3d 20 28 | 28 70 61 72 65 6e 74 25 | b% = (|(parent%|
|000031a0| 2d 31 29 20 81 20 49 4e | 4f 44 45 53 5f 50 45 52 |-1) . IN|ODES_PER|
|000031b0| 5f 42 4c 4f 43 4b 29 20 | 2b 20 69 6e 6f 64 65 5f |_BLOCK) |+ inode_|
|000031c0| 6f 66 66 73 65 74 25 0d | 0f 46 2b 20 20 6f 66 66 |offset%.|.F+ off|
|000031d0| 25 20 3d 20 28 70 61 72 | 65 6e 74 25 2d 31 29 20 |% = (par|ent%-1) |
|000031e0| 83 20 49 4e 4f 44 45 53 | 5f 50 45 52 5f 42 4c 4f |. INODES|_PER_BLO|
|000031f0| 43 4b 0d 0f 50 1c 20 20 | f2 67 65 74 62 6c 6f 63 |CK..P. |.getbloc|
|00003200| 6b 28 62 25 2c 20 69 6e | 6f 5f 62 75 66 29 0d 0f |k(b%, in|o_buf)..|
|00003210| 5a 0c 20 20 6b 25 20 3d | 20 30 0d 0f 64 1c 20 20 |Z. k% =| 0..d. |
|00003220| c8 95 20 28 6b 25 20 3c | 20 4e 52 5f 44 5a 4f 4e |.. (k% <| NR_DZON|
|00003230| 45 5f 4e 55 4d 29 0d 0f | 6e 43 20 20 20 20 69 6e |E_NUM)..|nC in|
|00003240| 64 65 78 25 20 3d 20 69 | 6e 6f 5f 62 75 66 20 2b |dex% = i|no_buf +|
|00003250| 20 28 49 4e 4f 44 45 5f | 53 49 5a 45 2a 6f 66 66 | (INODE_|SIZE*off|
|00003260| 25 29 2b 69 5f 7a 6f 6e | 65 2b 28 6b 25 2a 53 48 |%)+i_zon|e+(k%*SH|
|00003270| 4f 52 54 5f 53 49 5a 45 | 29 0d 0f 78 1f 20 20 20 |ORT_SIZE|)..x. |
|00003280| 20 7a 25 20 3d 20 a4 67 | 65 74 5f 73 68 6f 72 74 | z% = .g|et_short|
|00003290| 28 69 6e 64 65 78 25 29 | 0d 0f 82 14 20 20 20 20 |(index%)|.... |
|000032a0| e7 20 28 7a 25 20 3d 20 | 30 29 20 8c 0d 0f 8c 1a |. (z% = |0) .....|
|000032b0| 20 20 20 20 20 20 7a 25 | 20 3d 20 a4 61 6c 6c 6f | z%| = .allo|
|000032c0| 63 5f 7a 6f 6e 65 0d 0f | 96 20 20 20 20 20 20 20 |c_zone..|. |
|000032d0| f2 70 75 74 5f 73 68 6f | 72 74 28 69 6e 64 65 78 |.put_sho|rt(index|
|000032e0| 25 2c 20 7a 25 29 0d 0f | a0 09 20 20 20 20 cd 0d |%, z%)..|.. ..|
|000032f0| 0f aa 1f 20 20 20 20 e3 | 20 6c 25 20 3d 20 30 20 |... .| l% = 0 |
|00003300| b8 20 7a 6f 6e 65 5f 73 | 69 7a 65 25 2d 31 0d 0f |. zone_s|ize%-1..|
|00003310| b4 36 20 20 20 20 20 20 | f2 67 65 74 62 6c 6f 63 |.6 |.getbloc|
|00003320| 6b 28 28 7a 25 20 3c 3c | 20 7a 6f 6e 65 5f 73 68 |k((z% <<| zone_sh|
|00003330| 69 66 74 25 29 2b 6c 25 | 2c 20 64 69 72 5f 65 6e |ift%)+l%|, dir_en|
|00003340| 74 72 79 29 0d 0f be 25 | 20 20 20 20 20 20 e3 20 |try)...%| . |
|00003350| 69 25 20 3d 20 30 20 b8 | 20 4e 52 5f 44 49 52 5f |i% = 0 .| NR_DIR_|
|00003360| 45 4e 54 52 49 45 53 2d | 31 0d 0f c8 34 20 20 20 |ENTRIES-|1...4 |
|00003370| 20 20 20 20 20 69 6e 64 | 65 78 25 20 3d 20 64 69 | ind|ex% = di|
|00003380| 72 5f 65 6e 74 72 79 20 | 2b 20 28 69 25 2a 44 49 |r_entry |+ (i%*DI|
|00003390| 52 5f 45 4e 54 52 59 5f | 53 49 5a 45 29 0d 0f d2 |R_ENTRY_|SIZE)...|
|000033a0| 32 20 20 20 20 20 20 20 | 20 e7 20 28 a4 67 65 74 |2 | . (.get|
|000033b0| 5f 73 68 6f 72 74 28 69 | 6e 64 65 78 25 2b 64 69 |_short(i|ndex%+di|
|000033c0| 72 5f 69 6e 75 6d 62 29 | 20 3d 20 30 29 20 8c 0d |r_inumb)| = 0) ..|
|000033d0| 0f dc 32 20 20 20 20 20 | 20 20 20 20 20 f2 70 75 |..2 | .pu|
|000033e0| 74 5f 73 68 6f 72 74 28 | 69 6e 64 65 78 25 2b 64 |t_short(|index%+d|
|000033f0| 69 72 5f 69 6e 75 6d 62 | 2c 20 63 68 69 6c 64 25 |ir_inumb|, child%|
|00003400| 29 0d 0f e6 1b 20 20 20 | 20 20 20 20 20 20 20 e3 |).... | .|
|00003410| 20 6a 25 20 3d 20 30 20 | b8 20 31 33 0d 0f f0 24 | j% = 0 |. 13...$|
|00003420| 20 20 20 20 20 20 20 20 | 20 20 20 20 e7 20 28 6a | | . (j|
|00003430| 25 20 3e 3d 20 a9 28 6e | 61 6d 65 24 29 29 20 8c |% >= .(n|ame$)) .|
|00003440| 0d 0f fa 2b 20 20 20 20 | 20 20 20 20 20 20 20 20 |...+ | |
|00003450| 20 20 3f 28 69 6e 64 65 | 78 25 2b 64 69 72 5f 6e | ?(inde|x%+dir_n|
|00003460| 61 6d 65 2b 6a 25 29 20 | 3d 20 30 0d 10 04 11 20 |ame+j%) |= 0.... |
|00003470| 20 20 20 20 20 20 20 20 | 20 20 20 cc 0d 10 0e 3b | | ....;|
|00003480| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3f 28 | | ?(|
|00003490| 69 6e 64 65 78 25 2b 64 | 69 72 5f 6e 61 6d 65 2b |index%+d|ir_name+|
|000034a0| 6a 25 29 20 3d 20 97 28 | c1 6e 61 6d 65 24 2c 6a |j%) = .(|.name$,j|
|000034b0| 25 2b 31 2c 31 29 29 0d | 10 18 11 20 20 20 20 20 |%+1,1)).|... |
|000034c0| 20 20 20 20 20 20 20 cd | 0d 10 22 0f 20 20 20 20 | .|..". |
|000034d0| 20 20 20 20 20 20 ed 0d | 10 2c 3a 20 20 20 20 20 | ..|.,: |
|000034e0| 20 20 20 20 20 f2 70 75 | 74 62 6c 6f 63 6b 28 7a | .pu|tblock(z|
|000034f0| 25 20 3c 3c 20 7a 6f 6e | 65 5f 73 68 69 66 74 25 |% << zon|e_shift%|
|00003500| 20 2b 20 6c 25 2c 20 64 | 69 72 5f 65 6e 74 72 79 | + l%, d|ir_entry|
|00003510| 29 0d 10 36 24 20 20 20 | 20 20 20 20 20 20 20 f2 |)..6$ | .|
|00003520| 70 75 74 62 6c 6f 63 6b | 28 62 25 2c 20 69 6e 6f |putblock|(b%, ino|
|00003530| 5f 62 75 66 29 0d 10 40 | 0f 20 20 20 20 20 20 20 |_buf)..@|. |
|00003540| 20 20 20 e1 0d 10 4a 0d | 20 20 20 20 20 20 20 20 | ...J.| |
|00003550| cd 0d 10 54 0b 20 20 20 | 20 20 20 ed 0d 10 5e 09 |...T. | ...^.|
|00003560| 20 20 20 20 ed 0d 10 68 | 0f 20 20 20 20 6b 25 20 | ...h|. k% |
|00003570| 2b 3d 20 31 0d 10 72 07 | 20 20 ce 0d 10 7c 48 20 |+= 1..r.| ...|H |
|00003580| 20 f1 22 44 69 72 65 63 | 74 6f 72 79 20 69 6e 6f | ."Direc|tory ino|
|00003590| 64 65 20 22 3b 70 61 72 | 65 6e 74 25 3b 22 20 69 |de ";par|ent%;" i|
|000035a0| 73 20 62 65 79 6f 6e 64 | 20 64 69 72 65 63 74 20 |s beyond| direct |
|000035b0| 62 6c 6f 63 6b 73 2e 20 | 20 43 6f 75 6c 64 20 6e |blocks. | Could n|
|000035c0| 6f 74 22 0d 10 86 15 20 | 20 f1 22 65 6e 74 65 72 |ot".... | ."enter|
|000035d0| 20 22 3b 6e 61 6d 65 24 | 0d 10 90 07 20 20 fa 0d | ";name$|.... ..|
|000035e0| 10 9a 05 e1 0d 10 a4 37 | f4 20 69 6e 63 72 5f 6c |.......7|. incr_l|
|000035f0| 69 6e 6b 28 29 20 2d 20 | 69 6e 63 72 65 6d 65 6e |ink() - |incremen|
|00003600| 74 20 74 68 65 20 6c 69 | 6e 6b 20 63 6f 75 6e 74 |t the li|nk count|
|00003610| 20 74 6f 20 69 6e 6f 64 | 65 20 6e 0d 10 ae 38 f4 | to inod|e n...8.|
|00003620| 20 55 73 65 73 20 74 68 | 65 20 67 6c 6f 62 61 6c | Uses th|e global|
|00003630| 20 6d 65 6d 6f 72 79 20 | 62 6c 6f 63 6b 20 69 6e | memory |block in|
|00003640| 6f 64 65 5f 62 75 66 2e | 20 20 41 6c 73 6f 20 75 |ode_buf.| Also u|
|00003650| 73 65 64 0d 10 b8 19 f4 | 20 62 79 20 46 4e 61 6c |sed.....| by FNal|
|00003660| 6c 6f 63 5f 69 6e 6f 64 | 65 28 29 2e 0d 10 c2 14 |loc_inod|e().....|
|00003670| dd 20 f2 69 6e 63 72 5f | 6c 69 6e 6b 28 6e 25 29 |. .incr_|link(n%)|
|00003680| 0d 10 cc 20 20 20 ea 20 | 62 25 2c 20 6f 66 66 25 |... . |b%, off%|
|00003690| 2c 20 76 61 6c 75 65 25 | 2c 20 69 6e 64 65 78 25 |, value%|, index%|
|000036a0| 0d 10 d6 36 20 20 62 25 | 20 3d 20 28 28 6e 25 2d |...6 b%| = ((n%-|
|000036b0| 31 29 20 81 20 49 4e 4f | 44 45 53 5f 50 45 52 5f |1) . INO|DES_PER_|
|000036c0| 42 4c 4f 43 4b 29 20 2b | 20 69 6e 6f 64 65 5f 6f |BLOCK) +| inode_o|
|000036d0| 66 66 73 65 74 25 0d 10 | e0 26 20 20 6f 66 66 25 |ffset%..|.& off%|
|000036e0| 20 3d 20 28 6e 25 2d 31 | 29 20 83 20 49 4e 4f 44 | = (n%-1|) . INOD|
|000036f0| 45 53 5f 50 45 52 5f 42 | 4c 4f 43 4b 0d 10 ea 1e |ES_PER_B|LOCK....|
|00003700| 20 20 f2 67 65 74 62 6c | 6f 63 6b 28 62 25 2c 20 | .getbl|ock(b%, |
|00003710| 69 6e 6f 64 65 5f 62 75 | 66 29 0d 10 f4 37 20 20 |inode_bu|f)...7 |
|00003720| 69 6e 64 65 78 25 20 3d | 20 69 6e 6f 64 65 5f 62 |index% =| inode_b|
|00003730| 75 66 20 2b 20 28 49 4e | 4f 44 45 5f 53 49 5a 45 |uf + (IN|ODE_SIZE|
|00003740| 2a 6f 66 66 25 29 20 2b | 20 69 5f 6e 6c 69 6e 6b |*off%) +| i_nlink|
|00003750| 73 0d 10 fe 21 20 20 76 | 61 6c 75 65 25 20 3d 20 |s...! v|alue% = |
|00003760| a4 67 65 74 5f 73 68 6f | 72 74 28 69 6e 64 65 78 |.get_sho|rt(index|
|00003770| 25 29 0d 11 08 11 20 20 | 76 61 6c 75 65 25 20 2b |%).... |value% +|
|00003780| 3d 20 31 0d 11 12 20 20 | 20 f2 70 75 74 5f 73 68 |= 1... | .put_sh|
|00003790| 6f 72 74 28 69 6e 64 65 | 78 25 2c 20 76 61 6c 75 |ort(inde|x%, valu|
|000037a0| 65 25 29 0d 11 1c 1e 20 | 20 f2 70 75 74 62 6c 6f |e%).... | .putblo|
|000037b0| 63 6b 28 62 25 2c 20 69 | 6e 6f 64 65 5f 62 75 66 |ck(b%, i|node_buf|
|000037c0| 29 0d 11 26 05 e1 0d ff | |)..&....| |
+--------+-------------------------+-------------------------+--------+--------+