| ofs | hex dump | ascii |
|---|
| 0000 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | malloclab-handout/.............. |
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000755.0006626.0000144.0000 |
| 0080 | 30 30 30 30 30 30 30 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 33 33 32 32 00 20 35 00 00 00 | 0000000.12507032412.013322..5... |
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0100 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 0120 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0200 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 | malloclab-handout/Makefile...... |
| 0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 0280 | 30 30 30 31 31 35 31 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 36 30 00 20 30 00 00 00 | 0001151.12507032412.014760..0... |
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0300 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 0320 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0400 | 23 0a 23 20 53 74 75 64 65 6e 74 73 27 20 4d 61 6b 65 66 69 6c 65 20 66 6f 72 20 74 68 65 20 4d | #.#.Students'.Makefile.for.the.M |
| 0420 | 61 6c 6c 6f 63 20 4c 61 62 0a 23 0a 54 45 41 4d 20 3d 20 62 6f 76 69 6b 0a 56 45 52 53 49 4f 4e | alloc.Lab.#.TEAM.=.bovik.VERSION |
| 0440 | 20 3d 20 31 0a 48 41 4e 44 49 4e 44 49 52 20 3d 20 2f 61 66 73 2f 63 73 2e 63 6d 75 2e 65 64 75 | .=.1.HANDINDIR.=./afs/cs.cmu.edu |
| 0460 | 2f 61 63 61 64 65 6d 69 63 2f 63 6c 61 73 73 2f 31 35 32 31 33 2d 66 30 31 2f 6d 61 6c 6c 6f 63 | /academic/class/15213-f01/malloc |
| 0480 | 6c 61 62 2f 68 61 6e 64 69 6e 0a 0a 43 43 20 3d 20 67 63 63 0a 43 46 4c 41 47 53 20 3d 20 2d 57 | lab/handin..CC.=.gcc.CFLAGS.=.-W |
| 04a0 | 61 6c 6c 20 2d 4f 32 20 2d 6d 33 32 0a 0a 4f 42 4a 53 20 3d 20 6d 64 72 69 76 65 72 2e 6f 20 6d | all.-O2.-m32..OBJS.=.mdriver.o.m |
| 04c0 | 6d 2e 6f 20 6d 65 6d 6c 69 62 2e 6f 20 66 73 65 63 73 2e 6f 20 66 63 79 63 2e 6f 20 63 6c 6f 63 | m.o.memlib.o.fsecs.o.fcyc.o.cloc |
| 04e0 | 6b 2e 6f 20 66 74 69 6d 65 72 2e 6f 0a 0a 6d 64 72 69 76 65 72 3a 20 24 28 4f 42 4a 53 29 0a 09 | k.o.ftimer.o..mdriver:.$(OBJS).. |
| 0500 | 24 28 43 43 29 20 24 28 43 46 4c 41 47 53 29 20 2d 6f 20 6d 64 72 69 76 65 72 20 24 28 4f 42 4a | $(CC).$(CFLAGS).-o.mdriver.$(OBJ |
| 0520 | 53 29 0a 0a 6d 64 72 69 76 65 72 2e 6f 3a 20 6d 64 72 69 76 65 72 2e 63 20 66 73 65 63 73 2e 68 | S)..mdriver.o:.mdriver.c.fsecs.h |
| 0540 | 20 66 63 79 63 2e 68 20 63 6c 6f 63 6b 2e 68 20 6d 65 6d 6c 69 62 2e 68 20 63 6f 6e 66 69 67 2e | .fcyc.h.clock.h.memlib.h.config. |
| 0560 | 68 20 6d 6d 2e 68 0a 6d 65 6d 6c 69 62 2e 6f 3a 20 6d 65 6d 6c 69 62 2e 63 20 6d 65 6d 6c 69 62 | h.mm.h.memlib.o:.memlib.c.memlib |
| 0580 | 2e 68 0a 6d 6d 2e 6f 3a 20 6d 6d 2e 63 20 6d 6d 2e 68 20 6d 65 6d 6c 69 62 2e 68 0a 66 73 65 63 | .h.mm.o:.mm.c.mm.h.memlib.h.fsec |
| 05a0 | 73 2e 6f 3a 20 66 73 65 63 73 2e 63 20 66 73 65 63 73 2e 68 20 63 6f 6e 66 69 67 2e 68 0a 66 63 | s.o:.fsecs.c.fsecs.h.config.h.fc |
| 05c0 | 79 63 2e 6f 3a 20 66 63 79 63 2e 63 20 66 63 79 63 2e 68 0a 66 74 69 6d 65 72 2e 6f 3a 20 66 74 | yc.o:.fcyc.c.fcyc.h.ftimer.o:.ft |
| 05e0 | 69 6d 65 72 2e 63 20 66 74 69 6d 65 72 2e 68 20 63 6f 6e 66 69 67 2e 68 0a 63 6c 6f 63 6b 2e 6f | imer.c.ftimer.h.config.h.clock.o |
| 0600 | 3a 20 63 6c 6f 63 6b 2e 63 20 63 6c 6f 63 6b 2e 68 0a 0a 68 61 6e 64 69 6e 3a 0a 09 63 70 20 6d | :.clock.c.clock.h..handin:..cp.m |
| 0620 | 6d 2e 63 20 24 28 48 41 4e 44 49 4e 44 49 52 29 2f 24 28 54 45 41 4d 29 2d 24 28 56 45 52 53 49 | m.c.$(HANDINDIR)/$(TEAM)-$(VERSI |
| 0640 | 4f 4e 29 2d 6d 6d 2e 63 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d 66 20 2a 7e 20 2a 2e 6f 20 6d | ON)-mm.c..clean:..rm.-f.*~.*.o.m |
| 0660 | 64 72 69 76 65 72 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | driver.......................... |
| 0680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0800 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 52 45 41 44 4d 45 00 00 00 00 00 00 00 00 | malloclab-handout/README........ |
| 0820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 0880 | 30 30 30 32 36 34 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 32 31 30 00 20 30 00 00 00 | 0002644.12507032412.014210..0... |
| 08a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0900 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 0920 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0a00 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
| 0a20 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
| 0a40 | 23 23 23 23 23 0a 23 20 43 53 3a 41 50 50 20 4d 61 6c 6c 6f 63 20 4c 61 62 0a 23 20 48 61 6e 64 | #####.#.CS:APP.Malloc.Lab.#.Hand |
| 0a60 | 6f 75 74 20 66 69 6c 65 73 20 66 6f 72 20 73 74 75 64 65 6e 74 73 0a 23 0a 23 20 43 6f 70 79 72 | out.files.for.students.#.#.Copyr |
| 0a80 | 69 67 68 74 20 28 63 29 20 32 30 30 32 2c 20 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 44 2e 20 | ight.(c).2002,.R..Bryant.and.D.. |
| 0aa0 | 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e | O'Hallaron,.All.rights.reserved. |
| 0ac0 | 0a 23 20 4d 61 79 20 6e 6f 74 20 62 65 20 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 2c 20 6f 72 | .#.May.not.be.used,.modified,.or |
| 0ae0 | 20 63 6f 70 69 65 64 20 77 69 74 68 6f 75 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 23 0a 23 23 | .copied.without.permission..#.## |
| 0b00 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
| 0b20 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
| 0b40 | 23 23 23 23 0a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 4d 61 69 6e 20 46 69 6c 65 73 3a 0a 2a 2a | ####..***********.Main.Files:.** |
| 0b60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 6d 6d 2e 7b 63 2c 68 7d 09 0a 09 59 6f 75 72 20 73 6f 6c 75 74 | *********..mm.{c,h}...Your.solut |
| 0b80 | 69 6f 6e 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 2e 20 6d 6d 2e 63 20 69 73 20 74 68 65 20 | ion.malloc.package..mm.c.is.the. |
| 0ba0 | 66 69 6c 65 20 74 68 61 74 20 79 6f 75 0a 09 77 69 6c 6c 20 62 65 20 68 61 6e 64 69 6e 67 20 69 | file.that.you..will.be.handing.i |
| 0bc0 | 6e 2c 20 61 6e 64 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 66 69 6c 65 20 79 6f 75 20 73 68 6f 75 | n,.and.is.the.only.file.you.shou |
| 0be0 | 6c 64 20 6d 6f 64 69 66 79 2e 0a 0a 6d 64 72 69 76 65 72 2e 63 09 0a 09 54 68 65 20 6d 61 6c 6c | ld.modify...mdriver.c...The.mall |
| 0c00 | 6f 63 20 64 72 69 76 65 72 20 74 68 61 74 20 74 65 73 74 73 20 79 6f 75 72 20 6d 6d 2e 63 20 66 | oc.driver.that.tests.your.mm.c.f |
| 0c20 | 69 6c 65 0a 0a 73 68 6f 72 74 7b 31 2c 32 7d 2d 62 61 6c 2e 72 65 70 0a 09 54 77 6f 20 74 69 6e | ile..short{1,2}-bal.rep..Two.tin |
| 0c40 | 79 20 74 72 61 63 65 66 69 6c 65 73 20 74 6f 20 68 65 6c 70 20 79 6f 75 20 67 65 74 20 73 74 61 | y.tracefiles.to.help.you.get.sta |
| 0c60 | 72 74 65 64 2e 20 0a 0a 4d 61 6b 65 66 69 6c 65 09 0a 09 42 75 69 6c 64 73 20 74 68 65 20 64 72 | rted....Makefile...Builds.the.dr |
| 0c80 | 69 76 65 72 0a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | iver..************************** |
| 0ca0 | 2a 2a 2a 2a 2a 2a 2a 2a 0a 4f 74 68 65 72 20 73 75 70 70 6f 72 74 20 66 69 6c 65 73 20 66 6f 72 | ********.Other.support.files.for |
| 0cc0 | 20 74 68 65 20 64 72 69 76 65 72 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .the.driver.******************** |
| 0ce0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 63 6f 6e 66 69 67 2e 68 09 43 6f 6e 66 69 67 75 | **************..config.h.Configu |
| 0d00 | 72 65 73 20 74 68 65 20 6d 61 6c 6c 6f 63 20 6c 61 62 20 64 72 69 76 65 72 0a 66 73 65 63 73 2e | res.the.malloc.lab.driver.fsecs. |
| 0d20 | 7b 63 2c 68 7d 09 57 72 61 70 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 64 | {c,h}.Wrapper.function.for.the.d |
| 0d40 | 69 66 66 65 72 65 6e 74 20 74 69 6d 65 72 20 70 61 63 6b 61 67 65 73 0a 63 6c 6f 63 6b 2e 7b 63 | ifferent.timer.packages.clock.{c |
| 0d60 | 2c 68 7d 09 52 6f 75 74 69 6e 65 73 20 66 6f 72 20 61 63 63 65 73 73 69 6e 67 20 74 68 65 20 50 | ,h}.Routines.for.accessing.the.P |
| 0d80 | 65 6e 74 69 75 6d 20 61 6e 64 20 41 6c 70 68 61 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 73 0a | entium.and.Alpha.cycle.counters. |
| 0da0 | 66 63 79 63 2e 7b 63 2c 68 7d 09 54 69 6d 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 62 61 73 65 64 | fcyc.{c,h}.Timer.functions.based |
| 0dc0 | 20 6f 6e 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 73 0a 66 74 69 6d 65 72 2e 7b 63 2c 68 7d 09 | .on.cycle.counters.ftimer.{c,h}. |
| 0de0 | 54 69 6d 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 62 61 73 65 64 20 6f 6e 20 69 6e 74 65 72 76 61 | Timer.functions.based.on.interva |
| 0e00 | 6c 20 74 69 6d 65 72 73 20 61 6e 64 20 67 65 74 74 69 6d 65 6f 66 64 61 79 28 29 0a 6d 65 6d 6c | l.timers.and.gettimeofday().meml |
| 0e20 | 69 62 2e 7b 63 2c 68 7d 09 4d 6f 64 65 6c 73 20 74 68 65 20 68 65 61 70 20 61 6e 64 20 73 62 72 | ib.{c,h}.Models.the.heap.and.sbr |
| 0e40 | 6b 20 66 75 6e 63 74 69 6f 6e 0a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | k.function..******************** |
| 0e60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 42 75 69 6c 64 69 6e 67 20 61 6e 64 20 72 75 6e 6e 69 6e 67 | ***********.Building.and.running |
| 0e80 | 20 74 68 65 20 64 72 69 76 65 72 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .the.driver.******************** |
| 0ea0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 54 6f 20 62 75 69 6c 64 20 74 68 65 20 64 72 69 76 65 72 2c | ***********.To.build.the.driver, |
| 0ec0 | 20 74 79 70 65 20 22 6d 61 6b 65 22 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 0a 0a 54 6f 20 72 | .type."make".to.the.shell...To.r |
| 0ee0 | 75 6e 20 74 68 65 20 64 72 69 76 65 72 20 6f 6e 20 61 20 74 69 6e 79 20 74 65 73 74 20 74 72 61 | un.the.driver.on.a.tiny.test.tra |
| 0f00 | 63 65 3a 0a 0a 09 75 6e 69 78 3e 20 6d 64 72 69 76 65 72 20 2d 56 20 2d 66 20 73 68 6f 72 74 31 | ce:...unix>.mdriver.-V.-f.short1 |
| 0f20 | 2d 62 61 6c 2e 72 65 70 0a 0a 54 68 65 20 2d 56 20 6f 70 74 69 6f 6e 20 70 72 69 6e 74 73 20 6f | -bal.rep..The.-V.option.prints.o |
| 0f40 | 75 74 20 68 65 6c 70 66 75 6c 20 74 72 61 63 69 6e 67 20 61 6e 64 20 73 75 6d 6d 61 72 79 20 69 | ut.helpful.tracing.and.summary.i |
| 0f60 | 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 54 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 74 68 | nformation...To.get.a.list.of.th |
| 0f80 | 65 20 64 72 69 76 65 72 20 66 6c 61 67 73 3a 0a 0a 09 75 6e 69 78 3e 20 6d 64 72 69 76 65 72 20 | e.driver.flags:...unix>.mdriver. |
| 0fa0 | 2d 68 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | -h.............................. |
| 0fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1000 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 63 6c 6f 63 6b 2e 63 00 00 00 00 00 00 00 | malloclab-handout/clock.c....... |
| 1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1060 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 1080 | 30 30 31 35 36 34 35 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 35 37 34 00 20 30 00 00 00 | 0015645.12507032412.014574..0... |
| 10a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 10c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 10e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1100 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 1120 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 1140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1200 | 2f 2a 20 0a 20 2a 20 63 6c 6f 63 6b 2e 63 20 2d 20 52 6f 75 74 69 6e 65 73 20 66 6f 72 20 75 73 | /*...*.clock.c.-.Routines.for.us |
| 1220 | 69 6e 67 20 74 68 65 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 73 20 6f 6e 20 78 38 36 2c 20 0a | ing.the.cycle.counters.on.x86,.. |
| 1240 | 20 2a 20 20 20 20 20 20 20 20 20 20 20 41 6c 70 68 61 2c 20 61 6e 64 20 53 70 61 72 63 20 62 6f | .*...........Alpha,.and.Sparc.bo |
| 1260 | 78 65 73 2e 0a 20 2a 20 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 32 2c 20 | xes...*...*.Copyright.(c).2002,. |
| 1280 | 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 44 2e 20 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 6c 6c | R..Bryant.and.D..O'Hallaron,.All |
| 12a0 | 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 20 2a 20 4d 61 79 20 6e 6f 74 20 62 65 20 | .rights.reserved...*.May.not.be. |
| 12c0 | 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 2c 20 6f 72 20 63 6f 70 69 65 64 20 77 69 74 68 6f 75 | used,.modified,.or.copied.withou |
| 12e0 | 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 20 2a 2f 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 | t.permission...*/..#include.<std |
| 1300 | 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 | io.h>.#include.<stdlib.h>.#inclu |
| 1320 | 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 | de.<unistd.h>.#include.<sys/time |
| 1340 | 73 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 22 63 6c 6f 63 6b 2e 68 22 0a 0a 0a 2f 2a 2a 2a 2a 2a | s.h>.#include."clock.h".../***** |
| 1360 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 1380 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 0a 20 2a 20 4d 61 63 68 69 6e 65 20 64 | ******************...*.Machine.d |
| 13a0 | 65 70 65 6e 64 65 6e 74 20 66 75 6e 63 74 69 6f 6e 73 20 0a 20 2a 0a 20 2a 20 4e 6f 74 65 3a 20 | ependent.functions...*..*.Note:. |
| 13c0 | 74 68 65 20 63 6f 6e 73 74 61 6e 74 73 20 5f 5f 69 33 38 36 5f 5f 20 61 6e 64 20 20 5f 5f 61 6c | the.constants.__i386__.and..__al |
| 13e0 | 70 68 61 0a 20 2a 20 61 72 65 20 73 65 74 20 62 79 20 47 43 43 20 77 68 65 6e 20 69 74 20 63 61 | pha..*.are.set.by.GCC.when.it.ca |
| 1400 | 6c 6c 73 20 74 68 65 20 43 20 70 72 65 70 72 6f 63 65 73 73 6f 72 0a 20 2a 20 59 6f 75 20 63 61 | lls.the.C.preprocessor..*.You.ca |
| 1420 | 6e 20 76 65 72 69 66 79 20 74 68 69 73 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 75 73 69 6e 67 | n.verify.this.for.yourself.using |
| 1440 | 20 67 63 63 20 2d 76 2e 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .gcc.-v...********************** |
| 1460 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 1480 | 2a 2f 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 69 33 38 36 5f 5f 29 20 20 0a 2f 2a 2a 2a | */..#if.defined(__i386__).../*** |
| 14a0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 14c0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 50 65 6e 74 69 75 6d 20 | ********************..*.Pentium. |
| 14e0 | 76 65 72 73 69 6f 6e 73 20 6f 66 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 20 61 6e 64 20 | versions.of.start_counter().and. |
| 1500 | 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | get_counter()..***************** |
| 1520 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 1540 | 2a 2a 2a 2a 2a 2a 2f 0a 0a 0a 2f 2a 20 24 62 65 67 69 6e 20 78 38 36 63 79 63 6c 65 63 6f 75 6e | ******/.../*.$begin.x86cyclecoun |
| 1560 | 74 65 72 20 2a 2f 0a 2f 2a 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 63 79 63 6c 65 20 63 | ter.*/./*.Initialize.the.cycle.c |
| 1580 | 6f 75 6e 74 65 72 20 2a 2f 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 63 79 63 5f 68 69 | ounter.*/.static.unsigned.cyc_hi |
| 15a0 | 20 3d 20 30 3b 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 63 79 63 5f 6c 6f 20 3d 20 30 | .=.0;.static.unsigned.cyc_lo.=.0 |
| 15c0 | 3b 0a 0a 0a 2f 2a 20 53 65 74 20 2a 68 69 20 61 6e 64 20 2a 6c 6f 20 74 6f 20 74 68 65 20 68 69 | ;.../*.Set.*hi.and.*lo.to.the.hi |
| 15e0 | 67 68 20 61 6e 64 20 6c 6f 77 20 6f 72 64 65 72 20 62 69 74 73 20 20 6f 66 20 74 68 65 20 63 79 | gh.and.low.order.bits..of.the.cy |
| 1600 | 63 6c 65 20 63 6f 75 6e 74 65 72 2e 20 20 0a 20 20 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e | cle.counter.......Implementation |
| 1620 | 20 72 65 71 75 69 72 65 73 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65 20 74 6f 20 75 73 65 20 74 | .requires.assembly.code.to.use.t |
| 1640 | 68 65 20 72 64 74 73 63 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 20 2a 2f 0a 76 6f 69 64 20 61 63 | he.rdtsc.instruction..*/.void.ac |
| 1660 | 63 65 73 73 5f 63 6f 75 6e 74 65 72 28 75 6e 73 69 67 6e 65 64 20 2a 68 69 2c 20 75 6e 73 69 67 | cess_counter(unsigned.*hi,.unsig |
| 1680 | 6e 65 64 20 2a 6c 6f 29 0a 7b 0a 20 20 20 20 61 73 6d 28 22 72 64 74 73 63 3b 20 6d 6f 76 6c 20 | ned.*lo).{.....asm("rdtsc;.movl. |
| 16a0 | 25 25 65 64 78 2c 25 30 3b 20 6d 6f 76 6c 20 25 25 65 61 78 2c 25 31 22 20 20 20 2f 2a 20 52 65 | %%edx,%0;.movl.%%eax,%1".../*.Re |
| 16c0 | 61 64 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 20 2a 2f 0a 09 3a 20 22 3d 72 22 20 28 2a 68 69 | ad.cycle.counter.*/..:."=r".(*hi |
| 16e0 | 29 2c 20 22 3d 72 22 20 28 2a 6c 6f 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 | ),."=r".(*lo)................/*. |
| 1700 | 61 6e 64 20 6d 6f 76 65 20 72 65 73 75 6c 74 73 20 74 6f 20 2a 2f 0a 09 3a 20 2f 2a 20 4e 6f 20 | and.move.results.to.*/..:./*.No. |
| 1720 | 69 6e 70 75 74 20 2a 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | input.*/........................ |
| 1740 | 2f 2a 20 74 68 65 20 74 77 6f 20 6f 75 74 70 75 74 73 20 2a 2f 0a 09 3a 20 22 25 65 64 78 22 2c | /*.the.two.outputs.*/..:."%edx", |
| 1760 | 20 22 25 65 61 78 22 29 3b 0a 7d 0a 0a 2f 2a 20 52 65 63 6f 72 64 20 74 68 65 20 63 75 72 72 65 | ."%eax");.}../*.Record.the.curre |
| 1780 | 6e 74 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 2e 20 2a | nt.value.of.the.cycle.counter..* |
| 17a0 | 2f 0a 76 6f 69 64 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 0a 7b 0a 20 20 20 20 61 63 63 | /.void.start_counter().{.....acc |
| 17c0 | 65 73 73 5f 63 6f 75 6e 74 65 72 28 26 63 79 63 5f 68 69 2c 20 26 63 79 63 5f 6c 6f 29 3b 0a 7d | ess_counter(&cyc_hi,.&cyc_lo);.} |
| 17e0 | 0a 0a 2f 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 79 63 6c 65 73 | ../*.Return.the.number.of.cycles |
| 1800 | 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c 20 74 6f 20 73 74 61 72 74 5f 63 6f | .since.the.last.call.to.start_co |
| 1820 | 75 6e 74 65 72 2e 20 2a 2f 0a 64 6f 75 62 6c 65 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 0a 7b | unter..*/.double.get_counter().{ |
| 1840 | 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6e 63 79 63 5f 68 69 2c 20 6e 63 79 63 5f 6c 6f 3b 0a | .....unsigned.ncyc_hi,.ncyc_lo;. |
| 1860 | 20 20 20 20 75 6e 73 69 67 6e 65 64 20 68 69 2c 20 6c 6f 2c 20 62 6f 72 72 6f 77 3b 0a 20 20 20 | ....unsigned.hi,.lo,.borrow;.... |
| 1880 | 20 64 6f 75 62 6c 65 20 72 65 73 75 6c 74 3b 0a 0a 20 20 20 20 2f 2a 20 47 65 74 20 63 79 63 6c | .double.result;....../*.Get.cycl |
| 18a0 | 65 20 63 6f 75 6e 74 65 72 20 2a 2f 0a 20 20 20 20 61 63 63 65 73 73 5f 63 6f 75 6e 74 65 72 28 | e.counter.*/.....access_counter( |
| 18c0 | 26 6e 63 79 63 5f 68 69 2c 20 26 6e 63 79 63 5f 6c 6f 29 3b 0a 0a 20 20 20 20 2f 2a 20 44 6f 20 | &ncyc_hi,.&ncyc_lo);....../*.Do. |
| 18e0 | 64 6f 75 62 6c 65 20 70 72 65 63 69 73 69 6f 6e 20 73 75 62 74 72 61 63 74 69 6f 6e 20 2a 2f 0a | double.precision.subtraction.*/. |
| 1900 | 20 20 20 20 6c 6f 20 3d 20 6e 63 79 63 5f 6c 6f 20 2d 20 63 79 63 5f 6c 6f 3b 0a 20 20 20 20 62 | ....lo.=.ncyc_lo.-.cyc_lo;.....b |
| 1920 | 6f 72 72 6f 77 20 3d 20 6c 6f 20 3e 20 6e 63 79 63 5f 6c 6f 3b 0a 20 20 20 20 68 69 20 3d 20 6e | orrow.=.lo.>.ncyc_lo;.....hi.=.n |
| 1940 | 63 79 63 5f 68 69 20 2d 20 63 79 63 5f 68 69 20 2d 20 62 6f 72 72 6f 77 3b 0a 20 20 20 20 72 65 | cyc_hi.-.cyc_hi.-.borrow;.....re |
| 1960 | 73 75 6c 74 20 3d 20 28 64 6f 75 62 6c 65 29 20 68 69 20 2a 20 28 31 20 3c 3c 20 33 30 29 20 2a | sult.=.(double).hi.*.(1.<<.30).* |
| 1980 | 20 34 20 2b 20 6c 6f 3b 0a 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 3c 20 30 29 20 7b 0a 09 | .4.+.lo;.....if.(result.<.0).{.. |
| 19a0 | 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 45 72 72 6f 72 3a 20 63 6f 75 6e 74 65 72 20 | fprintf(stderr,."Error:.counter. |
| 19c0 | 72 65 74 75 72 6e 73 20 6e 65 67 20 76 61 6c 75 65 3a 20 25 2e 30 66 5c 6e 22 2c 20 72 65 73 75 | returns.neg.value:.%.0f\n",.resu |
| 19e0 | 6c 74 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a | lt);.....}.....return.result;.}. |
| 1a00 | 2f 2a 20 24 65 6e 64 20 78 38 36 63 79 63 6c 65 63 6f 75 6e 74 65 72 20 2a 2f 0a 0a 23 65 6c 69 | /*.$end.x86cyclecounter.*/..#eli |
| 1a20 | 66 20 64 65 66 69 6e 65 64 28 5f 5f 61 6c 70 68 61 29 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | f.defined(__alpha)../*********** |
| 1a40 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 1a60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 41 6c 70 68 61 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 73 | *********..*.Alpha.versions.of.s |
| 1a80 | 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 20 61 6e 64 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 | tart_counter().and.get_counter() |
| 1aa0 | 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ..****************************** |
| 1ac0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 49 6e 69 74 69 | *********************/../*.Initi |
| 1ae0 | 61 6c 69 7a 65 20 74 68 65 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 20 2a 2f 0a 73 74 61 74 69 | alize.the.cycle.counter.*/.stati |
| 1b00 | 63 20 75 6e 73 69 67 6e 65 64 20 63 79 63 5f 68 69 20 3d 20 30 3b 0a 73 74 61 74 69 63 20 75 6e | c.unsigned.cyc_hi.=.0;.static.un |
| 1b20 | 73 69 67 6e 65 64 20 63 79 63 5f 6c 6f 20 3d 20 30 3b 0a 0a 0a 2f 2a 20 55 73 65 20 41 6c 70 68 | signed.cyc_lo.=.0;.../*.Use.Alph |
| 1b40 | 61 20 63 79 63 6c 65 20 74 69 6d 65 72 20 74 6f 20 63 6f 6d 70 75 74 65 20 63 79 63 6c 65 73 2e | a.cycle.timer.to.compute.cycles. |
| 1b60 | 20 20 54 68 65 6e 20 75 73 65 0a 20 20 20 6d 65 61 73 75 72 65 64 20 63 6c 6f 63 6b 20 73 70 65 | ..Then.use....measured.clock.spe |
| 1b80 | 65 64 20 74 6f 20 63 6f 6d 70 75 74 65 20 73 65 63 6f 6e 64 73 20 0a 2a 2f 0a 0a 2f 2a 0a 20 2a | ed.to.compute.seconds..*/../*..* |
| 1ba0 | 20 63 6f 75 6e 74 65 72 52 6f 75 74 69 6e 65 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 41 | .counterRoutine.is.an.array.of.A |
| 1bc0 | 6c 70 68 61 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 74 6f 20 61 63 63 65 73 73 20 0a 20 2a 20 | lpha.instructions.to.access...*. |
| 1be0 | 74 68 65 20 41 6c 70 68 61 27 73 20 70 72 6f 63 65 73 73 6f 72 20 63 79 63 6c 65 20 63 6f 75 6e | the.Alpha's.processor.cycle.coun |
| 1c00 | 74 65 72 2e 20 49 74 20 75 73 65 73 20 74 68 65 20 72 70 63 63 20 0a 20 2a 20 69 6e 73 74 72 75 | ter..It.uses.the.rpcc...*.instru |
| 1c20 | 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 63 6f 75 6e 74 65 72 2e 20 54 68 69 | ction.to.access.the.counter..Thi |
| 1c40 | 73 20 36 34 20 62 69 74 20 72 65 67 69 73 74 65 72 20 69 73 20 0a 20 2a 20 64 69 76 69 64 65 64 | s.64.bit.register.is...*.divided |
| 1c60 | 20 69 6e 74 6f 20 74 77 6f 20 70 61 72 74 73 2e 20 54 68 65 20 6c 6f 77 65 72 20 33 32 20 62 69 | .into.two.parts..The.lower.32.bi |
| 1c80 | 74 73 20 61 72 65 20 74 68 65 20 63 79 63 6c 65 73 20 0a 20 2a 20 75 73 65 64 20 62 79 20 74 68 | ts.are.the.cycles...*.used.by.th |
| 1ca0 | 65 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 2e 20 54 68 65 20 75 70 70 65 72 20 33 32 20 | e.current.process..The.upper.32. |
| 1cc0 | 62 69 74 73 20 61 72 65 20 77 61 6c 6c 20 0a 20 2a 20 63 6c 6f 63 6b 20 63 79 63 6c 65 73 2e 20 | bits.are.wall...*.clock.cycles.. |
| 1ce0 | 54 68 65 73 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 72 65 61 64 20 74 68 65 20 63 6f 75 6e | These.instructions.read.the.coun |
| 1d00 | 74 65 72 2c 20 61 6e 64 20 0a 20 2a 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6c 6f 77 65 72 20 33 | ter,.and...*.convert.the.lower.3 |
| 1d20 | 32 20 62 69 74 73 20 69 6e 74 6f 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2d 20 74 68 | 2.bits.into.an.unsigned.int.-.th |
| 1d40 | 69 73 20 69 73 20 74 68 65 20 0a 20 2a 20 75 73 65 72 20 73 70 61 63 65 20 63 6f 75 6e 74 65 72 | is.is.the...*.user.space.counter |
| 1d60 | 20 76 61 6c 75 65 2e 0a 20 2a 20 4e 4f 54 45 3a 20 54 68 65 20 63 6f 75 6e 74 65 72 20 68 61 73 | .value...*.NOTE:.The.counter.has |
| 1d80 | 20 61 20 76 65 72 79 20 6c 69 6d 69 74 65 64 20 74 69 6d 65 20 73 70 61 6e 2e 20 57 69 74 68 20 | .a.very.limited.time.span..With. |
| 1da0 | 61 20 0a 20 2a 20 34 35 30 4d 68 5a 20 63 6c 6f 63 6b 20 74 68 65 20 63 6f 75 6e 74 65 72 20 63 | a...*.450MhZ.clock.the.counter.c |
| 1dc0 | 61 6e 20 74 69 6d 65 20 74 68 69 6e 67 73 20 66 6f 72 20 61 62 6f 75 74 20 39 20 0a 20 2a 20 73 | an.time.things.for.about.9...*.s |
| 1de0 | 65 63 6f 6e 64 73 2e 20 2a 2f 0a 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 | econds..*/.static.unsigned.int.c |
| 1e00 | 6f 75 6e 74 65 72 52 6f 75 74 69 6e 65 5b 5d 20 3d 0a 7b 0a 20 20 20 20 30 78 36 30 31 66 63 30 | ounterRoutine[].=.{.....0x601fc0 |
| 1e20 | 30 30 75 2c 0a 20 20 20 20 30 78 34 30 31 66 30 30 30 30 75 2c 0a 20 20 20 20 30 78 36 62 66 61 | 00u,.....0x401f0000u,.....0x6bfa |
| 1e40 | 38 30 30 31 75 0a 7d 3b 0a 0a 2f 2a 20 43 61 73 74 20 74 68 65 20 61 62 6f 76 65 20 69 6e 73 74 | 8001u.};../*.Cast.the.above.inst |
| 1e60 | 72 75 63 74 69 6f 6e 73 20 69 6e 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 2e 20 2a 2f 0a 73 74 61 | ructions.into.a.function..*/.sta |
| 1e80 | 74 69 63 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 28 2a 63 6f 75 6e 74 65 72 29 28 76 6f 69 64 | tic.unsigned.int.(*counter)(void |
| 1ea0 | 29 3d 20 28 76 6f 69 64 20 2a 29 63 6f 75 6e 74 65 72 52 6f 75 74 69 6e 65 3b 0a 0a 0a 76 6f 69 | )=.(void.*)counterRoutine;...voi |
| 1ec0 | 64 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 0a 7b 0a 20 20 20 20 2f 2a 20 47 65 74 20 63 | d.start_counter().{...../*.Get.c |
| 1ee0 | 79 63 6c 65 20 63 6f 75 6e 74 65 72 20 2a 2f 0a 20 20 20 20 63 79 63 5f 68 69 20 3d 20 30 3b 0a | ycle.counter.*/.....cyc_hi.=.0;. |
| 1f00 | 20 20 20 20 63 79 63 5f 6c 6f 20 3d 20 63 6f 75 6e 74 65 72 28 29 3b 0a 7d 0a 0a 64 6f 75 62 6c | ....cyc_lo.=.counter();.}..doubl |
| 1f20 | 65 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 0a 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6e | e.get_counter().{.....unsigned.n |
| 1f40 | 63 79 63 5f 68 69 2c 20 6e 63 79 63 5f 6c 6f 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 68 69 | cyc_hi,.ncyc_lo;.....unsigned.hi |
| 1f60 | 2c 20 6c 6f 2c 20 62 6f 72 72 6f 77 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 72 65 73 75 6c 74 3b | ,.lo,.borrow;.....double.result; |
| 1f80 | 0a 20 20 20 20 6e 63 79 63 5f 6c 6f 20 3d 20 63 6f 75 6e 74 65 72 28 29 3b 0a 20 20 20 20 6e 63 | .....ncyc_lo.=.counter();.....nc |
| 1fa0 | 79 63 5f 68 69 20 3d 20 30 3b 0a 20 20 20 20 6c 6f 20 3d 20 6e 63 79 63 5f 6c 6f 20 2d 20 63 79 | yc_hi.=.0;.....lo.=.ncyc_lo.-.cy |
| 1fc0 | 63 5f 6c 6f 3b 0a 20 20 20 20 62 6f 72 72 6f 77 20 3d 20 6c 6f 20 3e 20 6e 63 79 63 5f 6c 6f 3b | c_lo;.....borrow.=.lo.>.ncyc_lo; |
| 1fe0 | 0a 20 20 20 20 68 69 20 3d 20 6e 63 79 63 5f 68 69 20 2d 20 63 79 63 5f 68 69 20 2d 20 62 6f 72 | .....hi.=.ncyc_hi.-.cyc_hi.-.bor |
| 2000 | 72 6f 77 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 28 64 6f 75 62 6c 65 29 20 68 69 20 2a 20 | row;.....result.=.(double).hi.*. |
| 2020 | 28 31 20 3c 3c 20 33 30 29 20 2a 20 34 20 2b 20 6c 6f 3b 0a 20 20 20 20 69 66 20 28 72 65 73 75 | (1.<<.30).*.4.+.lo;.....if.(resu |
| 2040 | 6c 74 20 3c 20 30 29 20 7b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 45 72 72 6f | lt.<.0).{..fprintf(stderr,."Erro |
| 2060 | 72 3a 20 43 79 63 6c 65 20 63 6f 75 6e 74 65 72 20 72 65 74 75 72 6e 69 6e 67 20 6e 65 67 61 74 | r:.Cycle.counter.returning.negat |
| 2080 | 69 76 65 20 76 61 6c 75 65 3a 20 25 2e 30 66 5c 6e 22 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 | ive.value:.%.0f\n",.result);.... |
| 20a0 | 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 23 65 6c 73 65 0a 0a | .}.....return.result;.}..#else.. |
| 20c0 | 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | /******************************* |
| 20e0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 2100 | 2a 0a 20 2a 20 41 6c 6c 20 74 68 65 20 6f 74 68 65 72 20 70 6c 61 74 66 6f 72 6d 73 20 66 6f 72 | *..*.All.the.other.platforms.for |
| 2120 | 20 77 68 69 63 68 20 77 65 20 68 61 76 65 6e 27 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 63 79 | .which.we.haven't.implemented.cy |
| 2140 | 63 6c 65 0a 20 2a 20 63 6f 75 6e 74 65 72 20 72 6f 75 74 69 6e 65 73 2e 20 4e 65 77 65 72 20 6d | cle..*.counter.routines..Newer.m |
| 2160 | 6f 64 65 6c 73 20 6f 66 20 73 70 61 72 63 73 20 28 76 38 70 6c 75 73 29 20 68 61 76 65 20 63 79 | odels.of.sparcs.(v8plus).have.cy |
| 2180 | 63 6c 65 0a 20 2a 20 63 6f 75 6e 74 65 72 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 61 63 63 65 | cle..*.counters.that.can.be.acce |
| 21a0 | 73 73 65 64 20 66 72 6f 6d 20 75 73 65 72 20 70 72 6f 67 72 61 6d 73 2c 20 62 75 74 20 73 69 6e | ssed.from.user.programs,.but.sin |
| 21c0 | 63 65 20 74 68 65 72 65 0a 20 2a 20 61 72 65 20 73 74 69 6c 6c 20 6d 61 6e 79 20 73 70 61 72 63 | ce.there..*.are.still.many.sparc |
| 21e0 | 20 62 6f 78 65 73 20 6f 75 74 20 74 68 65 72 65 20 74 68 61 74 20 64 6f 6e 27 74 20 73 75 70 70 | .boxes.out.there.that.don't.supp |
| 2200 | 6f 72 74 20 74 68 69 73 2c 20 77 65 0a 20 2a 20 68 61 76 65 6e 27 74 20 70 72 6f 76 69 64 65 64 | ort.this,.we..*.haven't.provided |
| 2220 | 20 61 20 53 70 61 72 63 20 76 65 72 73 69 6f 6e 20 68 65 72 65 2e 0a 20 2a 2a 2a 2a 2a 2a 2a 2a | .a.Sparc.version.here...******** |
| 2240 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 2260 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 76 6f 69 64 20 73 | ***********************/..void.s |
| 2280 | 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 0a 7b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 45 52 52 | tart_counter().{.....printf("ERR |
| 22a0 | 4f 52 3a 20 59 6f 75 20 61 72 65 20 74 72 79 69 6e 67 20 74 6f 20 75 73 65 20 61 20 73 74 61 72 | OR:.You.are.trying.to.use.a.star |
| 22c0 | 74 5f 63 6f 75 6e 74 65 72 20 72 6f 75 74 69 6e 65 20 69 6e 20 63 6c 6f 63 6b 2e 63 5c 6e 22 29 | t_counter.routine.in.clock.c\n") |
| 22e0 | 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 74 68 61 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 | ;.....printf("that.has.not.been. |
| 2300 | 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 20 6f 6e 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d | implemented.yet.on.this.platform |
| 2320 | 2e 5c 6e 22 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 50 6c 65 61 73 65 20 63 68 6f 6f 73 65 | .\n");.....printf("Please.choose |
| 2340 | 20 61 6e 6f 74 68 65 72 20 74 69 6d 69 6e 67 20 70 61 63 6b 61 67 65 20 69 6e 20 63 6f 6e 66 69 | .another.timing.package.in.confi |
| 2360 | 67 2e 68 2e 5c 6e 22 29 3b 0a 20 20 20 20 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 64 6f 75 62 6c 65 | g.h.\n");.....exit(1);.}..double |
| 2380 | 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 20 0a 7b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 45 52 | .get_counter()..{.....printf("ER |
| 23a0 | 52 4f 52 3a 20 59 6f 75 20 61 72 65 20 74 72 79 69 6e 67 20 74 6f 20 75 73 65 20 61 20 67 65 74 | ROR:.You.are.trying.to.use.a.get |
| 23c0 | 5f 63 6f 75 6e 74 65 72 20 72 6f 75 74 69 6e 65 20 69 6e 20 63 6c 6f 63 6b 2e 63 5c 6e 22 29 3b | _counter.routine.in.clock.c\n"); |
| 23e0 | 0a 20 20 20 20 70 72 69 6e 74 66 28 22 74 68 61 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 69 | .....printf("that.has.not.been.i |
| 2400 | 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 20 6f 6e 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 2e | mplemented.yet.on.this.platform. |
| 2420 | 5c 6e 22 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 50 6c 65 61 73 65 20 63 68 6f 6f 73 65 20 | \n");.....printf("Please.choose. |
| 2440 | 61 6e 6f 74 68 65 72 20 74 69 6d 69 6e 67 20 70 61 63 6b 61 67 65 20 69 6e 20 63 6f 6e 66 69 67 | another.timing.package.in.config |
| 2460 | 2e 68 2e 5c 6e 22 29 3b 0a 20 20 20 20 65 78 69 74 28 31 29 3b 0a 7d 0a 23 65 6e 64 69 66 0a 0a | .h.\n");.....exit(1);.}.#endif.. |
| 2480 | 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .../**************************** |
| 24a0 | 2a 2a 2a 0a 20 2a 20 4d 61 63 68 69 6e 65 2d 69 6e 64 65 70 65 6e 64 65 6e 74 20 66 75 6e 63 74 | ***..*.Machine-independent.funct |
| 24c0 | 69 6f 6e 73 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ions..************************** |
| 24e0 | 2a 2a 2a 2a 2f 0a 64 6f 75 62 6c 65 20 6f 76 68 64 28 29 0a 7b 0a 20 20 20 20 2f 2a 20 44 6f 20 | ****/.double.ovhd().{...../*.Do. |
| 2500 | 69 74 20 74 77 69 63 65 20 74 6f 20 65 6c 69 6d 69 6e 61 74 65 20 63 61 63 68 65 20 65 66 66 65 | it.twice.to.eliminate.cache.effe |
| 2520 | 63 74 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 72 65 73 | cts.*/.....int.i;.....double.res |
| 2540 | 75 6c 74 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 20 3c 20 32 3b 20 69 2b 2b | ult;......for.(i.=.0;.i.<.2;.i++ |
| 2560 | 29 20 7b 0a 09 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 09 72 65 73 75 6c 74 20 3d 20 | ).{..start_counter();..result.=. |
| 2580 | 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 | get_counter();.....}.....return. |
| 25a0 | 72 65 73 75 6c 74 3b 0a 7d 0a 0a 2f 2a 20 24 62 65 67 69 6e 20 6d 68 7a 20 2a 2f 0a 2f 2a 20 45 | result;.}../*.$begin.mhz.*/./*.E |
| 25c0 | 73 74 69 6d 61 74 65 20 74 68 65 20 63 6c 6f 63 6b 20 72 61 74 65 20 62 79 20 6d 65 61 73 75 72 | stimate.the.clock.rate.by.measur |
| 25e0 | 69 6e 67 20 74 68 65 20 63 79 63 6c 65 73 20 74 68 61 74 20 65 6c 61 70 73 65 20 2a 2f 20 0a 2f | ing.the.cycles.that.elapse.*/../ |
| 2600 | 2a 20 77 68 69 6c 65 20 73 6c 65 65 70 69 6e 67 20 66 6f 72 20 73 6c 65 65 70 74 69 6d 65 20 73 | *.while.sleeping.for.sleeptime.s |
| 2620 | 65 63 6f 6e 64 73 20 2a 2f 0a 64 6f 75 62 6c 65 20 6d 68 7a 5f 66 75 6c 6c 28 69 6e 74 20 76 65 | econds.*/.double.mhz_full(int.ve |
| 2640 | 72 62 6f 73 65 2c 20 69 6e 74 20 73 6c 65 65 70 74 69 6d 65 29 0a 7b 0a 20 20 20 20 64 6f 75 62 | rbose,.int.sleeptime).{.....doub |
| 2660 | 6c 65 20 72 61 74 65 3b 0a 0a 20 20 20 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 20 | le.rate;......start_counter();.. |
| 2680 | 20 20 20 73 6c 65 65 70 28 73 6c 65 65 70 74 69 6d 65 29 3b 0a 20 20 20 20 72 61 74 65 20 3d 20 | ...sleep(sleeptime);.....rate.=. |
| 26a0 | 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 20 2f 20 28 31 65 36 2a 73 6c 65 65 70 74 69 6d 65 29 3b | get_counter()./.(1e6*sleeptime); |
| 26c0 | 0a 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 29 20 0a 09 70 72 69 6e 74 66 28 22 50 72 6f 63 | .....if.(verbose)...printf("Proc |
| 26e0 | 65 73 73 6f 72 20 63 6c 6f 63 6b 20 72 61 74 65 20 7e 3d 20 25 2e 31 66 20 4d 48 7a 5c 6e 22 2c | essor.clock.rate.~=.%.1f.MHz\n", |
| 2700 | 20 72 61 74 65 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 61 74 65 3b 0a 7d 0a 2f 2a 20 24 65 | .rate);.....return.rate;.}./*.$e |
| 2720 | 6e 64 20 6d 68 7a 20 2a 2f 0a 0a 2f 2a 20 56 65 72 73 69 6f 6e 20 75 73 69 6e 67 20 61 20 64 65 | nd.mhz.*/../*.Version.using.a.de |
| 2740 | 66 61 75 6c 74 20 73 6c 65 65 70 74 69 6d 65 20 2a 2f 0a 64 6f 75 62 6c 65 20 6d 68 7a 28 69 6e | fault.sleeptime.*/.double.mhz(in |
| 2760 | 74 20 76 65 72 62 6f 73 65 29 0a 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 6d 68 7a 5f 66 75 6c 6c | t.verbose).{.....return.mhz_full |
| 2780 | 28 76 65 72 62 6f 73 65 2c 20 32 29 3b 0a 7d 0a 0a 2f 2a 2a 20 53 70 65 63 69 61 6c 20 63 6f 75 | (verbose,.2);.}../**.Special.cou |
| 27a0 | 6e 74 65 72 73 20 74 68 61 74 20 63 6f 6d 70 65 6e 73 61 74 65 20 66 6f 72 20 74 69 6d 65 72 20 | nters.that.compensate.for.timer. |
| 27c0 | 69 6e 74 65 72 72 75 70 74 20 6f 76 65 72 68 65 61 64 20 2a 2f 0a 0a 73 74 61 74 69 63 20 64 6f | interrupt.overhead.*/..static.do |
| 27e0 | 75 62 6c 65 20 63 79 63 5f 70 65 72 5f 74 69 63 6b 20 3d 20 30 2e 30 3b 0a 0a 23 64 65 66 69 6e | uble.cyc_per_tick.=.0.0;..#defin |
| 2800 | 65 20 4e 45 56 45 4e 54 20 31 30 30 0a 23 64 65 66 69 6e 65 20 54 48 52 45 53 48 4f 4c 44 20 31 | e.NEVENT.100.#define.THRESHOLD.1 |
| 2820 | 30 30 30 0a 23 64 65 66 69 6e 65 20 52 45 43 4f 52 44 54 48 52 45 53 48 20 33 30 30 30 0a 0a 2f | 000.#define.RECORDTHRESH.3000../ |
| 2840 | 2a 20 41 74 74 65 6d 70 74 20 74 6f 20 73 65 65 20 68 6f 77 20 6d 75 63 68 20 74 69 6d 65 20 69 | *.Attempt.to.see.how.much.time.i |
| 2860 | 73 20 75 73 65 64 20 62 79 20 74 69 6d 65 72 20 69 6e 74 65 72 72 75 70 74 20 2a 2f 0a 73 74 61 | s.used.by.timer.interrupt.*/.sta |
| 2880 | 74 69 63 20 76 6f 69 64 20 63 61 6c 6c 69 62 72 61 74 65 28 69 6e 74 20 76 65 72 62 6f 73 65 29 | tic.void.callibrate(int.verbose) |
| 28a0 | 0a 7b 0a 20 20 20 20 64 6f 75 62 6c 65 20 6f 6c 64 74 3b 0a 20 20 20 20 73 74 72 75 63 74 20 74 | .{.....double.oldt;.....struct.t |
| 28c0 | 6d 73 20 74 3b 0a 20 20 20 20 63 6c 6f 63 6b 5f 74 20 6f 6c 64 63 3b 0a 20 20 20 20 69 6e 74 20 | ms.t;.....clock_t.oldc;.....int. |
| 28e0 | 65 20 3d 20 30 3b 0a 0a 20 20 20 20 74 69 6d 65 73 28 26 74 29 3b 0a 20 20 20 20 6f 6c 64 63 20 | e.=.0;......times(&t);.....oldc. |
| 2900 | 3d 20 74 2e 74 6d 73 5f 75 74 69 6d 65 3b 0a 20 20 20 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 | =.t.tms_utime;.....start_counter |
| 2920 | 28 29 3b 0a 20 20 20 20 6f 6c 64 74 20 3d 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 20 20 | ();.....oldt.=.get_counter();... |
| 2940 | 20 20 77 68 69 6c 65 20 28 65 20 3c 4e 45 56 45 4e 54 29 20 7b 0a 09 64 6f 75 62 6c 65 20 6e 65 | ..while.(e.<NEVENT).{..double.ne |
| 2960 | 77 74 20 3d 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 0a 09 69 66 20 28 6e 65 77 74 2d 6f | wt.=.get_counter();...if.(newt-o |
| 2980 | 6c 64 74 20 3e 3d 20 54 48 52 45 53 48 4f 4c 44 29 20 7b 0a 09 20 20 20 20 63 6c 6f 63 6b 5f 74 | ldt.>=.THRESHOLD).{......clock_t |
| 29a0 | 20 6e 65 77 63 3b 0a 09 20 20 20 20 74 69 6d 65 73 28 26 74 29 3b 0a 09 20 20 20 20 6e 65 77 63 | .newc;......times(&t);......newc |
| 29c0 | 20 3d 20 74 2e 74 6d 73 5f 75 74 69 6d 65 3b 0a 09 20 20 20 20 69 66 20 28 6e 65 77 63 20 3e 20 | .=.t.tms_utime;......if.(newc.>. |
| 29e0 | 6f 6c 64 63 29 20 7b 0a 09 09 64 6f 75 62 6c 65 20 63 70 74 20 3d 20 28 6e 65 77 74 2d 6f 6c 64 | oldc).{...double.cpt.=.(newt-old |
| 2a00 | 74 29 2f 28 6e 65 77 63 2d 6f 6c 64 63 29 3b 0a 09 09 69 66 20 28 28 63 79 63 5f 70 65 72 5f 74 | t)/(newc-oldc);...if.((cyc_per_t |
| 2a20 | 69 63 6b 20 3d 3d 20 30 2e 30 20 7c 7c 20 63 79 63 5f 70 65 72 5f 74 69 63 6b 20 3e 20 63 70 74 | ick.==.0.0.||.cyc_per_tick.>.cpt |
| 2a40 | 29 20 26 26 20 63 70 74 20 3e 20 52 45 43 4f 52 44 54 48 52 45 53 48 29 0a 09 09 20 20 20 20 63 | ).&&.cpt.>.RECORDTHRESH).......c |
| 2a60 | 79 63 5f 70 65 72 5f 74 69 63 6b 20 3d 20 63 70 74 3b 0a 09 09 2f 2a 0a 09 09 20 20 69 66 20 28 | yc_per_tick.=.cpt;.../*.....if.( |
| 2a80 | 76 65 72 62 6f 73 65 29 0a 09 09 20 20 70 72 69 6e 74 66 28 22 53 61 77 20 65 76 65 6e 74 20 6c | verbose).....printf("Saw.event.l |
| 2aa0 | 61 73 74 69 6e 67 20 25 2e 30 66 20 63 79 63 6c 65 73 20 61 6e 64 20 25 64 20 74 69 63 6b 73 2e | asting.%.0f.cycles.and.%d.ticks. |
| 2ac0 | 20 20 52 61 74 69 6f 20 3d 20 25 66 5c 6e 22 2c 0a 09 09 20 20 6e 65 77 74 2d 6f 6c 64 74 2c 20 | ..Ratio.=.%f\n",.....newt-oldt,. |
| 2ae0 | 28 69 6e 74 29 20 28 6e 65 77 63 2d 6f 6c 64 63 29 2c 20 63 70 74 29 3b 0a 09 09 2a 2f 0a 09 09 | (int).(newc-oldc),.cpt);...*/... |
| 2b00 | 65 2b 2b 3b 0a 09 09 6f 6c 64 63 20 3d 20 6e 65 77 63 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 | e++;...oldc.=.newc;......}...... |
| 2b20 | 6f 6c 64 74 20 3d 20 6e 65 77 74 3b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 76 65 | oldt.=.newt;..}.....}.....if.(ve |
| 2b40 | 72 62 6f 73 65 29 0a 09 70 72 69 6e 74 66 28 22 53 65 74 74 69 6e 67 20 63 79 63 5f 70 65 72 5f | rbose)..printf("Setting.cyc_per_ |
| 2b60 | 74 69 63 6b 20 74 6f 20 25 66 5c 6e 22 2c 20 63 79 63 5f 70 65 72 5f 74 69 63 6b 29 3b 0a 7d 0a | tick.to.%f\n",.cyc_per_tick);.}. |
| 2b80 | 0a 73 74 61 74 69 63 20 63 6c 6f 63 6b 5f 74 20 73 74 61 72 74 5f 74 69 63 6b 20 3d 20 30 3b 0a | .static.clock_t.start_tick.=.0;. |
| 2ba0 | 0a 76 6f 69 64 20 73 74 61 72 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 20 0a 7b 0a 20 20 | .void.start_comp_counter()..{... |
| 2bc0 | 20 20 73 74 72 75 63 74 20 74 6d 73 20 74 3b 0a 0a 20 20 20 20 69 66 20 28 63 79 63 5f 70 65 72 | ..struct.tms.t;......if.(cyc_per |
| 2be0 | 5f 74 69 63 6b 20 3d 3d 20 30 2e 30 29 0a 09 63 61 6c 6c 69 62 72 61 74 65 28 30 29 3b 0a 20 20 | _tick.==.0.0)..callibrate(0);... |
| 2c00 | 20 20 74 69 6d 65 73 28 26 74 29 3b 0a 20 20 20 20 73 74 61 72 74 5f 74 69 63 6b 20 3d 20 74 2e | ..times(&t);.....start_tick.=.t. |
| 2c20 | 74 6d 73 5f 75 74 69 6d 65 3b 0a 20 20 20 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a | tms_utime;.....start_counter();. |
| 2c40 | 7d 0a 0a 64 6f 75 62 6c 65 20 67 65 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 20 0a 7b 0a | }..double.get_comp_counter()..{. |
| 2c60 | 20 20 20 20 64 6f 75 62 6c 65 20 74 69 6d 65 20 3d 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b | ....double.time.=.get_counter(); |
| 2c80 | 0a 20 20 20 20 64 6f 75 62 6c 65 20 63 74 69 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 74 6d | .....double.ctime;.....struct.tm |
| 2ca0 | 73 20 74 3b 0a 20 20 20 20 63 6c 6f 63 6b 5f 74 20 74 69 63 6b 73 3b 0a 0a 20 20 20 20 74 69 6d | s.t;.....clock_t.ticks;......tim |
| 2cc0 | 65 73 28 26 74 29 3b 0a 20 20 20 20 74 69 63 6b 73 20 3d 20 74 2e 74 6d 73 5f 75 74 69 6d 65 20 | es(&t);.....ticks.=.t.tms_utime. |
| 2ce0 | 2d 20 73 74 61 72 74 5f 74 69 63 6b 3b 0a 20 20 20 20 63 74 69 6d 65 20 3d 20 74 69 6d 65 20 2d | -.start_tick;.....ctime.=.time.- |
| 2d00 | 20 74 69 63 6b 73 2a 63 79 63 5f 70 65 72 5f 74 69 63 6b 3b 0a 20 20 20 20 2f 2a 0a 20 20 20 20 | .ticks*cyc_per_tick;...../*..... |
| 2d20 | 20 20 70 72 69 6e 74 66 28 22 4d 65 61 73 75 72 65 64 20 25 2e 30 66 20 63 79 63 6c 65 73 2e 20 | ..printf("Measured.%.0f.cycles.. |
| 2d40 | 20 54 69 63 6b 73 20 3d 20 25 64 2e 20 20 43 6f 72 72 65 63 74 65 64 20 25 2e 30 66 20 63 79 63 | .Ticks.=.%d...Corrected.%.0f.cyc |
| 2d60 | 6c 65 73 5c 6e 22 2c 0a 20 20 20 20 20 20 74 69 6d 65 2c 20 28 69 6e 74 29 20 74 69 63 6b 73 2c | les\n",.......time,.(int).ticks, |
| 2d80 | 20 63 74 69 6d 65 29 3b 0a 20 20 20 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 63 74 69 6d 65 | .ctime);.....*/.....return.ctime |
| 2da0 | 3b 0a 7d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ;.}............................. |
| 2dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 63 6c 6f 63 6b 2e 68 00 00 00 00 00 00 00 | malloclab-handout/clock.h....... |
| 2e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 2e80 | 30 30 30 31 30 33 36 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 35 36 36 00 20 30 00 00 00 | 0001036.12507032412.014566..0... |
| 2ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2f00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 2f20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 2f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3000 | 2f 2a 20 52 6f 75 74 69 6e 65 73 20 66 6f 72 20 75 73 69 6e 67 20 63 79 63 6c 65 20 63 6f 75 6e | /*.Routines.for.using.cycle.coun |
| 3020 | 74 65 72 20 2a 2f 0a 0a 2f 2a 20 53 74 61 72 74 20 74 68 65 20 63 6f 75 6e 74 65 72 20 2a 2f 0a | ter.*/../*.Start.the.counter.*/. |
| 3040 | 76 6f 69 64 20 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 0a 2f 2a 20 47 65 74 20 23 20 | void.start_counter();../*.Get.#. |
| 3060 | 63 79 63 6c 65 73 20 73 69 6e 63 65 20 63 6f 75 6e 74 65 72 20 73 74 61 72 74 65 64 20 2a 2f 0a | cycles.since.counter.started.*/. |
| 3080 | 64 6f 75 62 6c 65 20 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 0a 2f 2a 20 4d 65 61 73 75 72 | double.get_counter();../*.Measur |
| 30a0 | 65 20 6f 76 65 72 68 65 61 64 20 66 6f 72 20 63 6f 75 6e 74 65 72 20 2a 2f 0a 64 6f 75 62 6c 65 | e.overhead.for.counter.*/.double |
| 30c0 | 20 6f 76 68 64 28 29 3b 0a 0a 2f 2a 20 44 65 74 65 72 6d 69 6e 65 20 63 6c 6f 63 6b 20 72 61 74 | .ovhd();../*.Determine.clock.rat |
| 30e0 | 65 20 6f 66 20 70 72 6f 63 65 73 73 6f 72 20 28 75 73 69 6e 67 20 61 20 64 65 66 61 75 6c 74 20 | e.of.processor.(using.a.default. |
| 3100 | 73 6c 65 65 70 74 69 6d 65 29 20 2a 2f 0a 64 6f 75 62 6c 65 20 6d 68 7a 28 69 6e 74 20 76 65 72 | sleeptime).*/.double.mhz(int.ver |
| 3120 | 62 6f 73 65 29 3b 0a 0a 2f 2a 20 44 65 74 65 72 6d 69 6e 65 20 63 6c 6f 63 6b 20 72 61 74 65 20 | bose);../*.Determine.clock.rate. |
| 3140 | 6f 66 20 70 72 6f 63 65 73 73 6f 72 2c 20 68 61 76 69 6e 67 20 6d 6f 72 65 20 63 6f 6e 74 72 6f | of.processor,.having.more.contro |
| 3160 | 6c 20 6f 76 65 72 20 61 63 63 75 72 61 63 79 20 2a 2f 0a 64 6f 75 62 6c 65 20 6d 68 7a 5f 66 75 | l.over.accuracy.*/.double.mhz_fu |
| 3180 | 6c 6c 28 69 6e 74 20 76 65 72 62 6f 73 65 2c 20 69 6e 74 20 73 6c 65 65 70 74 69 6d 65 29 3b 0a | ll(int.verbose,.int.sleeptime);. |
| 31a0 | 0a 2f 2a 2a 20 53 70 65 63 69 61 6c 20 63 6f 75 6e 74 65 72 73 20 74 68 61 74 20 63 6f 6d 70 65 | ./**.Special.counters.that.compe |
| 31c0 | 6e 73 61 74 65 20 66 6f 72 20 74 69 6d 65 72 20 69 6e 74 65 72 72 75 70 74 20 6f 76 65 72 68 65 | nsate.for.timer.interrupt.overhe |
| 31e0 | 61 64 20 2a 2f 0a 0a 76 6f 69 64 20 73 74 61 72 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 | ad.*/..void.start_comp_counter() |
| 3200 | 3b 0a 0a 64 6f 75 62 6c 65 20 67 65 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 00 00 | ;..double.get_comp_counter();... |
| 3220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 32a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 32c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 32e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 33a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 33c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 33e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3400 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 63 6c 6f 63 6b 2e 6f 00 00 00 00 00 00 00 | malloclab-handout/clock.o....... |
| 3420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3460 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 3480 | 30 30 30 35 36 37 30 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 36 30 35 00 20 30 00 00 00 | 0005670.12507032412.014605..0... |
| 34a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 34c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 34e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3500 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 3520 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 3540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 35a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 35c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 35e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3600 | 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 | .ELF............................ |
| 3620 | 8c 05 00 00 00 00 00 00 34 00 00 00 00 00 28 00 0e 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........4.....(................. |
| 3640 | 53 0f 31 89 d3 89 c1 8b 44 24 08 89 18 8b 44 24 0c 89 08 5b c3 8d 74 26 00 8d bc 27 00 00 00 00 | S.1.....D$....D$...[..t&...'.... |
| 3660 | 53 0f 31 89 d3 89 c1 89 1d 14 00 00 00 89 0d 10 00 00 00 5b c3 8d 74 26 00 8d bc 27 00 00 00 00 | S.1................[..t&...'.... |
| 3680 | 53 83 ec 38 0f 31 89 d1 89 c3 31 d2 89 d8 2b 0d 14 00 00 00 2b 05 10 00 00 00 0f 92 c2 31 db 29 | S..8.1....1...+.....+........1.) |
| 36a0 | d1 31 d2 89 4c 24 28 89 5c 24 2c df 6c 24 28 d8 0d 00 00 00 00 89 44 24 28 89 54 24 2c d8 0d 04 | .1..L$(.\$,.l$(.......D$(.T$,... |
| 36c0 | 00 00 00 df 6c 24 28 de c1 d9 ee df e9 77 09 83 c4 38 5b c3 8d 74 26 00 a1 00 00 00 00 dd 54 24 | ....l$(......w...8[..t&.......T$ |
| 36e0 | 0c c7 44 24 08 00 00 00 00 dd 5c 24 20 c7 44 24 04 01 00 00 00 89 04 24 e8 fc ff ff ff dd 44 24 | ..D$......\$..D$.......$......D$ |
| 3700 | 20 83 c4 38 5b c3 8d 76 00 8d bc 27 00 00 00 00 56 53 83 ec 04 0f 31 89 d6 89 c3 89 35 14 00 00 | ...8[..v...'....VS....1.....5... |
| 3720 | 00 89 1d 10 00 00 00 e8 fc ff ff ff dd d8 89 35 14 00 00 00 89 1d 10 00 00 00 83 c4 04 5b 5e e9 | ...............5.............[^. |
| 3740 | fc ff ff ff 8d b6 00 00 00 00 8d bf 00 00 00 00 56 53 83 ec 24 8b 5c 24 34 0f 31 89 d6 89 c1 89 | ................VS..$.\$4.1..... |
| 3760 | 0d 10 00 00 00 89 35 14 00 00 00 89 1c 24 e8 fc ff ff ff e8 fc ff ff ff 8b 44 24 30 89 5c 24 1c | ......5......$...........D$0.\$. |
| 3780 | 85 c0 db 44 24 1c d8 0d 08 00 00 00 de f9 74 20 dd 54 24 08 c7 44 24 04 28 00 00 00 dd 5c 24 10 | ...D$.........t..T$..D$.(....\$. |
| 37a0 | c7 04 24 01 00 00 00 e8 fc ff ff ff dd 44 24 10 83 c4 24 5b 5e c3 8d 76 00 8d bc 27 00 00 00 00 | ..$..........D$...$[^..v...'.... |
| 37c0 | 83 ec 1c 8b 44 24 20 c7 44 24 04 02 00 00 00 89 04 24 e8 fc ff ff ff 83 c4 1c c3 90 8d 74 26 00 | ....D$..D$.......$...........t&. |
| 37e0 | 57 56 53 83 ec 30 d9 ee dd 05 08 00 00 00 8d 74 24 20 df e9 dd d8 7a 08 eb 36 dd d8 8d 74 26 00 | WVS..0.........t$.....z..6...t&. |
| 3800 | 89 34 24 e8 fc ff ff ff 8b 44 24 20 a3 00 00 00 00 0f 31 89 d3 89 c1 89 1d 14 00 00 00 89 0d 10 | .4$......D$.......1............. |
| 3820 | 00 00 00 83 c4 30 5b 5e 5f c3 8d b6 00 00 00 00 75 ce 89 34 24 e8 fc ff ff ff 8b 7c 24 20 0f 31 | .....0[^_.......u..4$......|$..1 |
| 3840 | 89 d3 89 c1 89 1d 14 00 00 00 31 db 89 0d 10 00 00 00 e8 fc ff ff ff dd 5c 24 08 eb 0c 8d 76 00 | ..........1.............\$....v. |
| 3860 | dd d8 dd d8 83 fb 63 7f 97 e8 fc ff ff ff dd 44 24 08 d8 e9 d9 05 0c 00 00 00 d9 c9 db e9 dd d9 | ......c........D$............... |
| 3880 | 72 de dd 5c 24 10 89 34 24 dd 5c 24 08 e8 fc ff ff ff 8b 44 24 20 39 f8 dd 44 24 08 dd 44 24 10 | r..\$..4$.\$.......D$.9..D$..D$. |
| 38a0 | 7e 46 89 c2 29 fa 89 54 24 1c db 44 24 1c de f9 dd 05 08 00 00 00 d9 ee d9 c9 db e9 dd d9 7a 40 | ~F..)..T$..D$.................z@ |
| 38c0 | 75 3e dd d8 d9 05 10 00 00 00 d9 c9 db e9 dd d9 76 08 dd 1d 08 00 00 00 eb 06 dd d8 eb 02 dd d8 | u>..............v............... |
| 38e0 | 83 c3 01 89 c7 eb 03 90 dd d8 83 fb 63 0f 8f 07 ff ff ff dd 5c 24 08 e9 6d ff ff ff 8d 74 26 00 | ............c.......\$..m....t&. |
| 3900 | df e9 76 da eb be 8d 76 00 8d bc 27 00 00 00 00 83 ec 3c e8 fc ff ff ff 8d 44 24 20 89 04 24 dd | ..v....v...'......<......D$...$. |
| 3920 | 5c 24 10 e8 fc ff ff ff 8b 44 24 20 2b 05 00 00 00 00 89 44 24 1c db 44 24 1c dc 0d 08 00 00 00 | \$.......D$.+......D$..D$....... |
| 3940 | dd 44 24 10 83 c4 3c de e1 c3 00 00 00 00 00 00 45 72 72 6f 72 3a 20 63 6f 75 6e 74 65 72 20 72 | .D$...<.........Error:.counter.r |
| 3960 | 65 74 75 72 6e 73 20 6e 65 67 20 76 61 6c 75 65 3a 20 25 2e 30 66 0a 00 50 72 6f 63 65 73 73 6f | eturns.neg.value:.%.0f..Processo |
| 3980 | 72 20 63 6c 6f 63 6b 20 72 61 74 65 20 7e 3d 20 25 2e 31 66 20 4d 48 7a 0a 00 00 00 00 00 80 4e | r.clock.rate.~=.%.1f.MHz.......N |
| 39a0 | 00 00 80 40 00 24 74 49 00 00 7a 44 00 80 3b 45 00 47 43 43 3a 20 28 55 62 75 6e 74 75 20 34 2e | ...@.$tI..zD..;E.GCC:.(Ubuntu.4. |
| 39c0 | 38 2e 31 2d 32 75 62 75 6e 74 75 31 7e 31 32 2e 30 34 29 20 34 2e 38 2e 31 00 00 00 14 00 00 00 | 8.1-2ubuntu1~12.04).4.8.1....... |
| 39e0 | 00 00 00 00 01 7a 52 00 01 7c 08 01 1b 0c 04 04 88 01 00 00 18 00 00 00 1c 00 00 00 00 00 00 00 | .....zR..|...................... |
| 3a00 | 15 00 00 00 00 41 0e 08 83 02 53 c3 0e 04 00 00 18 00 00 00 38 00 00 00 20 00 00 00 15 00 00 00 | .....A....S.........8........... |
| 3a20 | 00 41 0e 08 83 02 53 c3 0e 04 00 00 28 00 00 00 54 00 00 00 40 00 00 00 86 00 00 00 00 41 0e 08 | .A....S.....(...T...@........A.. |
| 3a40 | 83 02 43 0e 40 02 4e 0a 0e 08 41 c3 0e 04 45 0b 6c 0e 08 41 c3 0e 04 00 28 00 00 00 80 00 00 00 | ..C.@.N...A...E.l..A....(....... |
| 3a60 | d0 00 00 00 34 00 00 00 00 41 0e 08 86 02 41 0e 0c 83 03 43 0e 10 68 0e 0c 41 c3 0e 08 41 c6 0e | ....4....A....A....C..h..A...A.. |
| 3a80 | 04 00 00 00 28 00 00 00 ac 00 00 00 10 01 00 00 66 00 00 00 00 41 0e 08 86 02 41 0e 0c 83 03 43 | ....(...........f....A....A....C |
| 3aa0 | 0e 30 02 5e 0e 0c 41 c3 0e 08 41 c6 0e 04 00 00 14 00 00 00 d8 00 00 00 80 01 00 00 1b 00 00 00 | .0.^..A...A..................... |
| 3ac0 | 00 43 0e 20 57 0e 04 00 34 00 00 00 f0 00 00 00 a0 01 00 00 26 01 00 00 00 41 0e 08 87 02 41 0e | .C..W...4...........&....A....A. |
| 3ae0 | 0c 86 03 41 0e 10 83 04 43 0e 40 02 40 0a 0e 10 41 c3 0e 0c 41 c6 0e 08 41 c7 0e 04 47 0b 00 00 | ...A....C.@.@...A...A...A...G... |
| 3b00 | 14 00 00 00 28 01 00 00 d0 02 00 00 3a 00 00 00 00 43 0e 40 74 0e 04 00 00 2e 73 79 6d 74 61 62 | ....(.......:....C.@t.....symtab |
| 3b20 | 00 2e 73 74 72 74 61 62 00 2e 73 68 73 74 72 74 61 62 00 2e 72 65 6c 2e 74 65 78 74 00 2e 64 61 | ..strtab..shstrtab..rel.text..da |
| 3b40 | 74 61 00 2e 62 73 73 00 2e 72 6f 64 61 74 61 2e 73 74 72 31 2e 34 00 2e 72 6f 64 61 74 61 2e 63 | ta..bss..rodata.str1.4..rodata.c |
| 3b60 | 73 74 34 00 2e 63 6f 6d 6d 65 6e 74 00 2e 6e 6f 74 65 2e 47 4e 55 2d 73 74 61 63 6b 00 2e 72 65 | st4..comment..note.GNU-stack..re |
| 3b80 | 6c 2e 65 68 5f 66 72 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l.eh_frame...................... |
| 3ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00 00 06 00 00 00 | ................................ |
| 3bc0 | 00 00 00 00 40 00 00 00 0a 03 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 1b 00 00 00 | ....@........................... |
| 3be0 | 09 00 00 00 00 00 00 00 00 00 00 00 28 0a 00 00 50 01 00 00 0c 00 00 00 01 00 00 00 04 00 00 00 | ............(...P............... |
| 3c00 | 08 00 00 00 25 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 4c 03 00 00 00 00 00 00 00 00 00 00 | ....%...............L........... |
| 3c20 | 00 00 00 00 04 00 00 00 00 00 00 00 2b 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 50 03 00 00 | ............+...............P... |
| 3c40 | 18 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 30 00 00 00 01 00 00 00 32 00 00 00 | ....................0.......2... |
| 3c60 | 00 00 00 00 50 03 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 3f 00 00 00 | ....P...J...................?... |
| 3c80 | 01 00 00 00 12 00 00 00 00 00 00 00 9c 03 00 00 14 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 | ................................ |
| 3ca0 | 04 00 00 00 4c 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 b0 03 00 00 2a 00 00 00 00 00 00 00 | ....L.......0...........*....... |
| 3cc0 | 00 00 00 00 01 00 00 00 01 00 00 00 55 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 da 03 00 00 | ............U................... |
| 3ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 69 00 00 00 01 00 00 00 02 00 00 00 | ....................i........... |
| 3d00 | 00 00 00 00 dc 03 00 00 3c 01 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 65 00 00 00 | ........<...................e... |
| 3d20 | 09 00 00 00 00 00 00 00 00 00 00 00 78 0b 00 00 40 00 00 00 0c 00 00 00 09 00 00 00 04 00 00 00 | ............x...@............... |
| 3d40 | 08 00 00 00 11 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 18 05 00 00 73 00 00 00 00 00 00 00 | ........................s....... |
| 3d60 | 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 bc 07 00 00 | ................................ |
| 3d80 | b0 01 00 00 0d 00 00 00 0e 00 00 00 04 00 00 00 10 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 | ................................ |
| 3da0 | 00 00 00 00 6c 09 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 | ....l........................... |
| 3dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 f1 ff 00 00 00 00 | ................................ |
| 3de0 | 00 00 00 00 00 00 00 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 03 00 00 00 00 00 | ................................ |
| 3e00 | 00 00 00 00 00 00 00 00 03 00 04 00 09 00 00 00 14 00 00 00 04 00 00 00 01 00 04 00 10 00 00 00 | ................................ |
| 3e20 | 10 00 00 00 04 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00 17 00 00 00 | ................................ |
| 3e40 | 08 00 00 00 08 00 00 00 01 00 04 00 24 00 00 00 00 00 00 00 04 00 00 00 01 00 04 00 00 00 00 00 | ............$................... |
| 3e60 | 00 00 00 00 00 00 00 00 03 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 08 00 00 00 00 00 | ................................ |
| 3e80 | 00 00 00 00 00 00 00 00 03 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 07 00 2f 00 00 00 | ............................/... |
| 3ea0 | 00 00 00 00 15 00 00 00 12 00 01 00 3e 00 00 00 20 00 00 00 15 00 00 00 12 00 01 00 4c 00 00 00 | ............>...............L... |
| 3ec0 | 40 00 00 00 86 00 00 00 12 00 01 00 58 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 5f 00 00 00 | @...........X..............._... |
| 3ee0 | 00 00 00 00 00 00 00 00 10 00 00 00 6d 00 00 00 d0 00 00 00 34 00 00 00 12 00 01 00 72 00 00 00 | ............m.......4.......r... |
| 3f00 | 10 01 00 00 66 00 00 00 12 00 01 00 7b 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 81 00 00 00 | ....f.......{................... |
| 3f20 | 00 00 00 00 00 00 00 00 10 00 00 00 8e 00 00 00 80 01 00 00 1b 00 00 00 12 00 01 00 92 00 00 00 | ................................ |
| 3f40 | a0 01 00 00 26 01 00 00 12 00 01 00 a5 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 ab 00 00 00 | ....&........................... |
| 3f60 | d0 02 00 00 3a 00 00 00 12 00 01 00 00 63 6c 6f 63 6b 2e 63 00 63 79 63 5f 68 69 00 63 79 63 5f | ....:........clock.c.cyc_hi.cyc_ |
| 3f80 | 6c 6f 00 63 79 63 5f 70 65 72 5f 74 69 63 6b 00 73 74 61 72 74 5f 74 69 63 6b 00 61 63 63 65 73 | lo.cyc_per_tick.start_tick.acces |
| 3fa0 | 73 5f 63 6f 75 6e 74 65 72 00 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 00 67 65 74 5f 63 6f 75 6e | s_counter.start_counter.get_coun |
| 3fc0 | 74 65 72 00 73 74 64 65 72 72 00 5f 5f 66 70 72 69 6e 74 66 5f 63 68 6b 00 6f 76 68 64 00 6d 68 | ter.stderr.__fprintf_chk.ovhd.mh |
| 3fe0 | 7a 5f 66 75 6c 6c 00 73 6c 65 65 70 00 5f 5f 70 72 69 6e 74 66 5f 63 68 6b 00 6d 68 7a 00 73 74 | z_full.sleep.__printf_chk.mhz.st |
| 4000 | 61 72 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 00 74 69 6d 65 73 00 67 65 74 5f 63 6f 6d 70 5f | art_comp_counter.times.get_comp_ |
| 4020 | 63 6f 75 6e 74 65 72 00 29 00 00 00 01 04 00 00 2f 00 00 00 01 04 00 00 50 00 00 00 01 04 00 00 | counter.)......./.......P....... |
| 4040 | 56 00 00 00 01 04 00 00 71 00 00 00 01 0a 00 00 7f 00 00 00 01 0a 00 00 99 00 00 00 01 11 00 00 | V.......q....................... |
| 4060 | a5 00 00 00 01 07 00 00 b9 00 00 00 02 12 00 00 dd 00 00 00 01 04 00 00 e3 00 00 00 01 04 00 00 | ................................ |
| 4080 | e8 00 00 00 02 10 00 00 f0 00 00 00 01 04 00 00 f6 00 00 00 01 04 00 00 21 01 00 00 01 04 00 00 | ........................!....... |
| 40a0 | 27 01 00 00 01 04 00 00 2f 01 00 00 02 15 00 00 34 01 00 00 02 10 00 00 48 01 00 00 01 0a 00 00 | '......./.......4.......H....... |
| 40c0 | 58 01 00 00 01 07 00 00 68 01 00 00 02 16 00 00 93 01 00 00 02 14 00 00 aa 01 00 00 01 04 00 00 | X.......h....................... |
| 40e0 | c4 01 00 00 02 19 00 00 cd 01 00 00 01 04 00 00 d9 01 00 00 01 04 00 00 df 01 00 00 01 04 00 00 | ................................ |
| 4100 | f6 01 00 00 02 19 00 00 06 02 00 00 01 04 00 00 0e 02 00 00 01 04 00 00 13 02 00 00 02 10 00 00 | ................................ |
| 4120 | 2a 02 00 00 02 10 00 00 36 02 00 00 01 0a 00 00 4e 02 00 00 02 19 00 00 72 02 00 00 01 04 00 00 | *.......6.......N.......r....... |
| 4140 | 86 02 00 00 01 0a 00 00 94 02 00 00 01 04 00 00 d4 02 00 00 02 10 00 00 e4 02 00 00 02 19 00 00 | ................................ |
| 4160 | ee 02 00 00 01 04 00 00 fc 02 00 00 01 04 00 00 00 01 00 00 02 10 00 00 20 00 00 00 02 02 00 00 | ................................ |
| 4180 | 3c 00 00 00 02 02 00 00 58 00 00 00 02 02 00 00 84 00 00 00 02 02 00 00 b0 00 00 00 02 02 00 00 | <.......X....................... |
| 41a0 | dc 00 00 00 02 02 00 00 f4 00 00 00 02 02 00 00 2c 01 00 00 02 02 00 00 00 00 00 00 00 00 00 00 | ................,............... |
| 41c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4200 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 63 6f 6e 66 69 67 2e 68 00 00 00 00 00 00 | malloclab-handout/config.h...... |
| 4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 4280 | 30 30 30 34 34 31 35 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 34 34 00 20 30 00 00 00 | 0004415.12507032412.014744..0... |
| 42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4300 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 4320 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4400 | 23 69 66 6e 64 65 66 20 5f 5f 43 4f 4e 46 49 47 5f 48 5f 0a 23 64 65 66 69 6e 65 20 5f 5f 43 4f | #ifndef.__CONFIG_H_.#define.__CO |
| 4420 | 4e 46 49 47 5f 48 5f 0a 0a 2f 2a 0a 20 2a 20 63 6f 6e 66 69 67 2e 68 20 2d 20 6d 61 6c 6c 6f 63 | NFIG_H_../*..*.config.h.-.malloc |
| 4440 | 20 6c 61 62 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 0a 20 2a 0a 20 2a 20 43 6f | .lab.configuration.file..*..*.Co |
| 4460 | 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 32 2c 20 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 | pyright.(c).2002,.R..Bryant.and. |
| 4480 | 44 2e 20 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 | D..O'Hallaron,.All.rights.reserv |
| 44a0 | 65 64 2e 0a 20 2a 20 4d 61 79 20 6e 6f 74 20 62 65 20 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 | ed...*.May.not.be.used,.modified |
| 44c0 | 2c 20 6f 72 20 63 6f 70 69 65 64 20 77 69 74 68 6f 75 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a | ,.or.copied.without.permission.. |
| 44e0 | 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 | .*/../*..*.This.is.the.default.p |
| 4500 | 61 74 68 20 77 68 65 72 65 20 74 68 65 20 64 72 69 76 65 72 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 | ath.where.the.driver.will.look.f |
| 4520 | 6f 72 20 74 68 65 0a 20 2a 20 64 65 66 61 75 6c 74 20 74 72 61 63 65 66 69 6c 65 73 2e 20 59 6f | or.the..*.default.tracefiles..Yo |
| 4540 | 75 20 63 61 6e 20 6f 76 65 72 72 69 64 65 20 69 74 20 61 74 20 72 75 6e 74 69 6d 65 20 77 69 74 | u.can.override.it.at.runtime.wit |
| 4560 | 68 20 74 68 65 20 2d 74 20 66 6c 61 67 2e 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20 54 52 41 43 45 | h.the.-t.flag...*/.#define.TRACE |
| 4580 | 44 49 52 20 22 2f 61 66 73 2f 63 73 2f 70 72 6f 6a 65 63 74 2f 69 63 73 32 2f 69 6d 2f 6c 61 62 | DIR."/afs/cs/project/ics2/im/lab |
| 45a0 | 73 2f 6d 61 6c 6c 6f 63 6c 61 62 2f 74 72 61 63 65 73 2f 22 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 | s/malloclab/traces/"../*..*.This |
| 45c0 | 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 64 65 66 61 75 6c 74 20 74 72 61 63 65 66 69 6c | .is.the.list.of.default.tracefil |
| 45e0 | 65 73 20 69 6e 20 54 52 41 43 45 44 49 52 20 74 68 61 74 20 74 68 65 20 64 72 69 76 65 72 0a 20 | es.in.TRACEDIR.that.the.driver.. |
| 4600 | 2a 20 77 69 6c 6c 20 75 73 65 20 66 6f 72 20 74 65 73 74 69 6e 67 2e 20 4d 6f 64 69 66 79 20 74 | *.will.use.for.testing..Modify.t |
| 4620 | 68 69 73 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 61 64 64 20 6f 72 20 64 65 6c 65 74 65 | his.if.you.want.to.add.or.delete |
| 4640 | 0a 20 2a 20 74 72 61 63 65 73 20 66 72 6f 6d 20 74 68 65 20 64 72 69 76 65 72 27 73 20 74 65 73 | ..*.traces.from.the.driver's.tes |
| 4660 | 74 20 73 75 69 74 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 6f 6e | t.suite..For.example,.if.you.don |
| 4680 | 27 74 20 77 61 6e 74 0a 20 2a 20 79 6f 75 72 20 73 74 75 64 65 6e 74 73 20 74 6f 20 69 6d 70 6c | 't.want..*.your.students.to.impl |
| 46a0 | 65 6d 65 6e 74 20 72 65 61 6c 6c 6f 63 2c 20 79 6f 75 20 63 61 6e 20 64 65 6c 65 74 65 20 74 68 | ement.realloc,.you.can.delete.th |
| 46c0 | 65 20 6c 61 73 74 20 74 77 6f 0a 20 2a 20 74 72 61 63 65 73 2e 0a 20 2a 2f 0a 23 64 65 66 69 6e | e.last.two..*.traces...*/.#defin |
| 46e0 | 65 20 44 45 46 41 55 4c 54 5f 54 52 41 43 45 46 49 4c 45 53 20 5c 0a 20 20 22 61 6d 70 74 6a 70 | e.DEFAULT_TRACEFILES.\..."amptjp |
| 4700 | 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 63 63 63 70 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 | -bal.rep",\..."cccp-bal.rep",\.. |
| 4720 | 20 22 63 70 2d 64 65 63 6c 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 65 78 70 72 2d 62 61 6c | ."cp-decl-bal.rep",\..."expr-bal |
| 4740 | 2e 72 65 70 22 2c 5c 0a 20 20 22 63 6f 61 6c 65 73 63 69 6e 67 2d 62 61 6c 2e 72 65 70 22 2c 5c | .rep",\..."coalescing-bal.rep",\ |
| 4760 | 0a 20 20 22 72 61 6e 64 6f 6d 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 72 61 6e 64 6f 6d 32 | ..."random-bal.rep",\..."random2 |
| 4780 | 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 62 69 6e 61 72 79 2d 62 61 6c 2e 72 65 70 22 2c 5c | -bal.rep",\..."binary-bal.rep",\ |
| 47a0 | 0a 20 20 22 62 69 6e 61 72 79 32 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 72 65 61 6c 6c 6f | ..."binary2-bal.rep",\..."reallo |
| 47c0 | 63 2d 62 61 6c 2e 72 65 70 22 2c 5c 0a 20 20 22 72 65 61 6c 6c 6f 63 32 2d 62 61 6c 2e 72 65 70 | c-bal.rep",\..."realloc2-bal.rep |
| 47e0 | 22 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 63 6f 6e 73 74 61 6e 74 20 67 69 76 65 73 20 74 68 65 | "../*..*.This.constant.gives.the |
| 4800 | 20 65 73 74 69 6d 61 74 65 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 6f 66 20 74 68 65 20 6c 69 | .estimated.performance.of.the.li |
| 4820 | 62 63 20 6d 61 6c 6c 6f 63 0a 20 2a 20 70 61 63 6b 61 67 65 20 75 73 69 6e 67 20 6f 75 72 20 74 | bc.malloc..*.package.using.our.t |
| 4840 | 72 61 63 65 73 20 6f 6e 20 73 6f 6d 65 20 72 65 66 65 72 65 6e 63 65 20 73 79 73 74 65 6d 2c 20 | races.on.some.reference.system,. |
| 4860 | 74 79 70 69 63 61 6c 6c 79 20 74 68 65 0a 20 2a 20 73 61 6d 65 20 6b 69 6e 64 20 6f 66 20 73 79 | typically.the..*.same.kind.of.sy |
| 4880 | 73 74 65 6d 20 74 68 65 20 73 74 75 64 65 6e 74 73 20 75 73 65 2e 20 49 74 73 20 70 75 72 70 6f | stem.the.students.use..Its.purpo |
| 48a0 | 73 65 20 69 73 20 74 6f 20 63 61 70 20 74 68 65 0a 20 2a 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e | se.is.to.cap.the..*.contribution |
| 48c0 | 20 6f 66 20 74 68 72 6f 75 67 68 70 75 74 20 74 6f 20 74 68 65 20 70 65 72 66 6f 72 6d 61 6e 63 | .of.throughput.to.the.performanc |
| 48e0 | 65 20 69 6e 64 65 78 2e 20 4f 6e 63 65 20 74 68 65 0a 20 2a 20 73 74 75 64 65 6e 74 73 20 73 75 | e.index..Once.the..*.students.su |
| 4900 | 72 70 61 73 73 20 74 68 65 20 41 56 47 5f 4c 49 42 43 5f 54 48 52 55 50 55 54 2c 20 74 68 65 79 | rpass.the.AVG_LIBC_THRUPUT,.they |
| 4920 | 20 67 65 74 20 6e 6f 20 66 75 72 74 68 65 72 20 62 65 6e 65 66 69 74 0a 20 2a 20 74 6f 20 74 68 | .get.no.further.benefit..*.to.th |
| 4940 | 65 69 72 20 73 63 6f 72 65 2e 20 20 54 68 69 73 20 64 65 74 65 72 73 20 73 74 75 64 65 6e 74 73 | eir.score...This.deters.students |
| 4960 | 20 66 72 6f 6d 20 62 75 69 6c 64 69 6e 67 20 65 78 74 72 65 6d 65 6c 79 20 66 61 73 74 2c 0a 20 | .from.building.extremely.fast,.. |
| 4980 | 2a 20 62 75 74 20 65 78 74 72 65 6d 65 6c 79 20 73 74 75 70 69 64 20 6d 61 6c 6c 6f 63 20 70 61 | *.but.extremely.stupid.malloc.pa |
| 49a0 | 63 6b 61 67 65 73 2e 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20 41 56 47 5f 4c 49 42 43 5f 54 48 52 | ckages...*/.#define.AVG_LIBC_THR |
| 49c0 | 55 50 55 54 20 20 20 20 20 20 36 30 30 45 33 20 20 2f 2a 20 36 30 30 20 4b 6f 70 73 2f 73 65 63 | UPUT......600E3../*.600.Kops/sec |
| 49e0 | 20 2a 2f 0a 0a 20 2f 2a 20 0a 20 20 2a 20 54 68 69 73 20 63 6f 6e 73 74 61 6e 74 20 64 65 74 65 | .*/.../*....*.This.constant.dete |
| 4a00 | 72 6d 69 6e 65 73 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 70 61 63 | rmines.the.contributions.of.spac |
| 4a20 | 65 20 75 74 69 6c 69 7a 61 74 69 6f 6e 0a 20 20 2a 20 28 55 54 49 4c 5f 57 45 49 47 48 54 29 20 | e.utilization...*.(UTIL_WEIGHT). |
| 4a40 | 61 6e 64 20 74 68 72 6f 75 67 68 70 75 74 20 28 31 20 2d 20 55 54 49 4c 5f 57 45 49 47 48 54 29 | and.throughput.(1.-.UTIL_WEIGHT) |
| 4a60 | 20 74 6f 20 74 68 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 0a 20 20 2a 20 69 6e 64 65 78 2e 20 20 | .to.the.performance...*.index... |
| 4a80 | 0a 20 20 2a 2f 0a 23 64 65 66 69 6e 65 20 55 54 49 4c 5f 57 45 49 47 48 54 20 2e 36 30 0a 0a 2f | ...*/.#define.UTIL_WEIGHT..60../ |
| 4aa0 | 2a 20 0a 20 2a 20 41 6c 69 67 6e 6d 65 6e 74 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 62 | *...*.Alignment.requirement.in.b |
| 4ac0 | 79 74 65 73 20 28 65 69 74 68 65 72 20 34 20 6f 72 20 38 29 20 0a 20 2a 2f 0a 23 64 65 66 69 6e | ytes.(either.4.or.8)...*/.#defin |
| 4ae0 | 65 20 41 4c 49 47 4e 4d 45 4e 54 20 38 20 20 0a 0a 2f 2a 20 0a 20 2a 20 4d 61 78 69 6d 75 6d 20 | e.ALIGNMENT.8..../*...*.Maximum. |
| 4b00 | 68 65 61 70 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 20 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20 | heap.size.in.bytes...*/.#define. |
| 4b20 | 4d 41 58 5f 48 45 41 50 20 28 32 30 2a 28 31 3c 3c 32 30 29 29 20 20 2f 2a 20 32 30 20 4d 42 20 | MAX_HEAP.(20*(1<<20))../*.20.MB. |
| 4b40 | 2a 2f 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | */../*************************** |
| 4b60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 4b80 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 53 65 74 20 65 78 61 63 74 6c | ******************..*.Set.exactl |
| 4ba0 | 79 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 55 53 45 5f 78 78 78 20 63 6f 6e 73 74 61 6e 74 73 | y.one.of.these.USE_xxx.constants |
| 4bc0 | 20 74 6f 20 22 31 22 20 74 6f 20 73 65 6c 65 63 74 20 61 20 74 69 6d 69 6e 67 20 6d 65 74 68 6f | .to."1".to.select.a.timing.metho |
| 4be0 | 64 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | d..***************************** |
| 4c00 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 4c20 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 23 64 65 66 69 6e 65 20 55 53 45 5f 46 43 | ****************/.#define.USE_FC |
| 4c40 | 59 43 20 20 20 30 20 20 20 2f 2a 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 72 20 77 2f 4b 2d 62 65 | YC...0.../*.cycle.counter.w/K-be |
| 4c60 | 73 74 20 73 63 68 65 6d 65 20 28 78 38 36 20 26 20 41 6c 70 68 61 20 6f 6e 6c 79 29 20 2a 2f 0a | st.scheme.(x86.&.Alpha.only).*/. |
| 4c80 | 23 64 65 66 69 6e 65 20 55 53 45 5f 49 54 49 4d 45 52 20 30 20 20 20 2f 2a 20 69 6e 74 65 72 76 | #define.USE_ITIMER.0.../*.interv |
| 4ca0 | 61 6c 20 74 69 6d 65 72 20 28 61 6e 79 20 55 6e 69 78 20 62 6f 78 29 20 2a 2f 0a 23 64 65 66 69 | al.timer.(any.Unix.box).*/.#defi |
| 4cc0 | 6e 65 20 55 53 45 5f 47 45 54 54 4f 44 20 31 20 20 20 2f 2a 20 67 65 74 74 69 6d 65 6f 66 64 61 | ne.USE_GETTOD.1.../*.gettimeofda |
| 4ce0 | 79 20 28 61 6e 79 20 55 6e 69 78 20 62 6f 78 29 20 2a 2f 0a 0a 23 65 6e 64 69 66 20 2f 2a 20 5f | y.(any.Unix.box).*/..#endif./*._ |
| 4d00 | 5f 43 4f 4e 46 49 47 5f 48 20 2a 2f 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | _CONFIG_H.*/.................... |
| 4d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 63 79 63 2e 63 00 00 00 00 00 00 00 00 | malloclab-handout/fcyc.c........ |
| 4e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 4e80 | 30 30 31 32 34 30 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 34 31 33 00 20 30 00 00 00 | 0012404.12507032412.014413..0... |
| 4ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 4f20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 4f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5000 | 2f 2a 0a 20 2a 20 66 63 79 63 2e 63 20 2d 20 45 73 74 69 6d 61 74 65 20 74 68 65 20 74 69 6d 65 | /*..*.fcyc.c.-.Estimate.the.time |
| 5020 | 20 28 69 6e 20 43 50 55 20 63 79 63 6c 65 73 29 20 75 73 65 64 20 62 79 20 61 20 66 75 6e 63 74 | .(in.CPU.cycles).used.by.a.funct |
| 5040 | 69 6f 6e 20 66 20 0a 20 2a 20 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 32 | ion.f...*...*.Copyright.(c).2002 |
| 5060 | 2c 20 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 44 2e 20 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 | ,.R..Bryant.and.D..O'Hallaron,.A |
| 5080 | 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 20 2a 20 4d 61 79 20 6e 6f 74 20 62 | ll.rights.reserved...*.May.not.b |
| 50a0 | 65 20 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 2c 20 6f 72 20 63 6f 70 69 65 64 20 77 69 74 68 | e.used,.modified,.or.copied.with |
| 50c0 | 6f 75 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 55 73 65 73 20 74 68 65 20 63 | out.permission...*..*.Uses.the.c |
| 50e0 | 79 63 6c 65 20 74 69 6d 65 72 20 72 6f 75 74 69 6e 65 73 20 69 6e 20 63 6c 6f 63 6b 2e 63 20 74 | ycle.timer.routines.in.clock.c.t |
| 5100 | 6f 20 65 73 74 69 6d 61 74 65 20 74 68 65 0a 20 2a 20 74 68 65 20 74 69 6d 65 20 69 6e 20 43 50 | o.estimate.the..*.the.time.in.CP |
| 5120 | 55 20 63 79 63 6c 65 73 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 2e 0a 20 2a 2f 0a 23 | U.cycles.for.a.function.f...*/.# |
| 5140 | 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 | include.<stdlib.h>.#include.<sys |
| 5160 | 2f 74 69 6d 65 73 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 0a 23 69 | /times.h>.#include.<stdio.h>..#i |
| 5180 | 6e 63 6c 75 64 65 20 22 66 63 79 63 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 63 6c 6f 63 6b 2e | nclude."fcyc.h".#include."clock. |
| 51a0 | 68 22 0a 0a 2f 2a 20 44 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 2a 2f 0a 23 64 65 66 69 6e 65 | h"../*.Default.values.*/.#define |
| 51c0 | 20 4b 20 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 56 61 6c 75 65 20 6f | .K.3................../*.Value.o |
| 51e0 | 66 20 4b 20 69 6e 20 4b 2d 62 65 73 74 20 73 63 68 65 6d 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 | f.K.in.K-best.scheme.*/.#define. |
| 5200 | 4d 41 58 53 41 4d 50 4c 45 53 20 32 30 20 20 20 20 20 20 20 20 2f 2a 20 47 69 76 65 20 75 70 20 | MAXSAMPLES.20......../*.Give.up. |
| 5220 | 61 66 74 65 72 20 4d 41 58 53 41 4d 50 4c 45 53 20 2a 2f 0a 23 64 65 66 69 6e 65 20 45 50 53 49 | after.MAXSAMPLES.*/.#define.EPSI |
| 5240 | 4c 4f 4e 20 30 2e 30 31 20 20 20 20 20 20 20 20 20 2f 2a 20 4b 20 73 61 6d 70 6c 65 73 20 73 68 | LON.0.01........./*.K.samples.sh |
| 5260 | 6f 75 6c 64 20 62 65 20 45 50 53 49 4c 4f 4e 20 6f 66 20 65 61 63 68 20 6f 74 68 65 72 2a 2f 0a | ould.be.EPSILON.of.each.other*/. |
| 5280 | 23 64 65 66 69 6e 65 20 43 4f 4d 50 45 4e 53 41 54 45 20 30 20 20 20 20 20 20 20 20 20 2f 2a 20 | #define.COMPENSATE.0........./*. |
| 52a0 | 31 2d 3e 20 74 72 79 20 74 6f 20 63 6f 6d 70 65 6e 73 61 74 65 20 66 6f 72 20 63 6c 6f 63 6b 20 | 1->.try.to.compensate.for.clock. |
| 52c0 | 74 69 63 6b 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 4c 45 41 52 5f 43 41 43 48 45 20 30 20 20 | ticks.*/.#define.CLEAR_CACHE.0.. |
| 52e0 | 20 20 20 20 20 20 2f 2a 20 43 6c 65 61 72 20 63 61 63 68 65 20 62 65 66 6f 72 65 20 72 75 6e 6e | ....../*.Clear.cache.before.runn |
| 5300 | 69 6e 67 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 41 43 | ing.test.function.*/.#define.CAC |
| 5320 | 48 45 5f 42 59 54 45 53 20 28 31 3c 3c 31 39 29 20 20 2f 2a 20 4d 61 78 20 63 61 63 68 65 20 73 | HE_BYTES.(1<<19)../*.Max.cache.s |
| 5340 | 69 7a 65 20 69 6e 20 62 79 74 65 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 43 41 43 48 45 5f 42 4c | ize.in.bytes.*/.#define.CACHE_BL |
| 5360 | 4f 43 4b 20 33 32 20 20 20 20 20 20 20 2f 2a 20 43 61 63 68 65 20 62 6c 6f 63 6b 20 73 69 7a 65 | OCK.32......./*.Cache.block.size |
| 5380 | 20 69 6e 20 62 79 74 65 73 20 2a 2f 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 6b 62 65 73 74 20 3d | .in.bytes.*/..static.int.kbest.= |
| 53a0 | 20 4b 3b 0a 73 74 61 74 69 63 20 69 6e 74 20 6d 61 78 73 61 6d 70 6c 65 73 20 3d 20 4d 41 58 53 | .K;.static.int.maxsamples.=.MAXS |
| 53c0 | 41 4d 50 4c 45 53 3b 0a 73 74 61 74 69 63 20 64 6f 75 62 6c 65 20 65 70 73 69 6c 6f 6e 20 3d 20 | AMPLES;.static.double.epsilon.=. |
| 53e0 | 45 50 53 49 4c 4f 4e 3b 0a 73 74 61 74 69 63 20 69 6e 74 20 63 6f 6d 70 65 6e 73 61 74 65 20 3d | EPSILON;.static.int.compensate.= |
| 5400 | 20 43 4f 4d 50 45 4e 53 41 54 45 3b 0a 73 74 61 74 69 63 20 69 6e 74 20 63 6c 65 61 72 5f 63 61 | .COMPENSATE;.static.int.clear_ca |
| 5420 | 63 68 65 20 3d 20 43 4c 45 41 52 5f 43 41 43 48 45 3b 0a 73 74 61 74 69 63 20 69 6e 74 20 63 61 | che.=.CLEAR_CACHE;.static.int.ca |
| 5440 | 63 68 65 5f 62 79 74 65 73 20 3d 20 43 41 43 48 45 5f 42 59 54 45 53 3b 0a 73 74 61 74 69 63 20 | che_bytes.=.CACHE_BYTES;.static. |
| 5460 | 69 6e 74 20 63 61 63 68 65 5f 62 6c 6f 63 6b 20 3d 20 43 41 43 48 45 5f 42 4c 4f 43 4b 3b 0a 0a | int.cache_block.=.CACHE_BLOCK;.. |
| 5480 | 73 74 61 74 69 63 20 69 6e 74 20 2a 63 61 63 68 65 5f 62 75 66 20 3d 20 4e 55 4c 4c 3b 0a 0a 73 | static.int.*cache_buf.=.NULL;..s |
| 54a0 | 74 61 74 69 63 20 64 6f 75 62 6c 65 20 2a 76 61 6c 75 65 73 20 3d 20 4e 55 4c 4c 3b 0a 73 74 61 | tatic.double.*values.=.NULL;.sta |
| 54c0 | 74 69 63 20 69 6e 74 20 73 61 6d 70 6c 65 63 6f 75 6e 74 20 3d 20 30 3b 0a 0a 2f 2a 20 66 6f 72 | tic.int.samplecount.=.0;../*.for |
| 54e0 | 20 64 65 62 75 67 67 69 6e 67 20 6f 6e 6c 79 20 2a 2f 0a 23 64 65 66 69 6e 65 20 4b 45 45 50 5f | .debugging.only.*/.#define.KEEP_ |
| 5500 | 56 41 4c 53 20 30 0a 23 64 65 66 69 6e 65 20 4b 45 45 50 5f 53 41 4d 50 4c 45 53 20 30 0a 0a 23 | VALS.0.#define.KEEP_SAMPLES.0..# |
| 5520 | 69 66 20 4b 45 45 50 5f 53 41 4d 50 4c 45 53 0a 73 74 61 74 69 63 20 64 6f 75 62 6c 65 20 2a 73 | if.KEEP_SAMPLES.static.double.*s |
| 5540 | 61 6d 70 6c 65 73 20 3d 20 4e 55 4c 4c 3b 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 0a 20 2a 20 69 6e | amples.=.NULL;.#endif../*...*.in |
| 5560 | 69 74 5f 73 61 6d 70 6c 65 72 20 2d 20 53 74 61 72 74 20 6e 65 77 20 73 61 6d 70 6c 69 6e 67 20 | it_sampler.-.Start.new.sampling. |
| 5580 | 70 72 6f 63 65 73 73 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 69 74 5f 73 61 | process...*/.static.void.init_sa |
| 55a0 | 6d 70 6c 65 72 28 29 0a 7b 0a 20 20 20 20 69 66 20 28 76 61 6c 75 65 73 29 0a 09 66 72 65 65 28 | mpler().{.....if.(values)..free( |
| 55c0 | 76 61 6c 75 65 73 29 3b 0a 20 20 20 20 76 61 6c 75 65 73 20 3d 20 63 61 6c 6c 6f 63 28 6b 62 65 | values);.....values.=.calloc(kbe |
| 55e0 | 73 74 2c 20 73 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 23 69 66 20 4b 45 45 50 5f 53 41 | st,.sizeof(double));.#if.KEEP_SA |
| 5600 | 4d 50 4c 45 53 0a 20 20 20 20 69 66 20 28 73 61 6d 70 6c 65 73 29 0a 09 66 72 65 65 28 73 61 6d | MPLES.....if.(samples)..free(sam |
| 5620 | 70 6c 65 73 29 3b 0a 20 20 20 20 2f 2a 20 41 6c 6c 6f 63 61 74 65 20 65 78 74 72 61 20 66 6f 72 | ples);...../*.Allocate.extra.for |
| 5640 | 20 77 72 61 70 61 72 6f 75 6e 64 20 61 6e 61 6c 79 73 69 73 20 2a 2f 0a 20 20 20 20 73 61 6d 70 | .wraparound.analysis.*/.....samp |
| 5660 | 6c 65 73 20 3d 20 63 61 6c 6c 6f 63 28 6d 61 78 73 61 6d 70 6c 65 73 2b 6b 62 65 73 74 2c 20 73 | les.=.calloc(maxsamples+kbest,.s |
| 5680 | 69 7a 65 6f 66 28 64 6f 75 62 6c 65 29 29 3b 0a 23 65 6e 64 69 66 0a 20 20 20 20 73 61 6d 70 6c | izeof(double));.#endif.....sampl |
| 56a0 | 65 63 6f 75 6e 74 20 3d 20 30 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 61 64 64 5f 73 61 6d 70 6c 65 | ecount.=.0;.}../*...*.add_sample |
| 56c0 | 20 2d 20 41 64 64 20 6e 65 77 20 73 61 6d 70 6c 65 20 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 76 | .-.Add.new.sample....*/.static.v |
| 56e0 | 6f 69 64 20 61 64 64 5f 73 61 6d 70 6c 65 28 64 6f 75 62 6c 65 20 76 61 6c 29 0a 7b 0a 20 20 20 | oid.add_sample(double.val).{.... |
| 5700 | 20 69 6e 74 20 70 6f 73 20 3d 20 30 3b 0a 20 20 20 20 69 66 20 28 73 61 6d 70 6c 65 63 6f 75 6e | .int.pos.=.0;.....if.(samplecoun |
| 5720 | 74 20 3c 20 6b 62 65 73 74 29 20 7b 0a 09 70 6f 73 20 3d 20 73 61 6d 70 6c 65 63 6f 75 6e 74 3b | t.<.kbest).{..pos.=.samplecount; |
| 5740 | 0a 09 76 61 6c 75 65 73 5b 70 6f 73 5d 20 3d 20 76 61 6c 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 | ..values[pos].=.val;.....}.else. |
| 5760 | 69 66 20 28 76 61 6c 20 3c 20 76 61 6c 75 65 73 5b 6b 62 65 73 74 2d 31 5d 29 20 7b 0a 09 70 6f | if.(val.<.values[kbest-1]).{..po |
| 5780 | 73 20 3d 20 6b 62 65 73 74 2d 31 3b 0a 09 76 61 6c 75 65 73 5b 70 6f 73 5d 20 3d 20 76 61 6c 3b | s.=.kbest-1;..values[pos].=.val; |
| 57a0 | 0a 20 20 20 20 7d 0a 23 69 66 20 4b 45 45 50 5f 53 41 4d 50 4c 45 53 0a 20 20 20 20 73 61 6d 70 | .....}.#if.KEEP_SAMPLES.....samp |
| 57c0 | 6c 65 73 5b 73 61 6d 70 6c 65 63 6f 75 6e 74 5d 20 3d 20 76 61 6c 3b 0a 23 65 6e 64 69 66 0a 20 | les[samplecount].=.val;.#endif.. |
| 57e0 | 20 20 20 73 61 6d 70 6c 65 63 6f 75 6e 74 2b 2b 3b 0a 20 20 20 20 2f 2a 20 49 6e 73 65 72 74 69 | ...samplecount++;...../*.Inserti |
| 5800 | 6f 6e 20 73 6f 72 74 20 2a 2f 0a 20 20 20 20 77 68 69 6c 65 20 28 70 6f 73 20 3e 20 30 20 26 26 | on.sort.*/.....while.(pos.>.0.&& |
| 5820 | 20 76 61 6c 75 65 73 5b 70 6f 73 2d 31 5d 20 3e 20 76 61 6c 75 65 73 5b 70 6f 73 5d 29 20 7b 0a | .values[pos-1].>.values[pos]).{. |
| 5840 | 09 64 6f 75 62 6c 65 20 74 65 6d 70 20 3d 20 76 61 6c 75 65 73 5b 70 6f 73 2d 31 5d 3b 0a 09 76 | .double.temp.=.values[pos-1];..v |
| 5860 | 61 6c 75 65 73 5b 70 6f 73 2d 31 5d 20 3d 20 76 61 6c 75 65 73 5b 70 6f 73 5d 3b 0a 09 76 61 6c | alues[pos-1].=.values[pos];..val |
| 5880 | 75 65 73 5b 70 6f 73 5d 20 3d 20 74 65 6d 70 3b 0a 09 70 6f 73 2d 2d 3b 0a 20 20 20 20 7d 0a 7d | ues[pos].=.temp;..pos--;.....}.} |
| 58a0 | 0a 0a 2f 2a 20 0a 20 2a 20 68 61 73 5f 63 6f 6e 76 65 72 67 65 64 2d 20 48 61 76 65 20 6b 62 65 | ../*...*.has_converged-.Have.kbe |
| 58c0 | 73 74 20 6d 69 6e 69 6d 75 6d 20 6d 65 61 73 75 72 65 6d 65 6e 74 73 20 63 6f 6e 76 65 72 67 65 | st.minimum.measurements.converge |
| 58e0 | 64 20 77 69 74 68 69 6e 20 65 70 73 69 6c 6f 6e 3f 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 69 6e | d.within.epsilon?...*/.static.in |
| 5900 | 74 20 68 61 73 5f 63 6f 6e 76 65 72 67 65 64 28 29 0a 7b 0a 20 20 20 20 72 65 74 75 72 6e 0a 09 | t.has_converged().{.....return.. |
| 5920 | 28 73 61 6d 70 6c 65 63 6f 75 6e 74 20 3e 3d 20 6b 62 65 73 74 29 20 26 26 0a 09 28 28 31 20 2b | (samplecount.>=.kbest).&&..((1.+ |
| 5940 | 20 65 70 73 69 6c 6f 6e 29 2a 76 61 6c 75 65 73 5b 30 5d 20 3e 3d 20 76 61 6c 75 65 73 5b 6b 62 | .epsilon)*values[0].>=.values[kb |
| 5960 | 65 73 74 2d 31 5d 29 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 63 6c 65 61 72 20 2d 20 43 6f 64 65 20 | est-1]);.}../*...*.clear.-.Code. |
| 5980 | 74 6f 20 63 6c 65 61 72 20 63 61 63 68 65 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 76 6f 6c 61 74 | to.clear.cache...*/.static.volat |
| 59a0 | 69 6c 65 20 69 6e 74 20 73 69 6e 6b 20 3d 20 30 3b 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 63 | ile.int.sink.=.0;..static.void.c |
| 59c0 | 6c 65 61 72 28 29 0a 7b 0a 20 20 20 20 69 6e 74 20 78 20 3d 20 73 69 6e 6b 3b 0a 20 20 20 20 69 | lear().{.....int.x.=.sink;.....i |
| 59e0 | 6e 74 20 2a 63 70 74 72 2c 20 2a 63 65 6e 64 3b 0a 20 20 20 20 69 6e 74 20 69 6e 63 72 20 3d 20 | nt.*cptr,.*cend;.....int.incr.=. |
| 5a00 | 63 61 63 68 65 5f 62 6c 6f 63 6b 2f 73 69 7a 65 6f 66 28 69 6e 74 29 3b 0a 20 20 20 20 69 66 20 | cache_block/sizeof(int);.....if. |
| 5a20 | 28 21 63 61 63 68 65 5f 62 75 66 29 20 7b 0a 09 63 61 63 68 65 5f 62 75 66 20 3d 20 6d 61 6c 6c | (!cache_buf).{..cache_buf.=.mall |
| 5a40 | 6f 63 28 63 61 63 68 65 5f 62 79 74 65 73 29 3b 0a 09 69 66 20 28 21 63 61 63 68 65 5f 62 75 66 | oc(cache_bytes);..if.(!cache_buf |
| 5a60 | 29 20 7b 0a 09 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 74 61 6c 20 | ).{......fprintf(stderr,."Fatal. |
| 5a80 | 65 72 72 6f 72 2e 20 20 4d 61 6c 6c 6f 63 20 72 65 74 75 72 6e 65 64 20 6e 75 6c 6c 20 77 68 65 | error...Malloc.returned.null.whe |
| 5aa0 | 6e 20 74 72 79 69 6e 67 20 74 6f 20 63 6c 65 61 72 20 63 61 63 68 65 5c 6e 22 29 3b 0a 09 20 20 | n.trying.to.clear.cache\n");.... |
| 5ac0 | 20 20 65 78 69 74 28 31 29 3b 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 63 70 74 72 20 3d 20 28 | ..exit(1);..}.....}.....cptr.=.( |
| 5ae0 | 69 6e 74 20 2a 29 20 63 61 63 68 65 5f 62 75 66 3b 0a 20 20 20 20 63 65 6e 64 20 3d 20 63 70 74 | int.*).cache_buf;.....cend.=.cpt |
| 5b00 | 72 20 2b 20 63 61 63 68 65 5f 62 79 74 65 73 2f 73 69 7a 65 6f 66 28 69 6e 74 29 3b 0a 20 20 20 | r.+.cache_bytes/sizeof(int);.... |
| 5b20 | 20 77 68 69 6c 65 20 28 63 70 74 72 20 3c 20 63 65 6e 64 29 20 7b 0a 09 78 20 2b 3d 20 2a 63 70 | .while.(cptr.<.cend).{..x.+=.*cp |
| 5b40 | 74 72 3b 0a 09 63 70 74 72 20 2b 3d 20 69 6e 63 72 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 69 6e | tr;..cptr.+=.incr;.....}.....sin |
| 5b60 | 6b 20 3d 20 78 3b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 66 63 79 63 20 2d 20 55 73 65 20 4b 2d 62 65 73 | k.=.x;.}../*..*.fcyc.-.Use.K-bes |
| 5b80 | 74 20 73 63 68 65 6d 65 20 74 6f 20 65 73 74 69 6d 61 74 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 | t.scheme.to.estimate.the.running |
| 5ba0 | 20 74 69 6d 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 66 0a 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 | .time.of.function.f..*/.double.f |
| 5bc0 | 63 79 63 28 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 20 2a 61 72 67 70 29 0a 7b 0a | cyc(test_funct.f,.void.*argp).{. |
| 5be0 | 20 20 20 20 64 6f 75 62 6c 65 20 72 65 73 75 6c 74 3b 0a 20 20 20 20 69 6e 69 74 5f 73 61 6d 70 | ....double.result;.....init_samp |
| 5c00 | 6c 65 72 28 29 3b 0a 20 20 20 20 69 66 20 28 63 6f 6d 70 65 6e 73 61 74 65 29 20 7b 0a 09 64 6f | ler();.....if.(compensate).{..do |
| 5c20 | 20 7b 0a 09 20 20 20 20 64 6f 75 62 6c 65 20 63 79 63 3b 0a 09 20 20 20 20 69 66 20 28 63 6c 65 | .{......double.cyc;......if.(cle |
| 5c40 | 61 72 5f 63 61 63 68 65 29 0a 09 09 63 6c 65 61 72 28 29 3b 0a 09 20 20 20 20 73 74 61 72 74 5f | ar_cache)...clear();......start_ |
| 5c60 | 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 09 20 20 20 20 66 28 61 72 67 70 29 3b 0a 09 20 | comp_counter();......f(argp);... |
| 5c80 | 20 20 20 63 79 63 20 3d 20 67 65 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 09 20 20 | ...cyc.=.get_comp_counter();.... |
| 5ca0 | 20 20 61 64 64 5f 73 61 6d 70 6c 65 28 63 79 63 29 3b 0a 09 7d 20 77 68 69 6c 65 20 28 21 68 61 | ..add_sample(cyc);..}.while.(!ha |
| 5cc0 | 73 5f 63 6f 6e 76 65 72 67 65 64 28 29 20 26 26 20 73 61 6d 70 6c 65 63 6f 75 6e 74 20 3c 20 6d | s_converged().&&.samplecount.<.m |
| 5ce0 | 61 78 73 61 6d 70 6c 65 73 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 64 6f 20 7b 0a 09 | axsamples);.....}.else.{..do.{.. |
| 5d00 | 20 20 20 20 64 6f 75 62 6c 65 20 63 79 63 3b 0a 09 20 20 20 20 69 66 20 28 63 6c 65 61 72 5f 63 | ....double.cyc;......if.(clear_c |
| 5d20 | 61 63 68 65 29 0a 09 09 63 6c 65 61 72 28 29 3b 0a 09 20 20 20 20 73 74 61 72 74 5f 63 6f 75 6e | ache)...clear();......start_coun |
| 5d40 | 74 65 72 28 29 3b 0a 09 20 20 20 20 66 28 61 72 67 70 29 3b 0a 09 20 20 20 20 63 79 63 20 3d 20 | ter();......f(argp);......cyc.=. |
| 5d60 | 67 65 74 5f 63 6f 75 6e 74 65 72 28 29 3b 0a 09 20 20 20 20 61 64 64 5f 73 61 6d 70 6c 65 28 63 | get_counter();......add_sample(c |
| 5d80 | 79 63 29 3b 0a 09 7d 20 77 68 69 6c 65 20 28 21 68 61 73 5f 63 6f 6e 76 65 72 67 65 64 28 29 20 | yc);..}.while.(!has_converged(). |
| 5da0 | 26 26 20 73 61 6d 70 6c 65 63 6f 75 6e 74 20 3c 20 6d 61 78 73 61 6d 70 6c 65 73 29 3b 0a 20 20 | &&.samplecount.<.maxsamples);... |
| 5dc0 | 20 20 7d 0a 23 69 66 64 65 66 20 44 45 42 55 47 0a 20 20 20 20 7b 0a 09 69 6e 74 20 69 3b 0a 09 | ..}.#ifdef.DEBUG.....{..int.i;.. |
| 5de0 | 70 72 69 6e 74 66 28 22 20 25 64 20 73 6d 61 6c 6c 65 73 74 20 76 61 6c 75 65 73 3a 20 5b 22 2c | printf(".%d.smallest.values:.[", |
| 5e00 | 20 6b 62 65 73 74 29 3b 0a 09 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 20 3c 20 6b 62 65 73 74 3b | .kbest);..for.(i.=.0;.i.<.kbest; |
| 5e20 | 20 69 2b 2b 29 0a 09 20 20 20 20 70 72 69 6e 74 66 28 22 25 2e 30 66 25 73 22 2c 20 76 61 6c 75 | .i++)......printf("%.0f%s",.valu |
| 5e40 | 65 73 5b 69 5d 2c 20 69 3d 3d 6b 62 65 73 74 2d 31 20 3f 20 22 5d 5c 6e 22 20 3a 20 22 2c 20 22 | es[i],.i==kbest-1.?."]\n".:.",." |
| 5e60 | 29 3b 0a 20 20 20 20 7d 0a 23 65 6e 64 69 66 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 76 61 6c | );.....}.#endif.....result.=.val |
| 5e80 | 75 65 73 5b 30 5d 3b 0a 23 69 66 20 21 4b 45 45 50 5f 56 41 4c 53 0a 20 20 20 20 66 72 65 65 28 | ues[0];.#if.!KEEP_VALS.....free( |
| 5ea0 | 76 61 6c 75 65 73 29 3b 20 0a 20 20 20 20 76 61 6c 75 65 73 20 3d 20 4e 55 4c 4c 3b 0a 23 65 6e | values);......values.=.NULL;.#en |
| 5ec0 | 64 69 66 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 20 20 0a 7d 0a 0a 0a 2f 2a 2a | dif.....return.result;...}.../** |
| 5ee0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 5f00 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 53 | ***************************..*.S |
| 5f20 | 65 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 70 61 72 61 6d 65 74 65 72 73 20 75 73 65 64 20 62 | et.the.various.parameters.used.b |
| 5f40 | 79 20 74 68 65 20 6d 65 61 73 75 72 65 6d 65 6e 74 20 72 6f 75 74 69 6e 65 73 20 0a 20 2a 2a 2a | y.the.measurement.routines...*** |
| 5f60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 5f80 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 0a | *************************/../*.. |
| 5fa0 | 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 20 2d 20 57 68 65 6e 20 73 | .*.set_fcyc_clear_cache.-.When.s |
| 5fc0 | 65 74 2c 20 77 69 6c 6c 20 72 75 6e 20 63 6f 64 65 20 74 6f 20 63 6c 65 61 72 20 63 61 63 68 65 | et,.will.run.code.to.clear.cache |
| 5fe0 | 20 0a 20 2a 20 20 20 20 20 62 65 66 6f 72 65 20 65 61 63 68 20 6d 65 61 73 75 72 65 6d 65 6e 74 | ...*.....before.each.measurement |
| 6000 | 2e 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 30 0a 20 2a 2f 0a 76 6f 69 64 20 73 | ....*.....Default.=.0..*/.void.s |
| 6020 | 65 74 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 28 69 6e 74 20 63 6c 65 61 72 29 0a 7b | et_fcyc_clear_cache(int.clear).{ |
| 6040 | 0a 20 20 20 20 63 6c 65 61 72 5f 63 61 63 68 65 20 3d 20 63 6c 65 61 72 3b 0a 7d 0a 0a 2f 2a 20 | .....clear_cache.=.clear;.}../*. |
| 6060 | 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 73 69 7a 65 20 2d 20 53 65 74 20 73 69 | ..*.set_fcyc_cache_size.-.Set.si |
| 6080 | 7a 65 20 6f 66 20 63 61 63 68 65 20 74 6f 20 75 73 65 20 77 68 65 6e 20 63 6c 65 61 72 69 6e 67 | ze.of.cache.to.use.when.clearing |
| 60a0 | 20 63 61 63 68 65 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 31 3c 3c 31 39 20 28 | .cache...*.....Default.=.1<<19.( |
| 60c0 | 35 31 32 4b 42 29 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 73 | 512KB)..*/.void.set_fcyc_cache_s |
| 60e0 | 69 7a 65 28 69 6e 74 20 62 79 74 65 73 29 0a 7b 0a 20 20 20 20 69 66 20 28 62 79 74 65 73 20 21 | ize(int.bytes).{.....if.(bytes.! |
| 6100 | 3d 20 63 61 63 68 65 5f 62 79 74 65 73 29 20 7b 0a 09 63 61 63 68 65 5f 62 79 74 65 73 20 3d 20 | =.cache_bytes).{..cache_bytes.=. |
| 6120 | 62 79 74 65 73 3b 0a 09 69 66 20 28 63 61 63 68 65 5f 62 75 66 29 20 7b 0a 09 20 20 20 20 66 72 | bytes;..if.(cache_buf).{......fr |
| 6140 | 65 65 28 63 61 63 68 65 5f 62 75 66 29 3b 0a 09 20 20 20 20 63 61 63 68 65 5f 62 75 66 20 3d 20 | ee(cache_buf);......cache_buf.=. |
| 6160 | 4e 55 4c 4c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 | NULL;..}.....}.}../*...*.set_fcy |
| 6180 | 63 5f 63 61 63 68 65 5f 62 6c 6f 63 6b 20 2d 20 53 65 74 20 73 69 7a 65 20 6f 66 20 63 61 63 68 | c_cache_block.-.Set.size.of.cach |
| 61a0 | 65 20 62 6c 6f 63 6b 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 33 32 0a 20 2a 2f | e.block...*.....Default.=.32..*/ |
| 61c0 | 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 62 6c 6f 63 6b 28 69 6e 74 20 62 | .void.set_fcyc_cache_block(int.b |
| 61e0 | 79 74 65 73 29 20 7b 0a 20 20 20 20 63 61 63 68 65 5f 62 6c 6f 63 6b 20 3d 20 62 79 74 65 73 3b | ytes).{.....cache_block.=.bytes; |
| 6200 | 0a 7d 0a 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 6f 6d 70 65 6e 73 61 74 65 2d | .}.../*...*.set_fcyc_compensate- |
| 6220 | 20 57 68 65 6e 20 73 65 74 2c 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 6f 20 63 6f 6d 70 65 | .When.set,.will.attempt.to.compe |
| 6240 | 6e 73 61 74 65 20 66 6f 72 20 0a 20 2a 20 20 20 20 20 74 69 6d 65 72 20 69 6e 74 65 72 72 75 70 | nsate.for...*.....timer.interrup |
| 6260 | 74 20 6f 76 65 72 68 65 61 64 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 30 0a 20 | t.overhead...*.....Default.=.0.. |
| 6280 | 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 6f 6d 70 65 6e 73 61 74 65 28 69 6e 74 20 | */.void.set_fcyc_compensate(int. |
| 62a0 | 63 6f 6d 70 65 6e 73 61 74 65 5f 61 72 67 29 0a 7b 0a 20 20 20 20 63 6f 6d 70 65 6e 73 61 74 65 | compensate_arg).{.....compensate |
| 62c0 | 20 3d 20 63 6f 6d 70 65 6e 73 61 74 65 5f 61 72 67 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 | .=.compensate_arg;.}../*...*.set |
| 62e0 | 5f 66 63 79 63 5f 6b 20 2d 20 56 61 6c 75 65 20 6f 66 20 4b 20 69 6e 20 4b 2d 62 65 73 74 20 6d | _fcyc_k.-.Value.of.K.in.K-best.m |
| 6300 | 65 61 73 75 72 65 6d 65 6e 74 20 73 63 68 65 6d 65 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 | easurement.scheme..*.....Default |
| 6320 | 20 3d 20 33 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 6b 28 69 6e 74 20 6b 29 0a | .=.3..*/.void.set_fcyc_k(int.k). |
| 6340 | 7b 0a 20 20 20 20 6b 62 65 73 74 20 3d 20 6b 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 | {.....kbest.=.k;.}../*...*.set_f |
| 6360 | 63 79 63 5f 6d 61 78 73 61 6d 70 6c 65 73 20 2d 20 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 | cyc_maxsamples.-.Maximum.number. |
| 6380 | 6f 66 20 73 61 6d 70 6c 65 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 66 69 6e 64 20 0a 20 | of.samples.attempting.to.find... |
| 63a0 | 2a 20 20 20 20 20 4b 2d 62 65 73 74 20 77 69 74 68 69 6e 20 73 6f 6d 65 20 74 6f 6c 65 72 61 6e | *.....K-best.within.some.toleran |
| 63c0 | 63 65 2e 0a 20 2a 20 20 20 20 20 57 68 65 6e 20 65 78 63 65 65 64 65 64 2c 20 6a 75 73 74 20 72 | ce...*.....When.exceeded,.just.r |
| 63e0 | 65 74 75 72 6e 20 62 65 73 74 20 73 61 6d 70 6c 65 20 66 6f 75 6e 64 2e 0a 20 2a 20 20 20 20 20 | eturn.best.sample.found...*..... |
| 6400 | 44 65 66 61 75 6c 74 20 3d 20 32 30 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 6d | Default.=.20..*/.void.set_fcyc_m |
| 6420 | 61 78 73 61 6d 70 6c 65 73 28 69 6e 74 20 6d 61 78 73 61 6d 70 6c 65 73 5f 61 72 67 29 0a 7b 0a | axsamples(int.maxsamples_arg).{. |
| 6440 | 20 20 20 20 6d 61 78 73 61 6d 70 6c 65 73 20 3d 20 6d 61 78 73 61 6d 70 6c 65 73 5f 61 72 67 3b | ....maxsamples.=.maxsamples_arg; |
| 6460 | 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 65 70 73 69 6c 6f 6e 20 2d 20 54 6f | .}../*...*.set_fcyc_epsilon.-.To |
| 6480 | 6c 65 72 61 6e 63 65 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 4b 2d 62 65 73 74 0a 20 2a 20 20 | lerance.required.for.K-best..*.. |
| 64a0 | 20 20 20 44 65 66 61 75 6c 74 20 3d 20 30 2e 30 31 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 | ...Default.=.0.01..*/.void.set_f |
| 64c0 | 63 79 63 5f 65 70 73 69 6c 6f 6e 28 64 6f 75 62 6c 65 20 65 70 73 69 6c 6f 6e 5f 61 72 67 29 0a | cyc_epsilon(double.epsilon_arg). |
| 64e0 | 7b 0a 20 20 20 20 65 70 73 69 6c 6f 6e 20 3d 20 65 70 73 69 6c 6f 6e 5f 61 72 67 3b 0a 7d 0a 0a | {.....epsilon.=.epsilon_arg;.}.. |
| 6500 | 0a 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 65a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 65c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 65e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6600 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 63 79 63 2e 68 00 00 00 00 00 00 00 00 | malloclab-handout/fcyc.h........ |
| 6620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 6680 | 30 30 30 33 32 36 32 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 34 32 32 00 20 30 00 00 00 | 0003262.12507032412.014422..0... |
| 66a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 66c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 66e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6700 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 6720 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 6740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6800 | 2f 2a 0a 20 2a 20 66 63 79 63 2e 68 20 2d 20 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72 20 74 68 | /*..*.fcyc.h.-.prototypes.for.th |
| 6820 | 65 20 72 6f 75 74 69 6e 65 73 20 69 6e 20 66 63 79 63 2e 63 20 74 68 61 74 20 65 73 74 69 6d 61 | e.routines.in.fcyc.c.that.estima |
| 6840 | 74 65 20 74 68 65 0a 20 2a 20 20 20 20 20 74 69 6d 65 20 69 6e 20 43 50 55 20 63 79 63 6c 65 73 | te.the..*.....time.in.CPU.cycles |
| 6860 | 20 75 73 65 64 20 62 79 20 61 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 66 0a 20 2a 20 0a 20 | .used.by.a.test.function.f..*... |
| 6880 | 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 32 2c 20 52 2e 20 42 72 79 61 6e 74 20 | *.Copyright.(c).2002,.R..Bryant. |
| 68a0 | 61 6e 64 20 44 2e 20 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 | and.D..O'Hallaron,.All.rights.re |
| 68c0 | 73 65 72 76 65 64 2e 0a 20 2a 20 4d 61 79 20 6e 6f 74 20 62 65 20 75 73 65 64 2c 20 6d 6f 64 69 | served...*.May.not.be.used,.modi |
| 68e0 | 66 69 65 64 2c 20 6f 72 20 63 6f 70 69 65 64 20 77 69 74 68 6f 75 74 20 70 65 72 6d 69 73 73 69 | fied,.or.copied.without.permissi |
| 6900 | 6f 6e 2e 0a 20 2a 0a 20 2a 2f 0a 0a 2f 2a 20 54 68 65 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e | on...*..*/../*.The.test.function |
| 6920 | 20 74 61 6b 65 73 20 61 20 67 65 6e 65 72 69 63 20 70 6f 69 6e 74 65 72 20 61 73 20 69 6e 70 75 | .takes.a.generic.pointer.as.inpu |
| 6940 | 74 20 2a 2f 0a 74 79 70 65 64 65 66 20 76 6f 69 64 20 28 2a 74 65 73 74 5f 66 75 6e 63 74 29 28 | t.*/.typedef.void.(*test_funct)( |
| 6960 | 76 6f 69 64 20 2a 29 3b 0a 0a 2f 2a 20 43 6f 6d 70 75 74 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 | void.*);../*.Compute.number.of.c |
| 6980 | 79 63 6c 65 73 20 75 73 65 64 20 62 79 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 66 20 2a 2f | ycles.used.by.test.function.f.*/ |
| 69a0 | 0a 64 6f 75 62 6c 65 20 66 63 79 63 28 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 2a | .double.fcyc(test_funct.f,.void* |
| 69c0 | 20 61 72 67 70 29 3b 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .argp);../********************** |
| 69e0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 6a00 | 2a 2a 2a 0a 20 2a 20 53 65 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 70 61 72 61 6d 65 74 65 72 | ***..*.Set.the.various.parameter |
| 6a20 | 73 20 75 73 65 64 20 62 79 20 6d 65 61 73 75 72 65 6d 65 6e 74 20 72 6f 75 74 69 6e 65 73 20 0a | s.used.by.measurement.routines.. |
| 6a40 | 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .******************************* |
| 6a60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 | **************************/../*. |
| 6a80 | 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 20 2d 20 57 68 65 6e 20 | ..*.set_fcyc_clear_cache.-.When. |
| 6aa0 | 73 65 74 2c 20 77 69 6c 6c 20 72 75 6e 20 63 6f 64 65 20 74 6f 20 63 6c 65 61 72 20 63 61 63 68 | set,.will.run.code.to.clear.cach |
| 6ac0 | 65 20 0a 20 2a 20 20 20 20 20 62 65 66 6f 72 65 20 65 61 63 68 20 6d 65 61 73 75 72 65 6d 65 6e | e...*.....before.each.measuremen |
| 6ae0 | 74 2e 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 30 0a 20 2a 2f 0a 76 6f 69 64 20 | t....*.....Default.=.0..*/.void. |
| 6b00 | 73 65 74 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 28 69 6e 74 20 63 6c 65 61 72 29 3b | set_fcyc_clear_cache(int.clear); |
| 6b20 | 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 73 69 7a 65 20 2d 20 53 | ../*...*.set_fcyc_cache_size.-.S |
| 6b40 | 65 74 20 73 69 7a 65 20 6f 66 20 63 61 63 68 65 20 74 6f 20 75 73 65 20 77 68 65 6e 20 63 6c 65 | et.size.of.cache.to.use.when.cle |
| 6b60 | 61 72 69 6e 67 20 63 61 63 68 65 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 31 3c | aring.cache...*.....Default.=.1< |
| 6b80 | 3c 31 39 20 28 35 31 32 4b 42 29 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 61 | <19.(512KB)..*/.void.set_fcyc_ca |
| 6ba0 | 63 68 65 5f 73 69 7a 65 28 69 6e 74 20 62 79 74 65 73 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 | che_size(int.bytes);../*...*.set |
| 6bc0 | 5f 66 63 79 63 5f 63 61 63 68 65 5f 62 6c 6f 63 6b 20 2d 20 53 65 74 20 73 69 7a 65 20 6f 66 20 | _fcyc_cache_block.-.Set.size.of. |
| 6be0 | 63 61 63 68 65 20 62 6c 6f 63 6b 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 33 32 | cache.block...*.....Default.=.32 |
| 6c00 | 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 62 6c 6f 63 6b 28 69 | ..*/.void.set_fcyc_cache_block(i |
| 6c20 | 6e 74 20 62 79 74 65 73 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 63 6f 6d 70 | nt.bytes);../*...*.set_fcyc_comp |
| 6c40 | 65 6e 73 61 74 65 2d 20 57 68 65 6e 20 73 65 74 2c 20 77 69 6c 6c 20 61 74 74 65 6d 70 74 20 74 | ensate-.When.set,.will.attempt.t |
| 6c60 | 6f 20 63 6f 6d 70 65 6e 73 61 74 65 20 66 6f 72 20 0a 20 2a 20 20 20 20 20 74 69 6d 65 72 20 69 | o.compensate.for...*.....timer.i |
| 6c80 | 6e 74 65 72 72 75 70 74 20 6f 76 65 72 68 65 61 64 20 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c | nterrupt.overhead...*.....Defaul |
| 6ca0 | 74 20 3d 20 30 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 63 6f 6d 70 65 6e 73 61 | t.=.0..*/.void.set_fcyc_compensa |
| 6cc0 | 74 65 28 69 6e 74 20 63 6f 6d 70 65 6e 73 61 74 65 5f 61 72 67 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 | te(int.compensate_arg);../*...*. |
| 6ce0 | 73 65 74 5f 66 63 79 63 5f 6b 20 2d 20 56 61 6c 75 65 20 6f 66 20 4b 20 69 6e 20 4b 2d 62 65 73 | set_fcyc_k.-.Value.of.K.in.K-bes |
| 6d00 | 74 20 6d 65 61 73 75 72 65 6d 65 6e 74 20 73 63 68 65 6d 65 0a 20 2a 20 20 20 20 20 44 65 66 61 | t.measurement.scheme..*.....Defa |
| 6d20 | 75 6c 74 20 3d 20 33 0a 20 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 6b 28 69 6e 74 20 | ult.=.3..*/.void.set_fcyc_k(int. |
| 6d40 | 6b 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 5f 6d 61 78 73 61 6d 70 6c 65 73 20 | k);../*...*.set_fcyc_maxsamples. |
| 6d60 | 2d 20 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 73 61 6d 70 6c 65 73 20 61 74 74 65 | -.Maximum.number.of.samples.atte |
| 6d80 | 6d 70 74 69 6e 67 20 74 6f 20 66 69 6e 64 20 0a 20 2a 20 20 20 20 20 4b 2d 62 65 73 74 20 77 69 | mpting.to.find...*.....K-best.wi |
| 6da0 | 74 68 69 6e 20 73 6f 6d 65 20 74 6f 6c 65 72 61 6e 63 65 2e 0a 20 2a 20 20 20 20 20 57 68 65 6e | thin.some.tolerance...*.....When |
| 6dc0 | 20 65 78 63 65 65 64 65 64 2c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 62 65 73 74 20 73 61 6d 70 | .exceeded,.just.return.best.samp |
| 6de0 | 6c 65 20 66 6f 75 6e 64 2e 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 32 30 0a 20 2a | le.found...*.....Default.=.20..* |
| 6e00 | 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 6d 61 78 73 61 6d 70 6c 65 73 28 69 6e 74 20 6d | /.void.set_fcyc_maxsamples(int.m |
| 6e20 | 61 78 73 61 6d 70 6c 65 73 5f 61 72 67 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 73 65 74 5f 66 63 79 63 | axsamples_arg);../*...*.set_fcyc |
| 6e40 | 5f 65 70 73 69 6c 6f 6e 20 2d 20 54 6f 6c 65 72 61 6e 63 65 20 72 65 71 75 69 72 65 64 20 66 6f | _epsilon.-.Tolerance.required.fo |
| 6e60 | 72 20 4b 2d 62 65 73 74 0a 20 2a 20 20 20 20 20 44 65 66 61 75 6c 74 20 3d 20 30 2e 30 31 0a 20 | r.K-best..*.....Default.=.0.01.. |
| 6e80 | 2a 2f 0a 76 6f 69 64 20 73 65 74 5f 66 63 79 63 5f 65 70 73 69 6c 6f 6e 28 64 6f 75 62 6c 65 20 | */.void.set_fcyc_epsilon(double. |
| 6ea0 | 65 70 73 69 6c 6f 6e 5f 61 72 67 29 3b 0a 0a 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | epsilon_arg);................... |
| 6ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7000 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 63 79 63 2e 6f 00 00 00 00 00 00 00 00 | malloclab-handout/fcyc.o........ |
| 7020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7060 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 7080 | 30 30 30 36 36 32 30 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 34 33 32 00 20 30 00 00 00 | 0006620.12507032412.014432..0... |
| 70a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7100 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 7120 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 7140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 71e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7200 | 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 | .ELF............................ |
| 7220 | 8c 05 00 00 00 00 00 00 34 00 00 00 00 00 28 00 0d 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........4.....(................. |
| 7240 | 8b 0d 04 00 00 00 8b 15 14 00 00 00 56 a1 08 00 00 00 53 dd 44 24 0c 39 d1 7d 6d dd 1c c8 89 ca | ............V.....S.D$.9.}m..... |
| 7260 | 83 c1 01 85 d2 89 0d 04 00 00 00 7e 57 8d 34 d5 f8 ff ff ff 8d 1c 30 dd 03 8d 4c 30 08 dd 01 d9 | ...........~W.4.......0...L0.... |
| 7280 | c9 8d 44 30 f8 db e9 77 1f dd d8 dd d8 eb 35 90 dd 00 89 c3 8d 48 08 83 e8 08 dd 40 10 d9 c9 db | ..D0...w......5......H.....@.... |
| 72a0 | e9 76 1d d9 c9 eb 09 90 d9 c9 8d b6 00 00 00 00 dd 1b 83 ea 01 dd 19 75 d7 eb 09 90 8d 74 26 00 | .v.....................u.....t&. |
| 72c0 | dd d8 dd d8 5b 5e c3 90 8d 9a ff ff ff 1f dd 04 d8 df e9 76 0b 83 ea 01 dd 1c d8 eb 83 8d 76 00 | ....[^.............v..........v. |
| 72e0 | dd d8 83 c1 01 5b 89 0d 04 00 00 00 5e c3 66 90 8b 15 14 00 00 00 31 c0 39 15 04 00 00 00 7c 1e | .....[......^.f.......1.9.....|. |
| 7300 | d9 e8 a1 08 00 00 00 dc 05 08 00 00 00 dc 08 dd 44 d0 f8 d9 c9 31 c0 df e9 dd d8 0f 93 c0 f3 c3 | ................D....1.......... |
| 7320 | 57 56 53 83 ec 10 8b 35 00 00 00 00 a1 0c 00 00 00 8b 1d 00 00 00 00 8b 3d 04 00 00 00 c1 ee 02 | WVS....5................=....... |
| 7340 | 85 c0 74 29 83 e7 fc 89 fa 01 c2 39 c2 76 11 8d 0c b5 00 00 00 00 66 90 03 18 01 c8 39 c2 77 f8 | ..t).......9.v........f.....9.w. |
| 7360 | 89 1d 00 00 00 00 83 c4 10 5b 5e 5f c3 89 3c 24 e8 fc ff ff ff 85 c0 a3 0c 00 00 00 75 c6 a1 00 | .........[^_..<$............u... |
| 7380 | 00 00 00 c7 44 24 08 3e 00 00 00 c7 44 24 04 01 00 00 00 c7 04 24 00 00 00 00 89 44 24 0c e8 fc | ....D$.>....D$.......$.....D$... |
| 73a0 | ff ff ff c7 04 24 01 00 00 00 e8 fc ff ff ff 90 56 53 83 ec 14 a1 08 00 00 00 8b 5c 24 20 8b 74 | .....$..........VS.........\$..t |
| 73c0 | 24 24 85 c0 74 08 89 04 24 e8 fc ff ff ff a1 14 00 00 00 c7 44 24 04 08 00 00 00 89 04 24 e8 fc | $$..t...$...........D$.......$.. |
| 73e0 | ff ff ff 8b 0d 14 00 00 00 c7 05 04 00 00 00 00 00 00 00 85 c9 a3 08 00 00 00 74 77 eb 2f 66 90 | ..........................tw./f. |
| 7400 | e8 fc ff ff ff 89 34 24 ff d3 e8 fc ff ff ff dd 1c 24 e8 29 fe ff ff e8 d4 fe ff ff 85 c0 75 60 | ......4$.........$.)..........u` |
| 7420 | a1 10 00 00 00 39 05 04 00 00 00 7d 53 8b 15 10 00 00 00 85 d2 74 c9 e8 e4 fe ff ff eb c2 66 90 | .....9.....}S........t........f. |
| 7440 | e8 db fe ff ff e8 fc ff ff ff 89 34 24 ff d3 90 e8 fc ff ff ff dd 1c 24 e8 e3 fd ff ff e8 8e fe | ...........4$..........$........ |
| 7460 | ff ff 85 c0 75 1a a1 10 00 00 00 39 05 04 00 00 00 7d 0d a1 10 00 00 00 85 c0 74 c9 eb c0 66 90 | ....u......9.....}........t...f. |
| 7480 | a1 08 00 00 00 dd 00 89 04 24 dd 5c 24 08 e8 fc ff ff ff c7 05 08 00 00 00 00 00 00 00 dd 44 24 | .........$.\$.................D$ |
| 74a0 | 08 83 c4 14 5b 5e c3 89 f6 8d bc 27 00 00 00 00 8b 44 24 04 a3 10 00 00 00 c3 8d b6 00 00 00 00 | ....[^.....'.....D$............. |
| 74c0 | 83 ec 1c 8b 44 24 20 3b 05 04 00 00 00 74 20 a3 04 00 00 00 a1 0c 00 00 00 85 c0 74 12 89 04 24 | ....D$.;.....t.............t...$ |
| 74e0 | e8 fc ff ff ff c7 05 0c 00 00 00 00 00 00 00 83 c4 1c c3 8d b6 00 00 00 00 8d bc 27 00 00 00 00 | ...........................'.... |
| 7500 | 8b 44 24 04 a3 00 00 00 00 c3 8d b6 00 00 00 00 8b 44 24 04 a3 14 00 00 00 c3 8d b6 00 00 00 00 | .D$..............D$............. |
| 7520 | 8b 44 24 04 a3 14 00 00 00 c3 8d b6 00 00 00 00 8b 44 24 04 a3 10 00 00 00 c3 8d b6 00 00 00 00 | .D$..............D$............. |
| 7540 | dd 44 24 04 dd 1d 08 00 00 00 c3 00 00 00 00 00 20 00 00 00 00 00 08 00 7b 14 ae 47 e1 7a 84 3f | .D$.....................{..G.z.? |
| 7560 | 14 00 00 00 03 00 00 00 46 61 74 61 6c 20 65 72 72 6f 72 2e 20 20 4d 61 6c 6c 6f 63 20 72 65 74 | ........Fatal.error...Malloc.ret |
| 7580 | 75 72 6e 65 64 20 6e 75 6c 6c 20 77 68 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 63 6c 65 61 72 20 | urned.null.when.trying.to.clear. |
| 75a0 | 63 61 63 68 65 0a 00 00 47 43 43 3a 20 28 55 62 75 6e 74 75 20 34 2e 38 2e 31 2d 32 75 62 75 6e | cache...GCC:.(Ubuntu.4.8.1-2ubun |
| 75c0 | 74 75 31 7e 31 32 2e 30 34 29 20 34 2e 38 2e 31 00 00 00 00 14 00 00 00 00 00 00 00 01 7a 52 00 | tu1~12.04).4.8.1.............zR. |
| 75e0 | 01 7c 08 01 1b 0c 04 04 88 01 00 00 2c 00 00 00 1c 00 00 00 00 00 00 00 ae 00 00 00 00 4d 0e 08 | .|..........,................M.. |
| 7600 | 86 02 46 0e 0c 83 03 02 72 0a c3 0e 08 41 c6 0e 04 42 0b 5e c3 0e 08 47 c6 0e 04 00 10 00 00 00 | ..F.....r....A...B.^...G........ |
| 7620 | 4c 00 00 00 b0 00 00 00 30 00 00 00 00 00 00 00 34 00 00 00 60 00 00 00 e0 00 00 00 8f 00 00 00 | L.......0.......4...`........... |
| 7640 | 00 41 0e 08 87 02 41 0e 0c 86 03 41 0e 10 83 04 43 0e 20 02 43 0a 0e 10 41 c3 0e 0c 41 c6 0e 08 | .A....A....A....C...C...A...A... |
| 7660 | 41 c7 0e 04 41 0b 00 00 28 00 00 00 98 00 00 00 70 01 00 00 f7 00 00 00 00 41 0e 08 86 02 41 0e | A...A...(.......p........A....A. |
| 7680 | 0c 83 03 43 0e 20 02 ef 0e 0c 41 c3 0e 08 41 c6 0e 04 00 00 10 00 00 00 c4 00 00 00 70 02 00 00 | ...C......A...A.............p... |
| 76a0 | 0a 00 00 00 00 00 00 00 14 00 00 00 d8 00 00 00 80 02 00 00 33 00 00 00 00 43 0e 20 6f 0e 04 00 | ....................3....C..o... |
| 76c0 | 10 00 00 00 f0 00 00 00 c0 02 00 00 0a 00 00 00 00 00 00 00 10 00 00 00 04 01 00 00 d0 02 00 00 | ................................ |
| 76e0 | 0a 00 00 00 00 00 00 00 10 00 00 00 18 01 00 00 e0 02 00 00 0a 00 00 00 00 00 00 00 10 00 00 00 | ................................ |
| 7700 | 2c 01 00 00 f0 02 00 00 0a 00 00 00 00 00 00 00 10 00 00 00 40 01 00 00 00 03 00 00 0b 00 00 00 | ,...................@........... |
| 7720 | 00 00 00 00 00 2e 73 79 6d 74 61 62 00 2e 73 74 72 74 61 62 00 2e 73 68 73 74 72 74 61 62 00 2e | ......symtab..strtab..shstrtab.. |
| 7740 | 72 65 6c 2e 74 65 78 74 00 2e 64 61 74 61 00 2e 62 73 73 00 2e 72 6f 64 61 74 61 2e 73 74 72 31 | rel.text..data..bss..rodata.str1 |
| 7760 | 2e 34 00 2e 63 6f 6d 6d 65 6e 74 00 2e 6e 6f 74 65 2e 47 4e 55 2d 73 74 61 63 6b 00 2e 72 65 6c | .4..comment..note.GNU-stack..rel |
| 7780 | 2e 65 68 5f 66 72 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .eh_frame....................... |
| 77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00 00 06 00 00 00 | ................................ |
| 77c0 | 00 00 00 00 40 00 00 00 0b 03 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 1b 00 00 00 | ....@........................... |
| 77e0 | 09 00 00 00 00 00 00 00 00 00 00 00 a0 0b 00 00 98 01 00 00 0b 00 00 00 01 00 00 00 04 00 00 00 | ................................ |
| 7800 | 08 00 00 00 25 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 50 03 00 00 18 00 00 00 00 00 00 00 | ....%...............P........... |
| 7820 | 00 00 00 00 08 00 00 00 00 00 00 00 2b 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 68 03 00 00 | ............+...............h... |
| 7840 | 18 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 30 00 00 00 01 00 00 00 32 00 00 00 | ....................0.......2... |
| 7860 | 00 00 00 00 68 03 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 3f 00 00 00 | ....h...?...................?... |
| 7880 | 01 00 00 00 30 00 00 00 00 00 00 00 a7 03 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 | ....0...........*............... |
| 78a0 | 01 00 00 00 48 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 d1 03 00 00 00 00 00 00 00 00 00 00 | ....H........................... |
| 78c0 | 00 00 00 00 01 00 00 00 00 00 00 00 5c 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 d4 03 00 00 | ............\................... |
| 78e0 | 50 01 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 58 00 00 00 09 00 00 00 00 00 00 00 | P...................X........... |
| 7900 | 00 00 00 00 38 0d 00 00 58 00 00 00 0b 00 00 00 08 00 00 00 04 00 00 00 08 00 00 00 11 00 00 00 | ....8...X....................... |
| 7920 | 03 00 00 00 00 00 00 00 00 00 00 00 24 05 00 00 66 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 | ............$...f............... |
| 7940 | 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 94 07 00 00 90 02 00 00 0c 00 00 00 | ................................ |
| 7960 | 17 00 00 00 04 00 00 00 10 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 24 0a 00 00 | ............................$... |
| 7980 | 7c 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |............................... |
| 79a0 | 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 f1 ff 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 79c0 | 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 79e0 | 03 00 04 00 08 00 00 00 00 00 00 00 ae 00 00 00 02 00 01 00 13 00 00 00 04 00 00 00 04 00 00 00 | ................................ |
| 7a00 | 01 00 04 00 1f 00 00 00 14 00 00 00 04 00 00 00 01 00 03 00 25 00 00 00 08 00 00 00 04 00 00 00 | ....................%........... |
| 7a20 | 01 00 04 00 2c 00 00 00 b0 00 00 00 30 00 00 00 02 00 01 00 3a 00 00 00 08 00 00 00 08 00 00 00 | ....,.......0.......:........... |
| 7a40 | 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00 42 00 00 00 e0 00 00 00 8f 00 00 00 | ....................B........... |
| 7a60 | 02 00 01 00 48 00 00 00 00 00 00 00 04 00 00 00 01 00 03 00 54 00 00 00 0c 00 00 00 04 00 00 00 | ....H...............T........... |
| 7a80 | 01 00 04 00 5e 00 00 00 00 00 00 00 04 00 00 00 01 00 04 00 63 00 00 00 04 00 00 00 04 00 00 00 | ....^...............c........... |
| 7aa0 | 01 00 03 00 6f 00 00 00 14 00 00 00 04 00 00 00 01 00 04 00 7a 00 00 00 10 00 00 00 04 00 00 00 | ....o...............z........... |
| 7ac0 | 01 00 03 00 85 00 00 00 10 00 00 00 04 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ae0 | 03 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7b00 | 03 00 06 00 91 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 98 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7b20 | 10 00 00 00 9f 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 a6 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7b40 | 10 00 00 00 ab 00 00 00 70 01 00 00 f7 00 00 00 12 00 01 00 b0 00 00 00 00 00 00 00 00 00 00 00 | ........p....................... |
| 7b60 | 10 00 00 00 b5 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 bc 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7b80 | 10 00 00 00 cf 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ba0 | 10 00 00 00 ee 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 fa 00 00 00 70 02 00 00 0a 00 00 00 | ........................p....... |
| 7bc0 | 12 00 01 00 0f 01 00 00 80 02 00 00 33 00 00 00 12 00 01 00 23 01 00 00 c0 02 00 00 0a 00 00 00 | ............3.......#........... |
| 7be0 | 12 00 01 00 38 01 00 00 d0 02 00 00 0a 00 00 00 12 00 01 00 4c 01 00 00 e0 02 00 00 0a 00 00 00 | ....8...............L........... |
| 7c00 | 12 00 01 00 57 01 00 00 f0 02 00 00 0a 00 00 00 12 00 01 00 6b 01 00 00 00 03 00 00 0b 00 00 00 | ....W...............k........... |
| 7c20 | 12 00 01 00 00 66 63 79 63 2e 63 00 61 64 64 5f 73 61 6d 70 6c 65 00 73 61 6d 70 6c 65 63 6f 75 | .....fcyc.c.add_sample.samplecou |
| 7c40 | 6e 74 00 6b 62 65 73 74 00 76 61 6c 75 65 73 00 68 61 73 5f 63 6f 6e 76 65 72 67 65 64 00 65 70 | nt.kbest.values.has_converged.ep |
| 7c60 | 73 69 6c 6f 6e 00 63 6c 65 61 72 00 63 61 63 68 65 5f 62 6c 6f 63 6b 00 63 61 63 68 65 5f 62 75 | silon.clear.cache_block.cache_bu |
| 7c80 | 66 00 73 69 6e 6b 00 63 61 63 68 65 5f 62 79 74 65 73 00 63 6f 6d 70 65 6e 73 61 74 65 00 6d 61 | f.sink.cache_bytes.compensate.ma |
| 7ca0 | 78 73 61 6d 70 6c 65 73 00 63 6c 65 61 72 5f 63 61 63 68 65 00 6d 61 6c 6c 6f 63 00 73 74 64 65 | xsamples.clear_cache.malloc.stde |
| 7cc0 | 72 72 00 66 77 72 69 74 65 00 65 78 69 74 00 66 63 79 63 00 66 72 65 65 00 63 61 6c 6c 6f 63 00 | rr.fwrite.exit.fcyc.free.calloc. |
| 7ce0 | 73 74 61 72 74 5f 63 6f 6d 70 5f 63 6f 75 6e 74 65 72 00 67 65 74 5f 63 6f 6d 70 5f 63 6f 75 6e | start_comp_counter.get_comp_coun |
| 7d00 | 74 65 72 00 73 74 61 72 74 5f 63 6f 75 6e 74 65 72 00 67 65 74 5f 63 6f 75 6e 74 65 72 00 73 65 | ter.start_counter.get_counter.se |
| 7d20 | 74 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 00 73 65 74 5f 66 63 79 63 5f 63 61 63 68 | t_fcyc_clear_cache.set_fcyc_cach |
| 7d40 | 65 5f 73 69 7a 65 00 73 65 74 5f 66 63 79 63 5f 63 61 63 68 65 5f 62 6c 6f 63 6b 00 73 65 74 5f | e_size.set_fcyc_cache_block.set_ |
| 7d60 | 66 63 79 63 5f 63 6f 6d 70 65 6e 73 61 74 65 00 73 65 74 5f 66 63 79 63 5f 6b 00 73 65 74 5f 66 | fcyc_compensate.set_fcyc_k.set_f |
| 7d80 | 63 79 63 5f 6d 61 78 73 61 6d 70 6c 65 73 00 73 65 74 5f 66 63 79 63 5f 65 70 73 69 6c 6f 6e 00 | cyc_maxsamples.set_fcyc_epsilon. |
| 7da0 | 02 00 00 00 01 04 00 00 08 00 00 00 01 03 00 00 0e 00 00 00 01 04 00 00 27 00 00 00 01 04 00 00 | ........................'....... |
| 7dc0 | a8 00 00 00 01 04 00 00 b2 00 00 00 01 03 00 00 ba 00 00 00 01 04 00 00 c3 00 00 00 01 04 00 00 | ................................ |
| 7de0 | c9 00 00 00 01 03 00 00 e8 00 00 00 01 03 00 00 ed 00 00 00 01 04 00 00 f3 00 00 00 01 04 00 00 | ................................ |
| 7e00 | f9 00 00 00 01 03 00 00 22 01 00 00 01 04 00 00 31 01 00 00 02 17 00 00 38 01 00 00 01 04 00 00 | ........".......1.......8....... |
| 7e20 | 3f 01 00 00 01 18 00 00 56 01 00 00 01 0b 00 00 5f 01 00 00 02 19 00 00 6b 01 00 00 02 1a 00 00 | ?.......V......._.......k....... |
| 7e40 | 76 01 00 00 01 04 00 00 8a 01 00 00 02 1c 00 00 8f 01 00 00 01 03 00 00 9f 01 00 00 02 1d 00 00 | v............................... |
| 7e60 | a5 01 00 00 01 04 00 00 ab 01 00 00 01 04 00 00 b6 01 00 00 01 04 00 00 c1 01 00 00 02 1e 00 00 | ................................ |
| 7e80 | cb 01 00 00 02 1f 00 00 e1 01 00 00 01 03 00 00 e7 01 00 00 01 04 00 00 ef 01 00 00 01 04 00 00 | ................................ |
| 7ea0 | 06 02 00 00 02 20 00 00 11 02 00 00 02 21 00 00 27 02 00 00 01 03 00 00 2d 02 00 00 01 04 00 00 | .............!..'.......-....... |
| 7ec0 | 34 02 00 00 01 04 00 00 41 02 00 00 01 04 00 00 4f 02 00 00 02 1c 00 00 55 02 00 00 01 04 00 00 | 4.......A.......O.......U....... |
| 7ee0 | 75 02 00 00 01 04 00 00 89 02 00 00 01 03 00 00 90 02 00 00 01 03 00 00 95 02 00 00 01 04 00 00 | u............................... |
| 7f00 | a1 02 00 00 02 1c 00 00 a7 02 00 00 01 04 00 00 c5 02 00 00 01 03 00 00 d5 02 00 00 01 04 00 00 | ................................ |
| 7f20 | e5 02 00 00 01 03 00 00 f5 02 00 00 01 03 00 00 06 03 00 00 01 03 00 00 20 00 00 00 02 02 00 00 | ................................ |
| 7f40 | 50 00 00 00 02 02 00 00 64 00 00 00 02 02 00 00 9c 00 00 00 02 02 00 00 c8 00 00 00 02 02 00 00 | P.......d....................... |
| 7f60 | dc 00 00 00 02 02 00 00 f4 00 00 00 02 02 00 00 08 01 00 00 02 02 00 00 1c 01 00 00 02 02 00 00 | ................................ |
| 7f80 | 30 01 00 00 02 02 00 00 44 01 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 0.......D....................... |
| 7fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8000 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 73 65 63 73 2e 63 00 00 00 00 00 00 00 | malloclab-handout/fsecs.c....... |
| 8020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8060 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 8080 | 30 30 30 32 33 34 31 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 35 37 31 00 20 30 00 00 00 | 0002341.12507032412.014571..0... |
| 80a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 80c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 80e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8100 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 8120 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 8140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8200 | 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a | /****************************..* |
| 8220 | 20 48 69 67 68 2d 6c 65 76 65 6c 20 74 69 6d 69 6e 67 20 77 72 61 70 70 65 72 73 0a 20 2a 2a 2a | .High-level.timing.wrappers..*** |
| 8240 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 23 69 6e 63 6c | *************************/.#incl |
| 8260 | 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 22 66 73 65 63 73 2e 68 22 | ude.<stdio.h>.#include."fsecs.h" |
| 8280 | 0a 23 69 6e 63 6c 75 64 65 20 22 66 63 79 63 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 63 6c 6f | .#include."fcyc.h".#include."clo |
| 82a0 | 63 6b 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 66 74 69 6d 65 72 2e 68 22 0a 23 69 6e 63 6c 75 | ck.h".#include."ftimer.h".#inclu |
| 82c0 | 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 0a 0a 73 74 61 74 69 63 20 64 6f 75 62 6c 65 20 4d 68 7a | de."config.h"..static.double.Mhz |
| 82e0 | 3b 20 20 2f 2a 20 65 73 74 69 6d 61 74 65 64 20 43 50 55 20 63 6c 6f 63 6b 20 66 72 65 71 75 65 | ;../*.estimated.CPU.clock.freque |
| 8300 | 6e 63 79 20 2a 2f 0a 0a 65 78 74 65 72 6e 20 69 6e 74 20 76 65 72 62 6f 73 65 3b 20 2f 2a 20 2d | ncy.*/..extern.int.verbose;./*.- |
| 8320 | 76 20 6f 70 74 69 6f 6e 20 69 6e 20 6d 64 72 69 76 65 72 2e 63 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 | v.option.in.mdriver.c.*/../*..*. |
| 8340 | 69 6e 69 74 5f 66 73 65 63 73 20 2d 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 74 69 6d 69 | init_fsecs.-.initialize.the.timi |
| 8360 | 6e 67 20 70 61 63 6b 61 67 65 0a 20 2a 2f 0a 76 6f 69 64 20 69 6e 69 74 5f 66 73 65 63 73 28 76 | ng.package..*/.void.init_fsecs(v |
| 8380 | 6f 69 64 29 0a 7b 0a 20 20 20 20 4d 68 7a 20 3d 20 30 3b 20 2f 2a 20 6b 65 65 70 20 67 63 63 20 | oid).{.....Mhz.=.0;./*.keep.gcc. |
| 83a0 | 2d 57 61 6c 6c 20 68 61 70 70 79 20 2a 2f 0a 0a 23 69 66 20 55 53 45 5f 46 43 59 43 0a 20 20 20 | -Wall.happy.*/..#if.USE_FCYC.... |
| 83c0 | 20 69 66 20 28 76 65 72 62 6f 73 65 29 0a 09 70 72 69 6e 74 66 28 22 4d 65 61 73 75 72 69 6e 67 | .if.(verbose)..printf("Measuring |
| 83e0 | 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 69 74 68 20 61 20 63 79 63 6c 65 20 63 6f 75 6e 74 65 | .performance.with.a.cycle.counte |
| 8400 | 72 2e 5c 6e 22 29 3b 0a 0a 20 20 20 20 2f 2a 20 73 65 74 20 6b 65 79 20 70 61 72 61 6d 65 74 65 | r.\n");....../*.set.key.paramete |
| 8420 | 72 73 20 66 6f 72 20 74 68 65 20 66 63 79 63 20 70 61 63 6b 61 67 65 20 2a 2f 0a 20 20 20 20 73 | rs.for.the.fcyc.package.*/.....s |
| 8440 | 65 74 5f 66 63 79 63 5f 6d 61 78 73 61 6d 70 6c 65 73 28 32 30 29 3b 20 0a 20 20 20 20 73 65 74 | et_fcyc_maxsamples(20);......set |
| 8460 | 5f 66 63 79 63 5f 63 6c 65 61 72 5f 63 61 63 68 65 28 31 29 3b 0a 20 20 20 20 73 65 74 5f 66 63 | _fcyc_clear_cache(1);.....set_fc |
| 8480 | 79 63 5f 63 6f 6d 70 65 6e 73 61 74 65 28 31 29 3b 0a 20 20 20 20 73 65 74 5f 66 63 79 63 5f 65 | yc_compensate(1);.....set_fcyc_e |
| 84a0 | 70 73 69 6c 6f 6e 28 30 2e 30 31 29 3b 0a 20 20 20 20 73 65 74 5f 66 63 79 63 5f 6b 28 33 29 3b | psilon(0.01);.....set_fcyc_k(3); |
| 84c0 | 0a 20 20 20 20 4d 68 7a 20 3d 20 6d 68 7a 28 76 65 72 62 6f 73 65 20 3e 20 30 29 3b 0a 23 65 6c | .....Mhz.=.mhz(verbose.>.0);.#el |
| 84e0 | 69 66 20 55 53 45 5f 49 54 49 4d 45 52 0a 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 29 0a 09 | if.USE_ITIMER.....if.(verbose).. |
| 8500 | 70 72 69 6e 74 66 28 22 4d 65 61 73 75 72 69 6e 67 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 69 | printf("Measuring.performance.wi |
| 8520 | 74 68 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 2e 5c 6e 22 29 3b 0a 23 65 6c 69 | th.the.interval.timer.\n");.#eli |
| 8540 | 66 20 55 53 45 5f 47 45 54 54 4f 44 0a 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 29 0a 09 70 | f.USE_GETTOD.....if.(verbose)..p |
| 8560 | 72 69 6e 74 66 28 22 4d 65 61 73 75 72 69 6e 67 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 69 74 | rintf("Measuring.performance.wit |
| 8580 | 68 20 67 65 74 74 69 6d 65 6f 66 64 61 79 28 29 2e 5c 6e 22 29 3b 0a 23 65 6e 64 69 66 0a 7d 0a | h.gettimeofday().\n");.#endif.}. |
| 85a0 | 0a 2f 2a 0a 20 2a 20 66 73 65 63 73 20 2d 20 52 65 74 75 72 6e 20 74 68 65 20 72 75 6e 6e 69 6e | ./*..*.fsecs.-.Return.the.runnin |
| 85c0 | 67 20 74 69 6d 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 20 28 69 6e 20 73 65 63 6f 6e | g.time.of.a.function.f.(in.secon |
| 85e0 | 64 73 29 0a 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 73 65 63 73 28 66 73 65 63 73 5f 74 65 73 74 5f | ds)..*/.double.fsecs(fsecs_test_ |
| 8600 | 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 20 2a 61 72 67 70 29 20 0a 7b 0a 23 69 66 20 55 53 45 5f | funct.f,.void.*argp)..{.#if.USE_ |
| 8620 | 46 43 59 43 0a 20 20 20 20 64 6f 75 62 6c 65 20 63 79 63 6c 65 73 20 3d 20 66 63 79 63 28 66 2c | FCYC.....double.cycles.=.fcyc(f, |
| 8640 | 20 61 72 67 70 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 63 79 63 6c 65 73 2f 28 4d 68 7a 2a 31 | .argp);.....return.cycles/(Mhz*1 |
| 8660 | 65 36 29 3b 0a 23 65 6c 69 66 20 55 53 45 5f 49 54 49 4d 45 52 0a 20 20 20 20 72 65 74 75 72 6e | e6);.#elif.USE_ITIMER.....return |
| 8680 | 20 66 74 69 6d 65 72 5f 69 74 69 6d 65 72 28 66 2c 20 61 72 67 70 2c 20 31 30 29 3b 0a 23 65 6c | .ftimer_itimer(f,.argp,.10);.#el |
| 86a0 | 69 66 20 55 53 45 5f 47 45 54 54 4f 44 0a 20 20 20 20 72 65 74 75 72 6e 20 66 74 69 6d 65 72 5f | if.USE_GETTOD.....return.ftimer_ |
| 86c0 | 67 65 74 74 6f 64 28 66 2c 20 61 72 67 70 2c 20 31 30 29 3b 0a 23 65 6e 64 69 66 20 0a 7d 0a 0a | gettod(f,.argp,.10);.#endif..}.. |
| 86e0 | 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8800 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 73 65 63 73 2e 68 00 00 00 00 00 00 00 | malloclab-handout/fsecs.h....... |
| 8820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 8880 | 30 30 30 30 31 36 30 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 35 37 33 00 20 30 00 00 00 | 0000160.12507032412.014573..0... |
| 88a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8900 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 8920 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 8940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8a00 | 74 79 70 65 64 65 66 20 76 6f 69 64 20 28 2a 66 73 65 63 73 5f 74 65 73 74 5f 66 75 6e 63 74 29 | typedef.void.(*fsecs_test_funct) |
| 8a20 | 28 76 6f 69 64 20 2a 29 3b 0a 0a 76 6f 69 64 20 69 6e 69 74 5f 66 73 65 63 73 28 76 6f 69 64 29 | (void.*);..void.init_fsecs(void) |
| 8a40 | 3b 0a 64 6f 75 62 6c 65 20 66 73 65 63 73 28 66 73 65 63 73 5f 74 65 73 74 5f 66 75 6e 63 74 20 | ;.double.fsecs(fsecs_test_funct. |
| 8a60 | 66 2c 20 76 6f 69 64 20 2a 61 72 67 70 29 3b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | f,.void.*argp);................. |
| 8a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8c00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 73 65 63 73 2e 6f 00 00 00 00 00 00 00 | malloclab-handout/fsecs.o....... |
| 8c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 8c80 | 30 30 30 32 34 31 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 36 30 36 00 20 30 00 00 00 | 0002414.12507032412.014606..0... |
| 8ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 8d20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 8d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8e00 | 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 | .ELF............................ |
| 8e20 | a0 01 00 00 00 00 00 00 34 00 00 00 00 00 28 00 0d 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........4.....(................. |
| 8e40 | a1 00 00 00 00 d9 ee dd 1d 00 00 00 00 85 c0 75 07 c3 8d b6 00 00 00 00 83 ec 1c c7 04 24 00 00 | ...............u.............$.. |
| 8e60 | 00 00 e8 fc ff ff ff 83 c4 1c c3 90 8d 74 26 00 83 ec 1c 8b 44 24 24 c7 44 24 08 0a 00 00 00 89 | .............t&.....D$$.D$...... |
| 8e80 | 44 24 04 8b 44 24 20 89 04 24 e8 fc ff ff ff 83 c4 1c c3 00 00 00 00 00 4d 65 61 73 75 72 69 6e | D$..D$...$..............Measurin |
| 8ea0 | 67 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 69 74 68 20 67 65 74 74 69 6d 65 6f 66 64 61 79 28 | g.performance.with.gettimeofday( |
| 8ec0 | 29 2e 00 00 47 43 43 3a 20 28 55 62 75 6e 74 75 20 34 2e 38 2e 31 2d 32 75 62 75 6e 74 75 31 7e | )...GCC:.(Ubuntu.4.8.1-2ubuntu1~ |
| 8ee0 | 31 32 2e 30 34 29 20 34 2e 38 2e 31 00 00 00 00 14 00 00 00 00 00 00 00 01 7a 52 00 01 7c 08 01 | 12.04).4.8.1.............zR..|.. |
| 8f00 | 1b 0c 04 04 88 01 00 00 14 00 00 00 1c 00 00 00 00 00 00 00 2b 00 00 00 00 5b 0e 20 4f 0e 04 00 | ....................+....[..O... |
| 8f20 | 14 00 00 00 34 00 00 00 30 00 00 00 23 00 00 00 00 43 0e 20 5f 0e 04 00 00 2e 73 79 6d 74 61 62 | ....4...0...#....C.._.....symtab |
| 8f40 | 00 2e 73 74 72 74 61 62 00 2e 73 68 73 74 72 74 61 62 00 2e 72 65 6c 2e 74 65 78 74 00 2e 64 61 | ..strtab..shstrtab..rel.text..da |
| 8f60 | 74 61 00 2e 62 73 73 00 2e 72 6f 64 61 74 61 2e 73 74 72 31 2e 34 00 2e 63 6f 6d 6d 65 6e 74 00 | ta..bss..rodata.str1.4..comment. |
| 8f80 | 2e 6e 6f 74 65 2e 47 4e 55 2d 73 74 61 63 6b 00 2e 72 65 6c 2e 65 68 5f 66 72 61 6d 65 00 00 00 | .note.GNU-stack..rel.eh_frame... |
| 8fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8fc0 | 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00 40 00 00 00 53 00 00 00 | ........................@...S... |
| 8fe0 | 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 1b 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9000 | d4 04 00 00 28 00 00 00 0b 00 00 00 01 00 00 00 04 00 00 00 08 00 00 00 25 00 00 00 01 00 00 00 | ....(...................%....... |
| 9020 | 03 00 00 00 00 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 | ................................ |
| 9040 | 2b 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 98 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 | +............................... |
| 9060 | 08 00 00 00 00 00 00 00 30 00 00 00 01 00 00 00 32 00 00 00 00 00 00 00 98 00 00 00 2b 00 00 00 | ........0.......2...........+... |
| 9080 | 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 3f 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 | ................?.......0....... |
| 90a0 | c3 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 48 00 00 00 01 00 00 00 | ....*...................H....... |
| 90c0 | 00 00 00 00 00 00 00 00 ed 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 | ................................ |
| 90e0 | 5c 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 f0 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 | \...................H........... |
| 9100 | 04 00 00 00 00 00 00 00 58 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 fc 04 00 00 10 00 00 00 | ........X....................... |
| 9120 | 0b 00 00 00 08 00 00 00 04 00 00 00 08 00 00 00 11 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9140 | 38 01 00 00 66 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 | 8...f........................... |
| 9160 | 00 00 00 00 00 00 00 00 a8 03 00 00 f0 00 00 00 0c 00 00 00 0a 00 00 00 04 00 00 00 10 00 00 00 | ................................ |
| 9180 | 09 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 98 04 00 00 39 00 00 00 00 00 00 00 00 00 00 00 | ....................9........... |
| 91a0 | 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 | ................................ |
| 91c0 | 00 00 00 00 04 00 f1 ff 00 00 00 00 00 00 00 00 00 00 00 00 03 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
| 91e0 | 00 00 00 00 03 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 04 00 00 00 00 00 00 00 00 00 | ................................ |
| 9200 | 00 00 00 00 03 00 05 00 09 00 00 00 00 00 00 00 08 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 | ................................ |
| 9220 | 00 00 00 00 03 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 08 00 00 00 00 00 00 00 00 00 | ................................ |
| 9240 | 00 00 00 00 03 00 06 00 0d 00 00 00 00 00 00 00 2b 00 00 00 12 00 01 00 18 00 00 00 00 00 00 00 | ................+............... |
| 9260 | 00 00 00 00 10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 25 00 00 00 30 00 00 00 | ........................%...0... |
| 9280 | 23 00 00 00 12 00 01 00 2b 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 66 73 65 63 73 2e 63 | #.......+................fsecs.c |
| 92a0 | 00 4d 68 7a 00 69 6e 69 74 5f 66 73 65 63 73 00 76 65 72 62 6f 73 65 00 70 75 74 73 00 66 73 65 | .Mhz.init_fsecs.verbose.puts.fse |
| 92c0 | 63 73 00 66 74 69 6d 65 72 5f 67 65 74 74 6f 64 00 00 00 00 01 00 00 00 01 0b 00 00 09 00 00 00 | cs.ftimer_gettod................ |
| 92e0 | 01 04 00 00 1e 00 00 00 01 05 00 00 23 00 00 00 02 0c 00 00 4b 00 00 00 02 0e 00 00 20 00 00 00 | ............#.......K........... |
| 9300 | 02 02 00 00 38 00 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....8........................... |
| 9320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 93a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 93c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 93e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9400 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 74 69 6d 65 72 2e 63 00 00 00 00 00 00 | malloclab-handout/ftimer.c...... |
| 9420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9460 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 9480 | 30 30 30 35 33 37 32 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 36 33 00 20 30 00 00 00 | 0005372.12507032412.014763..0... |
| 94a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9500 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 9520 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 9540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 95a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 95c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 95e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9600 | 2f 2a 0a 20 2a 20 66 74 69 6d 65 72 2e 63 20 2d 20 45 73 74 69 6d 61 74 65 20 74 68 65 20 74 69 | /*..*.ftimer.c.-.Estimate.the.ti |
| 9620 | 6d 65 20 28 69 6e 20 73 65 63 6f 6e 64 73 29 20 75 73 65 64 20 62 79 20 61 20 66 75 6e 63 74 69 | me.(in.seconds).used.by.a.functi |
| 9640 | 6f 6e 20 66 20 0a 20 2a 20 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 32 2c | on.f...*...*.Copyright.(c).2002, |
| 9660 | 20 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 44 2e 20 4f 27 48 61 6c 6c 61 72 6f 6e 2c 20 41 6c | .R..Bryant.and.D..O'Hallaron,.Al |
| 9680 | 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 20 2a 20 4d 61 79 20 6e 6f 74 20 62 65 | l.rights.reserved...*.May.not.be |
| 96a0 | 20 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 2c 20 6f 72 20 63 6f 70 69 65 64 20 77 69 74 68 6f | .used,.modified,.or.copied.witho |
| 96c0 | 75 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 69 | ut.permission...*..*.Function.ti |
| 96e0 | 6d 65 72 73 20 74 68 61 74 20 65 73 74 69 6d 61 74 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 | mers.that.estimate.the.running.t |
| 9700 | 69 6d 65 20 28 69 6e 20 73 65 63 6f 6e 64 73 29 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 | ime.(in.seconds).of.a.function.f |
| 9720 | 2e 0a 20 2a 20 20 20 20 66 74 69 6d 65 72 5f 69 74 69 6d 65 72 3a 20 76 65 72 73 69 6f 6e 20 74 | ...*....ftimer_itimer:.version.t |
| 9740 | 68 61 74 20 75 73 65 73 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 0a 20 2a 20 20 | hat.uses.the.interval.timer..*.. |
| 9760 | 20 20 66 74 69 6d 65 72 5f 67 65 74 74 6f 64 3a 20 76 65 72 73 69 6f 6e 20 74 68 61 74 20 75 73 | ..ftimer_gettod:.version.that.us |
| 9780 | 65 73 20 67 65 74 74 69 6d 65 6f 66 64 61 79 0a 20 2a 2f 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 | es.gettimeofday..*/.#include.<st |
| 97a0 | 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 2e 68 3e 0a 23 69 6e | dio.h>.#include.<sys/time.h>.#in |
| 97c0 | 63 6c 75 64 65 20 22 66 74 69 6d 65 72 2e 68 22 0a 0a 2f 2a 20 66 75 6e 63 74 69 6f 6e 20 70 72 | clude."ftimer.h"../*.function.pr |
| 97e0 | 6f 74 6f 74 79 70 65 73 20 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 69 6e 69 74 5f 65 74 69 | ototypes.*/.static.void.init_eti |
| 9800 | 6d 65 28 76 6f 69 64 29 3b 0a 73 74 61 74 69 63 20 64 6f 75 62 6c 65 20 67 65 74 5f 65 74 69 6d | me(void);.static.double.get_etim |
| 9820 | 65 28 76 6f 69 64 29 3b 0a 0a 2f 2a 20 0a 20 2a 20 66 74 69 6d 65 72 5f 69 74 69 6d 65 72 20 2d | e(void);../*...*.ftimer_itimer.- |
| 9840 | 20 55 73 65 20 74 68 65 20 69 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 20 74 6f 20 65 73 74 69 6d | .Use.the.interval.timer.to.estim |
| 9860 | 61 74 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 69 6d 65 0a 20 2a 20 6f 66 20 66 28 61 72 67 | ate.the.running.time..*.of.f(arg |
| 9880 | 70 29 2e 20 52 65 74 75 72 6e 20 74 68 65 20 61 76 65 72 61 67 65 20 6f 66 20 6e 20 72 75 6e 73 | p)..Return.the.average.of.n.runs |
| 98a0 | 2e 20 20 0a 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 74 69 6d 65 72 5f 69 74 69 6d 65 72 28 66 74 69 | .....*/.double.ftimer_itimer(fti |
| 98c0 | 6d 65 72 5f 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 20 2a 61 72 67 70 2c 20 69 6e | mer_test_funct.f,.void.*argp,.in |
| 98e0 | 74 20 6e 29 0a 7b 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 74 61 72 74 2c 20 74 6d 65 61 73 3b 0a | t.n).{.....double.start,.tmeas;. |
| 9900 | 20 20 20 20 69 6e 74 20 69 3b 0a 0a 20 20 20 20 69 6e 69 74 5f 65 74 69 6d 65 28 29 3b 0a 20 20 | ....int.i;......init_etime();... |
| 9920 | 20 20 73 74 61 72 74 20 3d 20 67 65 74 5f 65 74 69 6d 65 28 29 3b 0a 20 20 20 20 66 6f 72 20 28 | ..start.=.get_etime();.....for.( |
| 9940 | 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 0a 09 66 28 61 72 67 70 29 3b 0a 20 20 | i.=.0;.i.<.n;.i++)...f(argp);... |
| 9960 | 20 20 74 6d 65 61 73 20 3d 20 67 65 74 5f 65 74 69 6d 65 28 29 20 2d 20 73 74 61 72 74 3b 0a 20 | ..tmeas.=.get_etime().-.start;.. |
| 9980 | 20 20 20 72 65 74 75 72 6e 20 74 6d 65 61 73 20 2f 20 6e 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 66 | ...return.tmeas./.n;.}../*...*.f |
| 99a0 | 74 69 6d 65 72 5f 67 65 74 74 6f 64 20 2d 20 55 73 65 20 67 65 74 74 69 6d 65 6f 66 64 61 79 20 | timer_gettod.-.Use.gettimeofday. |
| 99c0 | 74 6f 20 65 73 74 69 6d 61 74 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 69 6d 65 20 6f 66 0a | to.estimate.the.running.time.of. |
| 99e0 | 20 2a 20 66 28 61 72 67 70 29 2e 20 52 65 74 75 72 6e 20 74 68 65 20 61 76 65 72 61 67 65 20 6f | .*.f(argp)..Return.the.average.o |
| 9a00 | 66 20 6e 20 72 75 6e 73 2e 20 20 0a 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 74 69 6d 65 72 5f 67 65 | f.n.runs.....*/.double.ftimer_ge |
| 9a20 | 74 74 6f 64 28 66 74 69 6d 65 72 5f 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 20 2a | ttod(ftimer_test_funct.f,.void.* |
| 9a40 | 61 72 67 70 2c 20 69 6e 74 20 6e 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 73 74 | argp,.int.n).{.....int.i;.....st |
| 9a60 | 72 75 63 74 20 74 69 6d 65 76 61 6c 20 73 74 76 2c 20 65 74 76 3b 0a 20 20 20 20 64 6f 75 62 6c | ruct.timeval.stv,.etv;.....doubl |
| 9a80 | 65 20 64 69 66 66 3b 0a 0a 20 20 20 20 67 65 74 74 69 6d 65 6f 66 64 61 79 28 26 73 74 76 2c 20 | e.diff;......gettimeofday(&stv,. |
| 9aa0 | 4e 55 4c 4c 29 3b 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 20 3c 20 6e 3b 20 69 2b | NULL);.....for.(i.=.0;.i.<.n;.i+ |
| 9ac0 | 2b 29 20 0a 09 66 28 61 72 67 70 29 3b 0a 20 20 20 20 67 65 74 74 69 6d 65 6f 66 64 61 79 28 26 | +)...f(argp);.....gettimeofday(& |
| 9ae0 | 65 74 76 2c 4e 55 4c 4c 29 3b 0a 20 20 20 20 64 69 66 66 20 3d 20 31 45 33 2a 28 65 74 76 2e 74 | etv,NULL);.....diff.=.1E3*(etv.t |
| 9b00 | 76 5f 73 65 63 20 2d 20 73 74 76 2e 74 76 5f 73 65 63 29 20 2b 20 31 45 2d 33 2a 28 65 74 76 2e | v_sec.-.stv.tv_sec).+.1E-3*(etv. |
| 9b20 | 74 76 5f 75 73 65 63 2d 73 74 76 2e 74 76 5f 75 73 65 63 29 3b 0a 20 20 20 20 64 69 66 66 20 2f | tv_usec-stv.tv_usec);.....diff./ |
| 9b40 | 3d 20 6e 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 31 45 2d 33 2a 64 69 66 66 29 3b 0a 7d 0a 0a | =.n;.....return.(1E-3*diff);.}.. |
| 9b60 | 0a 2f 2a 0a 20 2a 20 52 6f 75 74 69 6e 65 73 20 66 6f 72 20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 | ./*..*.Routines.for.manipulating |
| 9b80 | 20 74 68 65 20 55 6e 69 78 20 69 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 0a 20 2a 2f 0a 0a 2f 2a | .the.Unix.interval.timer..*/../* |
| 9ba0 | 20 54 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 6e 74 65 72 76 | .The.initial.value.of.the.interv |
| 9bc0 | 61 6c 20 74 69 6d 65 72 20 2a 2f 0a 23 64 65 66 69 6e 65 20 4d 41 58 5f 45 54 49 4d 45 20 38 36 | al.timer.*/.#define.MAX_ETIME.86 |
| 9be0 | 34 30 30 20 20 20 0a 0a 2f 2a 20 73 74 61 74 69 63 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 | 400...../*.static.variables.that |
| 9c00 | 20 68 6f 6c 64 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 | .hold.the.initial.value.of.the.i |
| 9c20 | 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 20 2a 2f 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 69 | nterval.timer.*/.static.struct.i |
| 9c40 | 74 69 6d 65 72 76 61 6c 20 66 69 72 73 74 5f 75 3b 20 2f 2a 20 75 73 65 72 20 74 69 6d 65 20 2a | timerval.first_u;./*.user.time.* |
| 9c60 | 2f 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 76 61 6c 20 66 69 72 73 74 5f | /.static.struct.itimerval.first_ |
| 9c80 | 72 3b 20 2f 2a 20 72 65 61 6c 20 74 69 6d 65 20 2a 2f 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 | r;./*.real.time.*/.static.struct |
| 9ca0 | 20 69 74 69 6d 65 72 76 61 6c 20 66 69 72 73 74 5f 70 3b 20 2f 2a 20 70 72 6f 66 20 74 69 6d 65 | .itimerval.first_p;./*.prof.time |
| 9cc0 | 2a 2f 0a 0a 2f 2a 20 69 6e 69 74 20 74 68 65 20 74 69 6d 65 72 20 2a 2f 0a 73 74 61 74 69 63 20 | */../*.init.the.timer.*/.static. |
| 9ce0 | 76 6f 69 64 20 69 6e 69 74 5f 65 74 69 6d 65 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 66 69 72 73 | void.init_etime(void).{.....firs |
| 9d00 | 74 5f 75 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 73 65 63 20 3d 20 30 3b 0a 20 20 20 20 | t_u.it_interval.tv_sec.=.0;..... |
| 9d20 | 66 69 72 73 74 5f 75 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 75 73 65 63 20 3d 20 30 3b | first_u.it_interval.tv_usec.=.0; |
| 9d40 | 0a 20 20 20 20 66 69 72 73 74 5f 75 2e 69 74 5f 76 61 6c 75 65 2e 74 76 5f 73 65 63 20 3d 20 4d | .....first_u.it_value.tv_sec.=.M |
| 9d60 | 41 58 5f 45 54 49 4d 45 3b 0a 20 20 20 20 66 69 72 73 74 5f 75 2e 69 74 5f 76 61 6c 75 65 2e 74 | AX_ETIME;.....first_u.it_value.t |
| 9d80 | 76 5f 75 73 65 63 20 3d 20 30 3b 0a 20 20 20 20 73 65 74 69 74 69 6d 65 72 28 49 54 49 4d 45 52 | v_usec.=.0;.....setitimer(ITIMER |
| 9da0 | 5f 56 49 52 54 55 41 4c 2c 20 26 66 69 72 73 74 5f 75 2c 20 4e 55 4c 4c 29 3b 0a 0a 20 20 20 20 | _VIRTUAL,.&first_u,.NULL);...... |
| 9dc0 | 66 69 72 73 74 5f 72 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 73 65 63 20 3d 20 30 3b 0a | first_r.it_interval.tv_sec.=.0;. |
| 9de0 | 20 20 20 20 66 69 72 73 74 5f 72 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 75 73 65 63 20 | ....first_r.it_interval.tv_usec. |
| 9e00 | 3d 20 30 3b 0a 20 20 20 20 66 69 72 73 74 5f 72 2e 69 74 5f 76 61 6c 75 65 2e 74 76 5f 73 65 63 | =.0;.....first_r.it_value.tv_sec |
| 9e20 | 20 3d 20 4d 41 58 5f 45 54 49 4d 45 3b 0a 20 20 20 20 66 69 72 73 74 5f 72 2e 69 74 5f 76 61 6c | .=.MAX_ETIME;.....first_r.it_val |
| 9e40 | 75 65 2e 74 76 5f 75 73 65 63 20 3d 20 30 3b 0a 20 20 20 20 73 65 74 69 74 69 6d 65 72 28 49 54 | ue.tv_usec.=.0;.....setitimer(IT |
| 9e60 | 49 4d 45 52 5f 52 45 41 4c 2c 20 26 66 69 72 73 74 5f 72 2c 20 4e 55 4c 4c 29 3b 0a 20 20 20 0a | IMER_REAL,.&first_r,.NULL);..... |
| 9e80 | 20 20 20 20 66 69 72 73 74 5f 70 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 73 65 63 20 3d | ....first_p.it_interval.tv_sec.= |
| 9ea0 | 20 30 3b 0a 20 20 20 20 66 69 72 73 74 5f 70 2e 69 74 5f 69 6e 74 65 72 76 61 6c 2e 74 76 5f 75 | .0;.....first_p.it_interval.tv_u |
| 9ec0 | 73 65 63 20 3d 20 30 3b 0a 20 20 20 20 66 69 72 73 74 5f 70 2e 69 74 5f 76 61 6c 75 65 2e 74 76 | sec.=.0;.....first_p.it_value.tv |
| 9ee0 | 5f 73 65 63 20 3d 20 4d 41 58 5f 45 54 49 4d 45 3b 0a 20 20 20 20 66 69 72 73 74 5f 70 2e 69 74 | _sec.=.MAX_ETIME;.....first_p.it |
| 9f00 | 5f 76 61 6c 75 65 2e 74 76 5f 75 73 65 63 20 3d 20 30 3b 0a 20 20 20 20 73 65 74 69 74 69 6d 65 | _value.tv_usec.=.0;.....setitime |
| 9f20 | 72 28 49 54 49 4d 45 52 5f 50 52 4f 46 2c 20 26 66 69 72 73 74 5f 70 2c 20 4e 55 4c 4c 29 3b 0a | r(ITIMER_PROF,.&first_p,.NULL);. |
| 9f40 | 7d 0a 0a 2f 2a 20 72 65 74 75 72 6e 20 65 6c 61 70 73 65 64 20 72 65 61 6c 20 73 65 63 6f 6e 64 | }../*.return.elapsed.real.second |
| 9f60 | 73 20 73 69 6e 63 65 20 63 61 6c 6c 20 74 6f 20 69 6e 69 74 5f 65 74 69 6d 65 20 2a 2f 0a 73 74 | s.since.call.to.init_etime.*/.st |
| 9f80 | 61 74 69 63 20 64 6f 75 62 6c 65 20 67 65 74 5f 65 74 69 6d 65 28 76 6f 69 64 29 20 7b 0a 20 20 | atic.double.get_etime(void).{... |
| 9fa0 | 20 20 73 74 72 75 63 74 20 69 74 69 6d 65 72 76 61 6c 20 76 5f 63 75 72 72 3b 0a 20 20 20 20 73 | ..struct.itimerval.v_curr;.....s |
| 9fc0 | 74 72 75 63 74 20 69 74 69 6d 65 72 76 61 6c 20 72 5f 63 75 72 72 3b 0a 20 20 20 20 73 74 72 75 | truct.itimerval.r_curr;.....stru |
| 9fe0 | 63 74 20 69 74 69 6d 65 72 76 61 6c 20 70 5f 63 75 72 72 3b 0a 0a 20 20 20 20 67 65 74 69 74 69 | ct.itimerval.p_curr;......getiti |
| a000 | 6d 65 72 28 49 54 49 4d 45 52 5f 56 49 52 54 55 41 4c 2c 20 26 76 5f 63 75 72 72 29 3b 0a 20 20 | mer(ITIMER_VIRTUAL,.&v_curr);... |
| a020 | 20 20 67 65 74 69 74 69 6d 65 72 28 49 54 49 4d 45 52 5f 52 45 41 4c 2c 26 72 5f 63 75 72 72 29 | ..getitimer(ITIMER_REAL,&r_curr) |
| a040 | 3b 0a 20 20 20 20 67 65 74 69 74 69 6d 65 72 28 49 54 49 4d 45 52 5f 50 52 4f 46 2c 26 70 5f 63 | ;.....getitimer(ITIMER_PROF,&p_c |
| a060 | 75 72 72 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 28 64 6f 75 62 6c 65 29 20 28 28 66 69 72 | urr);......return.(double).((fir |
| a080 | 73 74 5f 70 2e 69 74 5f 76 61 6c 75 65 2e 74 76 5f 73 65 63 20 2d 20 72 5f 63 75 72 72 2e 69 74 | st_p.it_value.tv_sec.-.r_curr.it |
| a0a0 | 5f 76 61 6c 75 65 2e 74 76 5f 73 65 63 29 20 2b 0a 09 09 20 20 20 20 20 28 66 69 72 73 74 5f 70 | _value.tv_sec).+........(first_p |
| a0c0 | 2e 69 74 5f 76 61 6c 75 65 2e 74 76 5f 75 73 65 63 20 2d 20 72 5f 63 75 72 72 2e 69 74 5f 76 61 | .it_value.tv_usec.-.r_curr.it_va |
| a0e0 | 6c 75 65 2e 74 76 5f 75 73 65 63 29 2a 31 65 2d 36 29 3b 0a 7d 0a 0a 0a 0a 0a 00 00 00 00 00 00 | lue.tv_usec)*1e-6);.}........... |
| a100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a200 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 74 69 6d 65 72 2e 68 00 00 00 00 00 00 | malloclab-handout/ftimer.h...... |
| a220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| a280 | 30 30 30 30 36 32 31 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 36 30 00 20 30 00 00 00 | 0000621.12507032412.014760..0... |
| a2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a300 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| a320 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| a340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a400 | 2f 2a 20 0a 20 2a 20 46 75 6e 63 74 69 6f 6e 20 74 69 6d 65 72 73 20 0a 20 2a 2f 0a 74 79 70 65 | /*...*.Function.timers...*/.type |
| a420 | 64 65 66 20 76 6f 69 64 20 28 2a 66 74 69 6d 65 72 5f 74 65 73 74 5f 66 75 6e 63 74 29 28 76 6f | def.void.(*ftimer_test_funct)(vo |
| a440 | 69 64 20 2a 29 3b 20 0a 0a 2f 2a 20 45 73 74 69 6d 61 74 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 | id.*);.../*.Estimate.the.running |
| a460 | 20 74 69 6d 65 20 6f 66 20 66 28 61 72 67 70 29 20 75 73 69 6e 67 20 74 68 65 20 55 6e 69 78 20 | .time.of.f(argp).using.the.Unix. |
| a480 | 69 6e 74 65 72 76 61 6c 20 74 69 6d 65 72 2e 0a 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 61 76 | interval.timer.....Return.the.av |
| a4a0 | 65 72 61 67 65 20 6f 66 20 6e 20 72 75 6e 73 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 74 69 6d 65 72 | erage.of.n.runs.*/.double.ftimer |
| a4c0 | 5f 69 74 69 6d 65 72 28 66 74 69 6d 65 72 5f 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 | _itimer(ftimer_test_funct.f,.voi |
| a4e0 | 64 20 2a 61 72 67 70 2c 20 69 6e 74 20 6e 29 3b 0a 0a 0a 2f 2a 20 45 73 74 69 6d 61 74 65 20 74 | d.*argp,.int.n);.../*.Estimate.t |
| a500 | 68 65 20 72 75 6e 6e 69 6e 67 20 74 69 6d 65 20 6f 66 20 66 28 61 72 67 70 29 20 75 73 69 6e 67 | he.running.time.of.f(argp).using |
| a520 | 20 67 65 74 74 69 6d 65 6f 66 64 61 79 20 0a 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 61 76 65 | .gettimeofday.....Return.the.ave |
| a540 | 72 61 67 65 20 6f 66 20 6e 20 72 75 6e 73 20 2a 2f 0a 64 6f 75 62 6c 65 20 66 74 69 6d 65 72 5f | rage.of.n.runs.*/.double.ftimer_ |
| a560 | 67 65 74 74 6f 64 28 66 74 69 6d 65 72 5f 74 65 73 74 5f 66 75 6e 63 74 20 66 2c 20 76 6f 69 64 | gettod(ftimer_test_funct.f,.void |
| a580 | 20 2a 61 72 67 70 2c 20 69 6e 74 20 6e 29 3b 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .*argp,.int.n);................. |
| a5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a600 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 66 74 69 6d 65 72 2e 6f 00 00 00 00 00 00 | malloclab-handout/ftimer.o...... |
| a620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| a680 | 30 30 30 34 32 31 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 37 31 00 20 30 00 00 00 | 0004214.12507032412.014771..0... |
| a6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a700 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| a720 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| a740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a800 | 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 | .ELF............................ |
| a820 | c8 03 00 00 00 00 00 00 34 00 00 00 00 00 28 00 0e 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........4.....(................. |
| a840 | 83 ec 4c 8d 44 24 10 89 44 24 04 c7 04 24 01 00 00 00 e8 fc ff ff ff 8d 44 24 20 89 44 24 04 c7 | ..L.D$..D$...$..........D$..D$.. |
| a860 | 04 24 00 00 00 00 e8 fc ff ff ff 8d 44 24 30 89 44 24 04 c7 04 24 02 00 00 00 e8 fc ff ff ff a1 | .$..........D$0.D$...$.......... |
| a880 | 08 00 00 00 2b 44 24 28 89 44 24 0c a1 0c 00 00 00 2b 44 24 2c db 44 24 0c 89 44 24 0c db 44 24 | ....+D$(.D$......+D$,.D$..D$..D$ |
| a8a0 | 0c dc 0d 00 00 00 00 83 c4 4c de c1 c3 8d 76 00 55 57 56 53 31 db 83 ec 2c c7 44 24 08 00 00 00 | .........L....v.UWVS1...,.D$.... |
| a8c0 | 00 8b 74 24 48 c7 44 24 04 20 00 00 00 8b 6c 24 40 c7 04 24 01 00 00 00 8b 7c 24 44 c7 05 20 00 | ..t$H.D$......l$@..$.....|$D.... |
| a8e0 | 00 00 00 00 00 00 c7 05 24 00 00 00 00 00 00 00 c7 05 28 00 00 00 80 51 01 00 c7 05 2c 00 00 00 | ........$.........(....Q....,... |
| a900 | 00 00 00 00 e8 fc ff ff ff c7 44 24 08 00 00 00 00 c7 44 24 04 10 00 00 00 c7 04 24 00 00 00 00 | ..........D$......D$.......$.... |
| a920 | c7 05 10 00 00 00 00 00 00 00 c7 05 14 00 00 00 00 00 00 00 c7 05 18 00 00 00 80 51 01 00 c7 05 | ...........................Q.... |
| a940 | 1c 00 00 00 00 00 00 00 e8 fc ff ff ff c7 44 24 08 00 00 00 00 c7 44 24 04 00 00 00 00 c7 04 24 | ..............D$......D$.......$ |
| a960 | 02 00 00 00 c7 05 00 00 00 00 00 00 00 00 c7 05 04 00 00 00 00 00 00 00 c7 05 08 00 00 00 80 51 | ...............................Q |
| a980 | 01 00 c7 05 0c 00 00 00 00 00 00 00 e8 fc ff ff ff e8 aa fe ff ff 85 f6 dd 5c 24 10 7e 0e 66 90 | .........................\$.~.f. |
| a9a0 | 83 c3 01 89 3c 24 ff d5 39 f3 75 f4 e8 8f fe ff ff 89 74 24 1c dc 64 24 10 db 44 24 1c 83 c4 2c | ....<$..9.u.......t$..d$..D$..., |
| a9c0 | 5b de f9 5e 5f 5d c3 89 f6 8d bc 27 00 00 00 00 55 57 56 53 31 db 83 ec 2c 8b 74 24 48 8d 44 24 | [..^_].....'....UWVS1...,.t$H.D$ |
| a9e0 | 10 c7 44 24 04 00 00 00 00 8b 6c 24 40 89 04 24 8b 7c 24 44 e8 fc ff ff ff 85 f6 7e 0f 8d 76 00 | ..D$......l$@..$.|$D.......~..v. |
| aa00 | 83 c3 01 89 3c 24 ff d5 39 f3 75 f4 8d 44 24 18 c7 44 24 04 00 00 00 00 89 04 24 e8 fc ff ff ff | ....<$..9.u..D$..D$.......$..... |
| aa20 | 8b 44 24 18 2b 44 24 10 89 44 24 0c 8b 44 24 1c 2b 44 24 14 db 44 24 0c d8 0d 00 00 00 00 89 44 | .D$.+D$..D$..D$.+D$..D$........D |
| aa40 | 24 0c db 44 24 0c dd 05 08 00 00 00 dc c9 d9 ca 89 74 24 0c de c1 db 44 24 0c 83 c4 2c de f9 5b | $..D$............t$....D$...,..[ |
| aa60 | 5e 5f 5d de c9 c3 00 00 8d ed b5 a0 f7 c6 b0 3e fc a9 f1 d2 4d 62 50 3f 00 00 7a 44 00 47 43 43 | ^_]............>....MbP?..zD.GCC |
| aa80 | 3a 20 28 55 62 75 6e 74 75 20 34 2e 38 2e 31 2d 32 75 62 75 6e 74 75 31 7e 31 32 2e 30 34 29 20 | :.(Ubuntu.4.8.1-2ubuntu1~12.04). |
| aaa0 | 34 2e 38 2e 31 00 00 00 14 00 00 00 00 00 00 00 01 7a 52 00 01 7c 08 01 1b 0c 04 04 88 01 00 00 | 4.8.1............zR..|.......... |
| aac0 | 14 00 00 00 1c 00 00 00 00 00 00 00 6d 00 00 00 00 43 0e 50 02 67 0e 04 3c 00 00 00 34 00 00 00 | ............m....C.P.g..<...4... |
| aae0 | 70 00 00 00 17 01 00 00 00 41 0e 08 85 02 41 0e 0c 87 03 41 0e 10 86 04 41 0e 14 83 05 45 0e 40 | p........A....A....A....A....E.@ |
| ab00 | 03 07 01 0e 14 41 c3 0e 10 43 c6 0e 0c 41 c7 0e 08 41 c5 0e 04 00 00 00 38 00 00 00 74 00 00 00 | .....A...C...A...A......8...t... |
| ab20 | 90 01 00 00 96 00 00 00 00 41 0e 08 85 02 41 0e 0c 87 03 41 0e 10 86 04 41 0e 14 83 05 45 0e 40 | .........A....A....A....A....E.@ |
| ab40 | 02 84 0e 14 43 c3 0e 10 41 c6 0e 0c 41 c7 0e 08 41 c5 0e 04 00 2e 73 79 6d 74 61 62 00 2e 73 74 | ....C...A...A...A.....symtab..st |
| ab60 | 72 74 61 62 00 2e 73 68 73 74 72 74 61 62 00 2e 72 65 6c 2e 74 65 78 74 00 2e 64 61 74 61 00 2e | rtab..shstrtab..rel.text..data.. |
| ab80 | 62 73 73 00 2e 72 6f 64 61 74 61 2e 63 73 74 38 00 2e 72 6f 64 61 74 61 2e 63 73 74 34 00 2e 63 | bss..rodata.cst8..rodata.cst4..c |
| aba0 | 6f 6d 6d 65 6e 74 00 2e 6e 6f 74 65 2e 47 4e 55 2d 73 74 61 63 6b 00 2e 72 65 6c 2e 65 68 5f 66 | omment..note.GNU-stack..rel.eh_f |
| abc0 | 72 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | rame............................ |
| abe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00 | ................................ |
| ac00 | 40 00 00 00 26 02 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 1b 00 00 00 09 00 00 00 | @...&........................... |
| ac20 | 00 00 00 00 00 00 00 00 94 07 00 00 e0 00 00 00 0c 00 00 00 01 00 00 00 04 00 00 00 08 00 00 00 | ................................ |
| ac40 | 25 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 68 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | %...............h............... |
| ac60 | 04 00 00 00 00 00 00 00 2b 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 68 02 00 00 30 00 00 00 | ........+...............h...0... |
| ac80 | 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 30 00 00 00 01 00 00 00 12 00 00 00 00 00 00 00 | ................0............... |
| aca0 | 68 02 00 00 10 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 08 00 00 00 3d 00 00 00 01 00 00 00 | h.......................=....... |
| acc0 | 12 00 00 00 00 00 00 00 78 02 00 00 04 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 | ........x....................... |
| ace0 | 4a 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 7c 02 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 | J.......0.......|...*........... |
| ad00 | 01 00 00 00 01 00 00 00 53 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 a6 02 00 00 00 00 00 00 | ........S....................... |
| ad20 | 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 67 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 | ................g............... |
| ad40 | a8 02 00 00 ac 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 63 00 00 00 09 00 00 00 | ........................c....... |
| ad60 | 00 00 00 00 00 00 00 00 74 08 00 00 18 00 00 00 0c 00 00 00 09 00 00 00 04 00 00 00 08 00 00 00 | ........t....................... |
| ad80 | 11 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 54 03 00 00 71 00 00 00 00 00 00 00 00 00 00 00 | ................T...q........... |
| ada0 | 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 f8 05 00 00 30 01 00 00 | ............................0... |
| adc0 | 0d 00 00 00 0e 00 00 00 04 00 00 00 10 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ade0 | 28 07 00 00 69 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | (...i........................... |
| ae00 | 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 04 00 f1 ff 00 00 00 00 00 00 00 00 | ................................ |
| ae20 | 00 00 00 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 03 00 00 00 00 00 00 00 00 00 | ................................ |
| ae40 | 00 00 00 00 03 00 04 00 0a 00 00 00 00 00 00 00 6d 00 00 00 02 00 01 00 14 00 00 00 00 00 00 00 | ................m............... |
| ae60 | 10 00 00 00 01 00 04 00 1c 00 00 00 20 00 00 00 10 00 00 00 01 00 04 00 24 00 00 00 10 00 00 00 | ........................$....... |
| ae80 | 10 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 05 00 00 00 00 00 00 00 00 00 | ................................ |
| aea0 | 00 00 00 00 03 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 08 00 00 00 00 00 00 00 00 00 | ................................ |
| aec0 | 00 00 00 00 03 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 07 00 2c 00 00 00 00 00 00 00 | ........................,....... |
| aee0 | 00 00 00 00 10 00 00 00 36 00 00 00 70 00 00 00 17 01 00 00 12 00 01 00 44 00 00 00 00 00 00 00 | ........6...p...........D....... |
| af00 | 00 00 00 00 10 00 00 00 4e 00 00 00 90 01 00 00 96 00 00 00 12 00 01 00 5c 00 00 00 00 00 00 00 | ........N...............\....... |
| af20 | 00 00 00 00 10 00 00 00 00 66 74 69 6d 65 72 2e 63 00 67 65 74 5f 65 74 69 6d 65 00 66 69 72 73 | .........ftimer.c.get_etime.firs |
| af40 | 74 5f 70 00 66 69 72 73 74 5f 75 00 66 69 72 73 74 5f 72 00 67 65 74 69 74 69 6d 65 72 00 66 74 | t_p.first_u.first_r.getitimer.ft |
| af60 | 69 6d 65 72 5f 69 74 69 6d 65 72 00 73 65 74 69 74 69 6d 65 72 00 66 74 69 6d 65 72 5f 67 65 74 | imer_itimer.setitimer.ftimer_get |
| af80 | 74 6f 64 00 67 65 74 74 69 6d 65 6f 66 64 61 79 00 00 00 00 13 00 00 00 02 0e 00 00 27 00 00 00 | tod.gettimeofday............'... |
| afa0 | 02 0e 00 00 3b 00 00 00 02 0e 00 00 40 00 00 00 01 04 00 00 4d 00 00 00 01 04 00 00 63 00 00 00 | ....;.......@.......M.......c... |
| afc0 | 01 09 00 00 89 00 00 00 01 04 00 00 9e 00 00 00 01 04 00 00 a8 00 00 00 01 04 00 00 b2 00 00 00 | ................................ |
| afe0 | 01 04 00 00 bc 00 00 00 01 04 00 00 c5 00 00 00 02 10 00 00 d5 00 00 00 01 04 00 00 e2 00 00 00 | ................................ |
| b000 | 01 04 00 00 ec 00 00 00 01 04 00 00 f6 00 00 00 01 04 00 00 00 01 00 00 01 04 00 00 09 01 00 00 | ................................ |
| b020 | 02 10 00 00 19 01 00 00 01 04 00 00 26 01 00 00 01 04 00 00 30 01 00 00 01 04 00 00 3a 01 00 00 | ............&.......0.......:... |
| b040 | 01 04 00 00 44 01 00 00 01 04 00 00 4d 01 00 00 02 10 00 00 b5 01 00 00 02 12 00 00 dc 01 00 00 | ....D.......M................... |
| b060 | 02 12 00 00 fa 01 00 00 01 0a 00 00 08 02 00 00 01 09 00 00 20 00 00 00 02 02 00 00 38 00 00 00 | ............................8... |
| b080 | 02 02 00 00 78 00 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....x........................... |
| b0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b200 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 65 6d 6c 69 62 2e 63 00 00 00 00 00 00 | malloclab-handout/memlib.c...... |
| b220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| b280 | 30 30 30 34 33 33 36 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 34 31 00 20 30 00 00 00 | 0004336.12507032412.014741..0... |
| b2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b300 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| b320 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| b340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b400 | 2f 2a 0a 20 2a 20 6d 65 6d 6c 69 62 2e 63 20 2d 20 61 20 6d 6f 64 75 6c 65 20 74 68 61 74 20 73 | /*..*.memlib.c.-.a.module.that.s |
| b420 | 69 6d 75 6c 61 74 65 73 20 74 68 65 20 6d 65 6d 6f 72 79 20 73 79 73 74 65 6d 2e 20 20 4e 65 65 | imulates.the.memory.system...Nee |
| b440 | 64 65 64 20 62 65 63 61 75 73 65 20 69 74 20 0a 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 61 6c | ded.because.it...*............al |
| b460 | 6c 6f 77 73 20 75 73 20 74 6f 20 69 6e 74 65 72 6c 65 61 76 65 20 63 61 6c 6c 73 20 66 72 6f 6d | lows.us.to.interleave.calls.from |
| b480 | 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 0a 20 | .the.student's.malloc.package... |
| b4a0 | 2a 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 27 73 20 6d | *............with.the.system's.m |
| b4c0 | 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 69 6e 20 6c 69 62 63 2e 0a 20 2a 2f 0a 23 69 6e 63 6c | alloc.package.in.libc...*/.#incl |
| b4e0 | 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 | ude.<stdio.h>.#include.<stdlib.h |
| b500 | 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 61 73 73 65 72 74 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c | >.#include.<assert.h>.#include.< |
| b520 | 75 6e 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 0a | unistd.h>.#include.<sys/mman.h>. |
| b540 | 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72 | #include.<string.h>.#include.<er |
| b560 | 72 6e 6f 2e 68 3e 0a 0a 23 69 6e 63 6c 75 64 65 20 22 6d 65 6d 6c 69 62 2e 68 22 0a 23 69 6e 63 | rno.h>..#include."memlib.h".#inc |
| b580 | 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 0a 0a 2f 2a 20 70 72 69 76 61 74 65 20 76 61 72 69 | lude."config.h"../*.private.vari |
| b5a0 | 61 62 6c 65 73 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 2a 6d 65 6d 5f 73 74 61 72 74 5f | ables.*/.static.char.*mem_start_ |
| b5c0 | 62 72 6b 3b 20 20 2f 2a 20 70 6f 69 6e 74 73 20 74 6f 20 66 69 72 73 74 20 62 79 74 65 20 6f 66 | brk;../*.points.to.first.byte.of |
| b5e0 | 20 68 65 61 70 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 2a 6d 65 6d 5f 62 72 6b 3b 20 20 | .heap.*/.static.char.*mem_brk;.. |
| b600 | 20 20 20 20 20 20 2f 2a 20 70 6f 69 6e 74 73 20 74 6f 20 6c 61 73 74 20 62 79 74 65 20 6f 66 20 | ....../*.points.to.last.byte.of. |
| b620 | 68 65 61 70 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 2a 6d 65 6d 5f 6d 61 78 5f 61 64 64 | heap.*/.static.char.*mem_max_add |
| b640 | 72 3b 20 20 20 2f 2a 20 6c 61 72 67 65 73 74 20 6c 65 67 61 6c 20 68 65 61 70 20 61 64 64 72 65 | r;.../*.largest.legal.heap.addre |
| b660 | 73 73 20 2a 2f 20 0a 0a 2f 2a 20 0a 20 2a 20 6d 65 6d 5f 69 6e 69 74 20 2d 20 69 6e 69 74 69 61 | ss.*/.../*...*.mem_init.-.initia |
| b680 | 6c 69 7a 65 20 74 68 65 20 6d 65 6d 6f 72 79 20 73 79 73 74 65 6d 20 6d 6f 64 65 6c 0a 20 2a 2f | lize.the.memory.system.model..*/ |
| b6a0 | 0a 76 6f 69 64 20 6d 65 6d 5f 69 6e 69 74 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 61 6c | .void.mem_init(void).{...../*.al |
| b6c0 | 6c 6f 63 61 74 65 20 74 68 65 20 73 74 6f 72 61 67 65 20 77 65 20 77 69 6c 6c 20 75 73 65 20 74 | locate.the.storage.we.will.use.t |
| b6e0 | 6f 20 6d 6f 64 65 6c 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 56 4d 20 2a 2f 0a 20 20 20 20 | o.model.the.available.VM.*/..... |
| b700 | 69 66 20 28 28 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 20 3d 20 28 63 68 61 72 20 2a 29 6d 61 6c | if.((mem_start_brk.=.(char.*)mal |
| b720 | 6c 6f 63 28 4d 41 58 5f 48 45 41 50 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 66 70 72 69 6e | loc(MAX_HEAP)).==.NULL).{..fprin |
| b740 | 74 66 28 73 74 64 65 72 72 2c 20 22 6d 65 6d 5f 69 6e 69 74 5f 76 6d 3a 20 6d 61 6c 6c 6f 63 20 | tf(stderr,."mem_init_vm:.malloc. |
| b760 | 65 72 72 6f 72 5c 6e 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 | error\n");..exit(1);.....}...... |
| b780 | 6d 65 6d 5f 6d 61 78 5f 61 64 64 72 20 3d 20 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 20 2b 20 4d | mem_max_addr.=.mem_start_brk.+.M |
| b7a0 | 41 58 5f 48 45 41 50 3b 20 20 2f 2a 20 6d 61 78 20 6c 65 67 61 6c 20 68 65 61 70 20 61 64 64 72 | AX_HEAP;../*.max.legal.heap.addr |
| b7c0 | 65 73 73 20 2a 2f 0a 20 20 20 20 6d 65 6d 5f 62 72 6b 20 3d 20 6d 65 6d 5f 73 74 61 72 74 5f 62 | ess.*/.....mem_brk.=.mem_start_b |
| b7e0 | 72 6b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 68 65 61 70 20 69 73 20 | rk;................../*.heap.is. |
| b800 | 65 6d 70 74 79 20 69 6e 69 74 69 61 6c 6c 79 20 2a 2f 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 6d 65 6d | empty.initially.*/.}../*...*.mem |
| b820 | 5f 64 65 69 6e 69 74 20 2d 20 66 72 65 65 20 74 68 65 20 73 74 6f 72 61 67 65 20 75 73 65 64 20 | _deinit.-.free.the.storage.used. |
| b840 | 62 79 20 74 68 65 20 6d 65 6d 6f 72 79 20 73 79 73 74 65 6d 20 6d 6f 64 65 6c 0a 20 2a 2f 0a 76 | by.the.memory.system.model..*/.v |
| b860 | 6f 69 64 20 6d 65 6d 5f 64 65 69 6e 69 74 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 66 72 65 65 28 | oid.mem_deinit(void).{.....free( |
| b880 | 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 29 3b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 6d 65 6d 5f 72 65 73 | mem_start_brk);.}../*..*.mem_res |
| b8a0 | 65 74 5f 62 72 6b 20 2d 20 72 65 73 65 74 20 74 68 65 20 73 69 6d 75 6c 61 74 65 64 20 62 72 6b | et_brk.-.reset.the.simulated.brk |
| b8c0 | 20 70 6f 69 6e 74 65 72 20 74 6f 20 6d 61 6b 65 20 61 6e 20 65 6d 70 74 79 20 68 65 61 70 0a 20 | .pointer.to.make.an.empty.heap.. |
| b8e0 | 2a 2f 0a 76 6f 69 64 20 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 28 29 0a 7b 0a 20 20 20 20 6d 65 | */.void.mem_reset_brk().{.....me |
| b900 | 6d 5f 62 72 6b 20 3d 20 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a | m_brk.=.mem_start_brk;.}../*...* |
| b920 | 20 6d 65 6d 5f 73 62 72 6b 20 2d 20 73 69 6d 70 6c 65 20 6d 6f 64 65 6c 20 6f 66 20 74 68 65 20 | .mem_sbrk.-.simple.model.of.the. |
| b940 | 73 62 72 6b 20 66 75 6e 63 74 69 6f 6e 2e 20 45 78 74 65 6e 64 73 20 74 68 65 20 68 65 61 70 20 | sbrk.function..Extends.the.heap. |
| b960 | 0a 20 2a 20 20 20 20 62 79 20 69 6e 63 72 20 62 79 74 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 | ..*....by.incr.bytes.and.returns |
| b980 | 20 74 68 65 20 73 74 61 72 74 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 6e 65 77 20 61 72 | .the.start.address.of.the.new.ar |
| b9a0 | 65 61 2e 20 49 6e 0a 20 2a 20 20 20 20 74 68 69 73 20 6d 6f 64 65 6c 2c 20 74 68 65 20 68 65 61 | ea..In..*....this.model,.the.hea |
| b9c0 | 70 20 63 61 6e 6e 6f 74 20 62 65 20 73 68 72 75 6e 6b 2e 0a 20 2a 2f 0a 76 6f 69 64 20 2a 6d 65 | p.cannot.be.shrunk...*/.void.*me |
| b9e0 | 6d 5f 73 62 72 6b 28 69 6e 74 20 69 6e 63 72 29 20 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 6f 6c | m_sbrk(int.incr)..{.....char.*ol |
| ba00 | 64 5f 62 72 6b 20 3d 20 6d 65 6d 5f 62 72 6b 3b 0a 0a 20 20 20 20 69 66 20 28 20 28 69 6e 63 72 | d_brk.=.mem_brk;......if.(.(incr |
| ba20 | 20 3c 20 30 29 20 7c 7c 20 28 28 6d 65 6d 5f 62 72 6b 20 2b 20 69 6e 63 72 29 20 3e 20 6d 65 6d | .<.0).||.((mem_brk.+.incr).>.mem |
| ba40 | 5f 6d 61 78 5f 61 64 64 72 29 29 20 7b 0a 09 65 72 72 6e 6f 20 3d 20 45 4e 4f 4d 45 4d 3b 0a 09 | _max_addr)).{..errno.=.ENOMEM;.. |
| ba60 | 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 45 52 52 4f 52 3a 20 6d 65 6d 5f 73 62 72 6b | fprintf(stderr,."ERROR:.mem_sbrk |
| ba80 | 20 66 61 69 6c 65 64 2e 20 52 61 6e 20 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 2e 2e 2e 5c 6e 22 | .failed..Ran.out.of.memory...\n" |
| baa0 | 29 3b 0a 09 72 65 74 75 72 6e 20 28 76 6f 69 64 20 2a 29 2d 31 3b 0a 20 20 20 20 7d 0a 20 20 20 | );..return.(void.*)-1;.....}.... |
| bac0 | 20 6d 65 6d 5f 62 72 6b 20 2b 3d 20 69 6e 63 72 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 76 6f | .mem_brk.+=.incr;.....return.(vo |
| bae0 | 69 64 20 2a 29 6f 6c 64 5f 62 72 6b 3b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 6d 65 6d 5f 68 65 61 70 5f | id.*)old_brk;.}../*..*.mem_heap_ |
| bb00 | 6c 6f 20 2d 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 66 69 72 73 74 | lo.-.return.address.of.the.first |
| bb20 | 20 68 65 61 70 20 62 79 74 65 0a 20 2a 2f 0a 76 6f 69 64 20 2a 6d 65 6d 5f 68 65 61 70 5f 6c 6f | .heap.byte..*/.void.*mem_heap_lo |
| bb40 | 28 29 0a 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 76 6f 69 64 20 2a 29 6d 65 6d 5f 73 74 61 72 | ().{.....return.(void.*)mem_star |
| bb60 | 74 5f 62 72 6b 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 6d 65 6d 5f 68 65 61 70 5f 68 69 20 2d 20 72 | t_brk;.}../*...*.mem_heap_hi.-.r |
| bb80 | 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 6f 66 20 6c 61 73 74 20 68 65 61 70 20 62 79 74 65 0a | eturn.address.of.last.heap.byte. |
| bba0 | 20 2a 2f 0a 76 6f 69 64 20 2a 6d 65 6d 5f 68 65 61 70 5f 68 69 28 29 0a 7b 0a 20 20 20 20 72 65 | .*/.void.*mem_heap_hi().{.....re |
| bbc0 | 74 75 72 6e 20 28 76 6f 69 64 20 2a 29 28 6d 65 6d 5f 62 72 6b 20 2d 20 31 29 3b 0a 7d 0a 0a 2f | turn.(void.*)(mem_brk.-.1);.}../ |
| bbe0 | 2a 0a 20 2a 20 6d 65 6d 5f 68 65 61 70 73 69 7a 65 28 29 20 2d 20 72 65 74 75 72 6e 73 20 74 68 | *..*.mem_heapsize().-.returns.th |
| bc00 | 65 20 68 65 61 70 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 0a 20 2a 2f 0a 73 69 7a 65 5f 74 20 | e.heap.size.in.bytes..*/.size_t. |
| bc20 | 6d 65 6d 5f 68 65 61 70 73 69 7a 65 28 29 20 0a 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 73 69 | mem_heapsize()..{.....return.(si |
| bc40 | 7a 65 5f 74 29 28 6d 65 6d 5f 62 72 6b 20 2d 20 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 29 3b 0a | ze_t)(mem_brk.-.mem_start_brk);. |
| bc60 | 7d 0a 0a 2f 2a 0a 20 2a 20 6d 65 6d 5f 70 61 67 65 73 69 7a 65 28 29 20 2d 20 72 65 74 75 72 6e | }../*..*.mem_pagesize().-.return |
| bc80 | 73 20 74 68 65 20 70 61 67 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 73 79 73 74 65 6d 0a 20 2a | s.the.page.size.of.the.system..* |
| bca0 | 2f 0a 73 69 7a 65 5f 74 20 6d 65 6d 5f 70 61 67 65 73 69 7a 65 28 29 0a 7b 0a 20 20 20 20 72 65 | /.size_t.mem_pagesize().{.....re |
| bcc0 | 74 75 72 6e 20 28 73 69 7a 65 5f 74 29 67 65 74 70 61 67 65 73 69 7a 65 28 29 3b 0a 7d 0a 00 00 | turn.(size_t)getpagesize();.}... |
| bce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bdc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| be00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 65 6d 6c 69 62 2e 68 00 00 00 00 00 00 | malloclab-handout/memlib.h...... |
| be20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| be40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| be60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| be80 | 30 30 30 30 33 35 36 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 34 34 00 20 30 00 00 00 | 0000356.12507032412.014744..0... |
| bea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bf00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| bf20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| bf40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bf60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bf80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c000 | 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 0a 76 6f 69 64 20 6d 65 6d 5f 69 6e | #include.<unistd.h>..void.mem_in |
| c020 | 69 74 28 76 6f 69 64 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 76 6f 69 64 20 6d 65 | it(void);................void.me |
| c040 | 6d 5f 64 65 69 6e 69 74 28 76 6f 69 64 29 3b 0a 76 6f 69 64 20 2a 6d 65 6d 5f 73 62 72 6b 28 69 | m_deinit(void);.void.*mem_sbrk(i |
| c060 | 6e 74 20 69 6e 63 72 29 3b 0a 76 6f 69 64 20 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 28 76 6f 69 | nt.incr);.void.mem_reset_brk(voi |
| c080 | 64 29 3b 20 0a 76 6f 69 64 20 2a 6d 65 6d 5f 68 65 61 70 5f 6c 6f 28 76 6f 69 64 29 3b 0a 76 6f | d);..void.*mem_heap_lo(void);.vo |
| c0a0 | 69 64 20 2a 6d 65 6d 5f 68 65 61 70 5f 68 69 28 76 6f 69 64 29 3b 0a 73 69 7a 65 5f 74 20 6d 65 | id.*mem_heap_hi(void);.size_t.me |
| c0c0 | 6d 5f 68 65 61 70 73 69 7a 65 28 76 6f 69 64 29 3b 0a 73 69 7a 65 5f 74 20 6d 65 6d 5f 70 61 67 | m_heapsize(void);.size_t.mem_pag |
| c0e0 | 65 73 69 7a 65 28 76 6f 69 64 29 3b 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | esize(void);.................... |
| c100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c200 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 65 6d 6c 69 62 2e 6f 00 00 00 00 00 00 | malloclab-handout/memlib.o...... |
| c220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| c280 | 30 30 30 34 33 35 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 37 35 35 00 20 30 00 00 00 | 0004354.12507032412.014755..0... |
| c2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c300 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| c320 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| c340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c400 | 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 | .ELF............................ |
| c420 | 34 03 00 00 00 00 00 00 34 00 00 00 00 00 28 00 0e 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 | 4.......4.....(................. |
| c440 | 83 ec 1c c7 04 24 00 00 40 01 e8 fc ff ff ff 85 c0 a3 08 00 00 00 74 15 8d 90 00 00 40 01 89 15 | .....$..@.............t.....@... |
| c460 | 00 00 00 00 a3 04 00 00 00 83 c4 1c c3 a1 00 00 00 00 c7 44 24 08 1a 00 00 00 c7 44 24 04 01 00 | ...................D$......D$... |
| c480 | 00 00 c7 04 24 00 00 00 00 89 44 24 0c e8 fc ff ff ff c7 04 24 01 00 00 00 e8 fc ff ff ff 66 90 | ....$.....D$........$.........f. |
| c4a0 | 83 ec 1c a1 08 00 00 00 89 04 24 e8 fc ff ff ff 83 c4 1c c3 8d b6 00 00 00 00 8d bf 00 00 00 00 | ..........$..................... |
| c4c0 | a1 08 00 00 00 a3 04 00 00 00 c3 90 8d 74 26 00 83 ec 1c a1 04 00 00 00 8b 54 24 20 85 d2 78 18 | .............t&..........T$...x. |
| c4e0 | 01 c2 3b 15 00 00 00 00 77 0e 89 15 04 00 00 00 83 c4 1c c3 8d 74 26 00 e8 fc ff ff ff c7 00 0c | ..;.....w............t&......... |
| c500 | 00 00 00 a1 00 00 00 00 c7 44 24 08 2d 00 00 00 c7 44 24 04 01 00 00 00 c7 04 24 00 00 00 00 89 | .........D$.-....D$.......$..... |
| c520 | 44 24 0c e8 fc ff ff ff b8 ff ff ff ff 83 c4 1c c3 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90 90 | D$.............................. |
| c540 | a1 08 00 00 00 c3 8d 76 00 8d bc 27 00 00 00 00 a1 04 00 00 00 83 e8 01 c3 8d b4 26 00 00 00 00 | .......v...'...............&.... |
| c560 | a1 04 00 00 00 2b 05 08 00 00 00 c3 8d 74 26 00 e9 fc ff ff ff 00 00 00 6d 65 6d 5f 69 6e 69 74 | .....+.......t&.........mem_init |
| c580 | 5f 76 6d 3a 20 6d 61 6c 6c 6f 63 20 65 72 72 6f 72 0a 00 00 45 52 52 4f 52 3a 20 6d 65 6d 5f 73 | _vm:.malloc.error...ERROR:.mem_s |
| c5a0 | 62 72 6b 20 66 61 69 6c 65 64 2e 20 52 61 6e 20 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 2e 2e 2e | brk.failed..Ran.out.of.memory... |
| c5c0 | 0a 00 00 47 43 43 3a 20 28 55 62 75 6e 74 75 20 34 2e 38 2e 31 2d 32 75 62 75 6e 74 75 31 7e 31 | ...GCC:.(Ubuntu.4.8.1-2ubuntu1~1 |
| c5e0 | 32 2e 30 34 29 20 34 2e 38 2e 31 00 14 00 00 00 00 00 00 00 01 7a 52 00 01 7c 08 01 1b 0c 04 04 | 2.04).4.8.1..........zR..|...... |
| c600 | 88 01 00 00 18 00 00 00 1c 00 00 00 00 00 00 00 5e 00 00 00 00 43 0e 20 69 0a 0e 04 41 0b 00 00 | ................^....C..i...A... |
| c620 | 14 00 00 00 38 00 00 00 60 00 00 00 14 00 00 00 00 43 0e 20 50 0e 04 00 10 00 00 00 50 00 00 00 | ....8...`........C..P.......P... |
| c640 | 80 00 00 00 0b 00 00 00 00 00 00 00 1c 00 00 00 64 00 00 00 90 00 00 00 61 00 00 00 00 43 0e 20 | ................d.......a....C.. |
| c660 | 60 0a 0e 04 45 0b 78 0e 04 00 00 00 10 00 00 00 84 00 00 00 00 01 00 00 06 00 00 00 00 00 00 00 | `...E.x......................... |
| c680 | 10 00 00 00 98 00 00 00 10 01 00 00 09 00 00 00 00 00 00 00 10 00 00 00 ac 00 00 00 20 01 00 00 | ................................ |
| c6a0 | 0c 00 00 00 00 00 00 00 10 00 00 00 c0 00 00 00 30 01 00 00 05 00 00 00 00 00 00 00 00 2e 73 79 | ................0.............sy |
| c6c0 | 6d 74 61 62 00 2e 73 74 72 74 61 62 00 2e 73 68 73 74 72 74 61 62 00 2e 72 65 6c 2e 74 65 78 74 | mtab..strtab..shstrtab..rel.text |
| c6e0 | 00 2e 64 61 74 61 00 2e 62 73 73 00 2e 72 6f 64 61 74 61 2e 73 74 72 31 2e 31 00 2e 72 6f 64 61 | ..data..bss..rodata.str1.1..roda |
| c700 | 74 61 2e 73 74 72 31 2e 34 00 2e 63 6f 6d 6d 65 6e 74 00 2e 6e 6f 74 65 2e 47 4e 55 2d 73 74 61 | ta.str1.4..comment..note.GNU-sta |
| c720 | 63 6b 00 2e 72 65 6c 2e 65 68 5f 66 72 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ck..rel.eh_frame................ |
| c740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 00 00 | ................................ |
| c760 | 01 00 00 00 06 00 00 00 00 00 00 00 40 00 00 00 35 01 00 00 00 00 00 00 00 00 00 00 10 00 00 00 | ............@...5............... |
| c780 | 00 00 00 00 1b 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 ec 07 00 00 c0 00 00 00 0c 00 00 00 | ................................ |
| c7a0 | 01 00 00 00 04 00 00 00 08 00 00 00 25 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 78 01 00 00 | ............%...............x... |
| c7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 2b 00 00 00 08 00 00 00 03 00 00 00 | ....................+........... |
| c7e0 | 00 00 00 00 78 01 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 30 00 00 00 | ....x.......................0... |
| c800 | 01 00 00 00 32 00 00 00 00 00 00 00 78 01 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 | ....2.......x................... |
| c820 | 01 00 00 00 3f 00 00 00 01 00 00 00 32 00 00 00 00 00 00 00 94 01 00 00 2e 00 00 00 00 00 00 00 | ....?.......2................... |
| c840 | 00 00 00 00 04 00 00 00 01 00 00 00 4e 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00 c2 01 00 00 | ............N.......0........... |
| c860 | 2a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 57 00 00 00 01 00 00 00 00 00 00 00 | *...................W........... |
| c880 | 00 00 00 00 ec 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 6b 00 00 00 | ............................k... |
| c8a0 | 01 00 00 00 02 00 00 00 00 00 00 00 ec 01 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 | ................................ |
| c8c0 | 00 00 00 00 67 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 ac 08 00 00 40 00 00 00 0c 00 00 00 | ....g...................@....... |
| c8e0 | 09 00 00 00 04 00 00 00 08 00 00 00 11 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 | ................................ |
| c900 | 75 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 | u............................... |
| c920 | 00 00 00 00 64 05 00 00 c0 01 00 00 0d 00 00 00 0d 00 00 00 04 00 00 00 10 00 00 00 09 00 00 00 | ....d........................... |
| c940 | 03 00 00 00 00 00 00 00 00 00 00 00 24 07 00 00 c6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 | ............$................... |
| c960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c980 | 04 00 f1 ff 00 00 00 00 00 00 00 00 00 00 00 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c9a0 | 03 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| c9c0 | 03 00 05 00 0a 00 00 00 08 00 00 00 04 00 00 00 01 00 04 00 18 00 00 00 00 00 00 00 04 00 00 00 | ................................ |
| c9e0 | 01 00 04 00 25 00 00 00 04 00 00 00 04 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....%........................... |
| ca00 | 03 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ca20 | 03 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 07 00 2d 00 00 00 00 00 00 00 5e 00 00 00 | ....................-.......^... |
| ca40 | 12 00 01 00 36 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 | ....6...............=........... |
| ca60 | 10 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 4b 00 00 00 00 00 00 00 00 00 00 00 | ....D...............K........... |
| ca80 | 10 00 00 00 50 00 00 00 60 00 00 00 14 00 00 00 12 00 01 00 5b 00 00 00 00 00 00 00 00 00 00 00 | ....P...`...........[........... |
| caa0 | 10 00 00 00 60 00 00 00 80 00 00 00 0b 00 00 00 12 00 01 00 6e 00 00 00 90 00 00 00 61 00 00 00 | ....`...............n.......a... |
| cac0 | 12 00 01 00 77 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 88 00 00 00 00 01 00 00 06 00 00 00 | ....w........................... |
| cae0 | 12 00 01 00 94 00 00 00 10 01 00 00 09 00 00 00 12 00 01 00 a0 00 00 00 20 01 00 00 0c 00 00 00 | ................................ |
| cb00 | 12 00 01 00 ad 00 00 00 30 01 00 00 05 00 00 00 12 00 01 00 ba 00 00 00 00 00 00 00 00 00 00 00 | ........0....................... |
| cb20 | 10 00 00 00 00 6d 65 6d 6c 69 62 2e 63 00 6d 65 6d 5f 73 74 61 72 74 5f 62 72 6b 00 6d 65 6d 5f | .....memlib.c.mem_start_brk.mem_ |
| cb40 | 6d 61 78 5f 61 64 64 72 00 6d 65 6d 5f 62 72 6b 00 6d 65 6d 5f 69 6e 69 74 00 6d 61 6c 6c 6f 63 | max_addr.mem_brk.mem_init.malloc |
| cb60 | 00 73 74 64 65 72 72 00 66 77 72 69 74 65 00 65 78 69 74 00 6d 65 6d 5f 64 65 69 6e 69 74 00 66 | .stderr.fwrite.exit.mem_deinit.f |
| cb80 | 72 65 65 00 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 00 6d 65 6d 5f 73 62 72 6b 00 5f 5f 65 72 72 | ree.mem_reset_brk.mem_sbrk.__err |
| cba0 | 6e 6f 5f 6c 6f 63 61 74 69 6f 6e 00 6d 65 6d 5f 68 65 61 70 5f 6c 6f 00 6d 65 6d 5f 68 65 61 70 | no_location.mem_heap_lo.mem_heap |
| cbc0 | 5f 68 69 00 6d 65 6d 5f 68 65 61 70 73 69 7a 65 00 6d 65 6d 5f 70 61 67 65 73 69 7a 65 00 67 65 | _hi.mem_heapsize.mem_pagesize.ge |
| cbe0 | 74 70 61 67 65 73 69 7a 65 00 00 00 0b 00 00 00 02 0e 00 00 12 00 00 00 01 04 00 00 20 00 00 00 | tpagesize....................... |
| cc00 | 01 04 00 00 25 00 00 00 01 04 00 00 2e 00 00 00 01 0f 00 00 45 00 00 00 01 05 00 00 4e 00 00 00 | ....%...............E.......N... |
| cc20 | 02 10 00 00 5a 00 00 00 02 11 00 00 64 00 00 00 01 04 00 00 6c 00 00 00 02 13 00 00 81 00 00 00 | ....Z.......d.......l........... |
| cc40 | 01 04 00 00 86 00 00 00 01 04 00 00 94 00 00 00 01 04 00 00 a4 00 00 00 01 04 00 00 ac 00 00 00 | ................................ |
| cc60 | 01 04 00 00 b9 00 00 00 02 16 00 00 c4 00 00 00 01 0f 00 00 db 00 00 00 01 09 00 00 e4 00 00 00 | ................................ |
| cc80 | 02 10 00 00 01 01 00 00 01 04 00 00 11 01 00 00 01 04 00 00 21 01 00 00 01 04 00 00 27 01 00 00 | ....................!.......'... |
| cca0 | 01 04 00 00 31 01 00 00 02 1b 00 00 20 00 00 00 02 02 00 00 3c 00 00 00 02 02 00 00 54 00 00 00 | ....1...............<.......T... |
| ccc0 | 02 02 00 00 68 00 00 00 02 02 00 00 88 00 00 00 02 02 00 00 9c 00 00 00 02 02 00 00 b0 00 00 00 | ....h........................... |
| cce0 | 02 02 00 00 c4 00 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cd00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cd20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cdc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ce00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 6d 2e 63 00 00 00 00 00 00 00 00 00 00 | malloclab-handout/mm.c.......... |
| ce20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ce40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ce60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| ce80 | 30 30 30 34 35 33 34 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 31 30 35 00 20 30 00 00 00 | 0004534.12507032412.014105..0... |
| cea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cf00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| cf20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| cf40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cf60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cf80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| cfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| d000 | 2f 2a 0a 20 2a 20 6d 6d 2d 6e 61 69 76 65 2e 63 20 2d 20 54 68 65 20 66 61 73 74 65 73 74 2c 20 | /*..*.mm-naive.c.-.The.fastest,. |
| d020 | 6c 65 61 73 74 20 6d 65 6d 6f 72 79 2d 65 66 66 69 63 69 65 6e 74 20 6d 61 6c 6c 6f 63 20 70 61 | least.memory-efficient.malloc.pa |
| d040 | 63 6b 61 67 65 2e 0a 20 2a 20 0a 20 2a 20 49 6e 20 74 68 69 73 20 6e 61 69 76 65 20 61 70 70 72 | ckage...*...*.In.this.naive.appr |
| d060 | 6f 61 63 68 2c 20 61 20 62 6c 6f 63 6b 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 62 79 20 73 69 | oach,.a.block.is.allocated.by.si |
| d080 | 6d 70 6c 79 20 69 6e 63 72 65 6d 65 6e 74 69 6e 67 0a 20 2a 20 74 68 65 20 62 72 6b 20 70 6f 69 | mply.incrementing..*.the.brk.poi |
| d0a0 | 6e 74 65 72 2e 20 20 41 20 62 6c 6f 63 6b 20 69 73 20 70 75 72 65 20 70 61 79 6c 6f 61 64 2e 20 | nter...A.block.is.pure.payload.. |
| d0c0 | 54 68 65 72 65 20 61 72 65 20 6e 6f 20 68 65 61 64 65 72 73 20 6f 72 0a 20 2a 20 66 6f 6f 74 65 | There.are.no.headers.or..*.foote |
| d0e0 | 72 73 2e 20 20 42 6c 6f 63 6b 73 20 61 72 65 20 6e 65 76 65 72 20 63 6f 61 6c 65 73 63 65 64 20 | rs...Blocks.are.never.coalesced. |
| d100 | 6f 72 20 72 65 75 73 65 64 2e 20 52 65 61 6c 6c 6f 63 20 69 73 0a 20 2a 20 69 6d 70 6c 65 6d 65 | or.reused..Realloc.is..*.impleme |
| d120 | 6e 74 65 64 20 64 69 72 65 63 74 6c 79 20 75 73 69 6e 67 20 6d 6d 5f 6d 61 6c 6c 6f 63 20 61 6e | nted.directly.using.mm_malloc.an |
| d140 | 64 20 6d 6d 5f 66 72 65 65 2e 0a 20 2a 0a 20 2a 20 4e 4f 54 45 20 54 4f 20 53 54 55 44 45 4e 54 | d.mm_free...*..*.NOTE.TO.STUDENT |
| d160 | 53 3a 20 52 65 70 6c 61 63 65 20 74 68 69 73 20 68 65 61 64 65 72 20 63 6f 6d 6d 65 6e 74 20 77 | S:.Replace.this.header.comment.w |
| d180 | 69 74 68 20 79 6f 75 72 20 6f 77 6e 20 68 65 61 64 65 72 0a 20 2a 20 63 6f 6d 6d 65 6e 74 20 74 | ith.your.own.header..*.comment.t |
| d1a0 | 68 61 74 20 67 69 76 65 73 20 61 20 68 69 67 68 20 6c 65 76 65 6c 20 64 65 73 63 72 69 70 74 69 | hat.gives.a.high.level.descripti |
| d1c0 | 6f 6e 20 6f 66 20 79 6f 75 72 20 73 6f 6c 75 74 69 6f 6e 2e 0a 20 2a 2f 0a 23 69 6e 63 6c 75 64 | on.of.your.solution...*/.#includ |
| d1e0 | 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a | e.<stdio.h>.#include.<stdlib.h>. |
| d200 | 23 69 6e 63 6c 75 64 65 20 3c 61 73 73 65 72 74 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 75 6e | #include.<assert.h>.#include.<un |
| d220 | 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 0a 23 69 6e | istd.h>.#include.<string.h>..#in |
| d240 | 63 6c 75 64 65 20 22 6d 6d 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 6d 65 6d 6c 69 62 2e 68 22 | clude."mm.h".#include."memlib.h" |
| d260 | 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ../***************************** |
| d280 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 | ****************************..*. |
| d2a0 | 4e 4f 54 45 20 54 4f 20 53 54 55 44 45 4e 54 53 3a 20 42 65 66 6f 72 65 20 79 6f 75 20 64 6f 20 | NOTE.TO.STUDENTS:.Before.you.do. |
| d2c0 | 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 70 6c 65 61 73 65 0a 20 2a 20 70 72 6f 76 69 64 65 | anything.else,.please..*.provide |
| d2e0 | 20 79 6f 75 72 20 74 65 61 6d 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 74 68 65 20 66 6f | .your.team.information.in.the.fo |
| d300 | 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 2e 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | llowing.struct...*************** |
| d320 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| d340 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 74 65 61 6d 5f 74 20 74 65 61 6d 20 3d 20 7b 0a 20 20 20 20 2f | *********/.team_t.team.=.{...../ |
| d360 | 2a 20 54 65 61 6d 20 6e 61 6d 65 20 2a 2f 0a 20 20 20 20 22 61 74 65 61 6d 22 2c 0a 20 20 20 20 | *.Team.name.*/....."ateam",..... |
| d380 | 2f 2a 20 46 69 72 73 74 20 6d 65 6d 62 65 72 27 73 20 66 75 6c 6c 20 6e 61 6d 65 20 2a 2f 0a 20 | /*.First.member's.full.name.*/.. |
| d3a0 | 20 20 20 22 48 61 72 72 79 20 42 6f 76 69 6b 22 2c 0a 20 20 20 20 2f 2a 20 46 69 72 73 74 20 6d | ..."Harry.Bovik",...../*.First.m |
| d3c0 | 65 6d 62 65 72 27 73 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 20 2a 2f 0a 20 20 20 20 22 62 6f | ember's.email.address.*/....."bo |
| d3e0 | 76 69 6b 40 63 73 2e 63 6d 75 2e 65 64 75 22 2c 0a 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 20 6d | vik@cs.cmu.edu",...../*.Second.m |
| d400 | 65 6d 62 65 72 27 73 20 66 75 6c 6c 20 6e 61 6d 65 20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 69 | ember's.full.name.(leave.blank.i |
| d420 | 66 20 6e 6f 6e 65 29 20 2a 2f 0a 20 20 20 20 22 22 2c 0a 20 20 20 20 2f 2a 20 53 65 63 6f 6e 64 | f.none).*/....."",...../*.Second |
| d440 | 20 6d 65 6d 62 65 72 27 73 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 20 28 6c 65 61 76 65 20 62 | .member's.email.address.(leave.b |
| d460 | 6c 61 6e 6b 20 69 66 20 6e 6f 6e 65 29 20 2a 2f 0a 20 20 20 20 22 22 0a 7d 3b 0a 0a 2f 2a 20 73 | lank.if.none).*/....."".};../*.s |
| d480 | 69 6e 67 6c 65 20 77 6f 72 64 20 28 34 29 20 6f 72 20 64 6f 75 62 6c 65 20 77 6f 72 64 20 28 38 | ingle.word.(4).or.double.word.(8 |
| d4a0 | 29 20 61 6c 69 67 6e 6d 65 6e 74 20 2a 2f 0a 23 64 65 66 69 6e 65 20 41 4c 49 47 4e 4d 45 4e 54 | ).alignment.*/.#define.ALIGNMENT |
| d4c0 | 20 38 0a 0a 2f 2a 20 72 6f 75 6e 64 73 20 75 70 20 74 6f 20 74 68 65 20 6e 65 61 72 65 73 74 20 | .8../*.rounds.up.to.the.nearest. |
| d4e0 | 6d 75 6c 74 69 70 6c 65 20 6f 66 20 41 4c 49 47 4e 4d 45 4e 54 20 2a 2f 0a 23 64 65 66 69 6e 65 | multiple.of.ALIGNMENT.*/.#define |
| d500 | 20 41 4c 49 47 4e 28 73 69 7a 65 29 20 28 28 28 73 69 7a 65 29 20 2b 20 28 41 4c 49 47 4e 4d 45 | .ALIGN(size).(((size).+.(ALIGNME |
| d520 | 4e 54 2d 31 29 29 20 26 20 7e 30 78 37 29 0a 0a 0a 23 64 65 66 69 6e 65 20 53 49 5a 45 5f 54 5f | NT-1)).&.~0x7)...#define.SIZE_T_ |
| d540 | 53 49 5a 45 20 28 41 4c 49 47 4e 28 73 69 7a 65 6f 66 28 73 69 7a 65 5f 74 29 29 29 0a 0a 2f 2a | SIZE.(ALIGN(sizeof(size_t)))../* |
| d560 | 20 0a 20 2a 20 6d 6d 5f 69 6e 69 74 20 2d 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6d 61 | ...*.mm_init.-.initialize.the.ma |
| d580 | 6c 6c 6f 63 20 70 61 63 6b 61 67 65 2e 0a 20 2a 2f 0a 69 6e 74 20 6d 6d 5f 69 6e 69 74 28 76 6f | lloc.package...*/.int.mm_init(vo |
| d5a0 | 69 64 29 0a 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 6d 6d | id).{.....return.0;.}../*...*.mm |
| d5c0 | 5f 6d 61 6c 6c 6f 63 20 2d 20 41 6c 6c 6f 63 61 74 65 20 61 20 62 6c 6f 63 6b 20 62 79 20 69 6e | _malloc.-.Allocate.a.block.by.in |
| d5e0 | 63 72 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 62 72 6b 20 70 6f 69 6e 74 65 72 2e 0a 20 2a 20 20 | crementing.the.brk.pointer...*.. |
| d600 | 20 20 20 41 6c 77 61 79 73 20 61 6c 6c 6f 63 61 74 65 20 61 20 62 6c 6f 63 6b 20 77 68 6f 73 65 | ...Always.allocate.a.block.whose |
| d620 | 20 73 69 7a 65 20 69 73 20 61 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20 74 68 65 20 61 6c 69 67 6e | .size.is.a.multiple.of.the.align |
| d640 | 6d 65 6e 74 2e 0a 20 2a 2f 0a 76 6f 69 64 20 2a 6d 6d 5f 6d 61 6c 6c 6f 63 28 73 69 7a 65 5f 74 | ment...*/.void.*mm_malloc(size_t |
| d660 | 20 73 69 7a 65 29 0a 7b 0a 20 20 20 20 69 6e 74 20 6e 65 77 73 69 7a 65 20 3d 20 41 4c 49 47 4e | .size).{.....int.newsize.=.ALIGN |
| d680 | 28 73 69 7a 65 20 2b 20 53 49 5a 45 5f 54 5f 53 49 5a 45 29 3b 0a 20 20 20 20 76 6f 69 64 20 2a | (size.+.SIZE_T_SIZE);.....void.* |
| d6a0 | 70 20 3d 20 6d 65 6d 5f 73 62 72 6b 28 6e 65 77 73 69 7a 65 29 3b 0a 20 20 20 20 69 66 20 28 70 | p.=.mem_sbrk(newsize);.....if.(p |
| d6c0 | 20 3d 3d 20 28 76 6f 69 64 20 2a 29 2d 31 29 0a 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 20 | .==.(void.*)-1)..return.NULL;... |
| d6e0 | 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 2a 28 73 69 7a 65 5f 74 20 2a 29 70 20 3d 20 | ..else.{.........*(size_t.*)p.=. |
| d700 | 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 76 6f 69 64 20 2a 29 28 28 63 | size;.........return.(void.*)((c |
| d720 | 68 61 72 20 2a 29 70 20 2b 20 53 49 5a 45 5f 54 5f 53 49 5a 45 29 3b 0a 20 20 20 20 7d 0a 7d 0a | har.*)p.+.SIZE_T_SIZE);.....}.}. |
| d740 | 0a 2f 2a 0a 20 2a 20 6d 6d 5f 66 72 65 65 20 2d 20 46 72 65 65 69 6e 67 20 61 20 62 6c 6f 63 6b | ./*..*.mm_free.-.Freeing.a.block |
| d760 | 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 0a 20 2a 2f 0a 76 6f 69 64 20 6d 6d 5f 66 72 65 65 28 | .does.nothing...*/.void.mm_free( |
| d780 | 76 6f 69 64 20 2a 70 74 72 29 0a 7b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 6d 6d 5f 72 65 61 6c 6c 6f 63 | void.*ptr).{.}../*..*.mm_realloc |
| d7a0 | 20 2d 20 49 6d 70 6c 65 6d 65 6e 74 65 64 20 73 69 6d 70 6c 79 20 69 6e 20 74 65 72 6d 73 20 6f | .-.Implemented.simply.in.terms.o |
| d7c0 | 66 20 6d 6d 5f 6d 61 6c 6c 6f 63 20 61 6e 64 20 6d 6d 5f 66 72 65 65 0a 20 2a 2f 0a 76 6f 69 64 | f.mm_malloc.and.mm_free..*/.void |
| d7e0 | 20 2a 6d 6d 5f 72 65 61 6c 6c 6f 63 28 76 6f 69 64 20 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 73 | .*mm_realloc(void.*ptr,.size_t.s |
| d800 | 69 7a 65 29 0a 7b 0a 20 20 20 20 76 6f 69 64 20 2a 6f 6c 64 70 74 72 20 3d 20 70 74 72 3b 0a 20 | ize).{.....void.*oldptr.=.ptr;.. |
| d820 | 20 20 20 76 6f 69 64 20 2a 6e 65 77 70 74 72 3b 0a 20 20 20 20 73 69 7a 65 5f 74 20 63 6f 70 79 | ...void.*newptr;.....size_t.copy |
| d840 | 53 69 7a 65 3b 0a 20 20 20 20 0a 20 20 20 20 6e 65 77 70 74 72 20 3d 20 6d 6d 5f 6d 61 6c 6c 6f | Size;..........newptr.=.mm_mallo |
| d860 | 63 28 73 69 7a 65 29 3b 0a 20 20 20 20 69 66 20 28 6e 65 77 70 74 72 20 3d 3d 20 4e 55 4c 4c 29 | c(size);.....if.(newptr.==.NULL) |
| d880 | 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 20 63 6f 70 79 53 69 7a 65 | .......return.NULL;.....copySize |
| d8a0 | 20 3d 20 2a 28 73 69 7a 65 5f 74 20 2a 29 28 28 63 68 61 72 20 2a 29 6f 6c 64 70 74 72 20 2d 20 | .=.*(size_t.*)((char.*)oldptr.-. |
| d8c0 | 53 49 5a 45 5f 54 5f 53 49 5a 45 29 3b 0a 20 20 20 20 69 66 20 28 73 69 7a 65 20 3c 20 63 6f 70 | SIZE_T_SIZE);.....if.(size.<.cop |
| d8e0 | 79 53 69 7a 65 29 0a 20 20 20 20 20 20 63 6f 70 79 53 69 7a 65 20 3d 20 73 69 7a 65 3b 0a 20 20 | ySize).......copySize.=.size;... |
| d900 | 20 20 6d 65 6d 63 70 79 28 6e 65 77 70 74 72 2c 20 6f 6c 64 70 74 72 2c 20 63 6f 70 79 53 69 7a | ..memcpy(newptr,.oldptr,.copySiz |
| d920 | 65 29 3b 0a 20 20 20 20 6d 6d 5f 66 72 65 65 28 6f 6c 64 70 74 72 29 3b 0a 20 20 20 20 72 65 74 | e);.....mm_free(oldptr);.....ret |
| d940 | 75 72 6e 20 6e 65 77 70 74 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 00 00 00 00 | urn.newptr;.}................... |
| d960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| d980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| d9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| d9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| d9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| da00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 6d 2e 68 00 00 00 00 00 00 00 00 00 00 | malloclab-handout/mm.h.......... |
| da20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| da40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| da60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| da80 | 30 30 30 31 31 37 36 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 34 31 31 31 00 20 30 00 00 00 | 0001176.12507032412.014111..0... |
| daa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| db00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| db20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| db40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| db60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| db80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dbc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dbe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dc00 | 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 0a 65 78 74 65 72 6e 20 69 6e 74 20 6d | #include.<stdio.h>..extern.int.m |
| dc20 | 6d 5f 69 6e 69 74 20 28 76 6f 69 64 29 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 6d 6d 5f 6d | m_init.(void);.extern.void.*mm_m |
| dc40 | 61 6c 6c 6f 63 20 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 | alloc.(size_t.size);.extern.void |
| dc60 | 20 6d 6d 5f 66 72 65 65 20 28 76 6f 69 64 20 2a 70 74 72 29 3b 0a 65 78 74 65 72 6e 20 76 6f 69 | .mm_free.(void.*ptr);.extern.voi |
| dc80 | 64 20 2a 6d 6d 5f 72 65 61 6c 6c 6f 63 28 76 6f 69 64 20 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 | d.*mm_realloc(void.*ptr,.size_t. |
| dca0 | 73 69 7a 65 29 3b 0a 0a 0a 2f 2a 20 0a 20 2a 20 53 74 75 64 65 6e 74 73 20 77 6f 72 6b 20 69 6e | size);.../*...*.Students.work.in |
| dcc0 | 20 74 65 61 6d 73 20 6f 66 20 6f 6e 65 20 6f 72 20 74 77 6f 2e 20 20 54 65 61 6d 73 20 65 6e 74 | .teams.of.one.or.two...Teams.ent |
| dce0 | 65 72 20 74 68 65 69 72 20 74 65 61 6d 20 6e 61 6d 65 2c 20 0a 20 2a 20 70 65 72 73 6f 6e 61 6c | er.their.team.name,...*.personal |
| dd00 | 20 6e 61 6d 65 73 20 61 6e 64 20 6c 6f 67 69 6e 20 49 44 73 20 69 6e 20 61 20 73 74 72 75 63 74 | .names.and.login.IDs.in.a.struct |
| dd20 | 20 6f 66 20 74 68 69 73 0a 20 2a 20 74 79 70 65 20 69 6e 20 74 68 65 69 72 20 62 69 74 73 2e 63 | .of.this..*.type.in.their.bits.c |
| dd40 | 20 66 69 6c 65 2e 0a 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 | .file...*/.typedef.struct.{..... |
| dd60 | 63 68 61 72 20 2a 74 65 61 6d 6e 61 6d 65 3b 20 2f 2a 20 49 44 31 2b 49 44 32 20 6f 72 20 49 44 | char.*teamname;./*.ID1+ID2.or.ID |
| dd80 | 31 20 2a 2f 0a 20 20 20 20 63 68 61 72 20 2a 6e 61 6d 65 31 3b 20 20 20 20 2f 2a 20 66 75 6c 6c | 1.*/.....char.*name1;..../*.full |
| dda0 | 20 6e 61 6d 65 20 6f 66 20 66 69 72 73 74 20 6d 65 6d 62 65 72 20 2a 2f 0a 20 20 20 20 63 68 61 | .name.of.first.member.*/.....cha |
| ddc0 | 72 20 2a 69 64 31 3b 20 20 20 20 20 20 2f 2a 20 6c 6f 67 69 6e 20 49 44 20 6f 66 20 66 69 72 73 | r.*id1;....../*.login.ID.of.firs |
| dde0 | 74 20 6d 65 6d 62 65 72 20 2a 2f 0a 20 20 20 20 63 68 61 72 20 2a 6e 61 6d 65 32 3b 20 20 20 20 | t.member.*/.....char.*name2;.... |
| de00 | 2f 2a 20 66 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 73 65 63 6f 6e 64 20 6d 65 6d 62 65 72 20 28 69 | /*.full.name.of.second.member.(i |
| de20 | 66 20 61 6e 79 29 20 2a 2f 0a 20 20 20 20 63 68 61 72 20 2a 69 64 32 3b 20 20 20 20 20 20 2f 2a | f.any).*/.....char.*id2;....../* |
| de40 | 20 6c 6f 67 69 6e 20 49 44 20 6f 66 20 73 65 63 6f 6e 64 20 6d 65 6d 62 65 72 20 2a 2f 0a 7d 20 | .login.ID.of.second.member.*/.}. |
| de60 | 74 65 61 6d 5f 74 3b 0a 0a 65 78 74 65 72 6e 20 74 65 61 6d 5f 74 20 74 65 61 6d 3b 0a 0a 00 00 | team_t;..extern.team_t.team;.... |
| de80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| df00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| df20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| df40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| df60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| df80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| dfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e000 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 6d 64 72 69 76 65 72 2e 63 00 00 00 00 00 | malloclab-handout/mdriver.c..... |
| e020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e060 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| e080 | 30 30 37 31 37 37 33 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 35 31 35 35 00 20 30 00 00 00 | 0071773.12507032412.015155..0... |
| e0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e100 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| e120 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| e140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| e200 | 2f 2a 0a 20 2a 20 6d 64 72 69 76 65 72 2e 63 20 2d 20 43 53 3a 41 50 50 20 4d 61 6c 6c 6f 63 20 | /*..*.mdriver.c.-.CS:APP.Malloc. |
| e220 | 4c 61 62 20 44 72 69 76 65 72 0a 20 2a 20 0a 20 2a 20 55 73 65 73 20 61 20 63 6f 6c 6c 65 63 74 | Lab.Driver..*...*.Uses.a.collect |
| e240 | 69 6f 6e 20 6f 66 20 74 72 61 63 65 20 66 69 6c 65 73 20 74 6f 20 74 65 73 74 73 20 61 20 6d 61 | ion.of.trace.files.to.tests.a.ma |
| e260 | 6c 6c 6f 63 2f 66 72 65 65 2f 72 65 61 6c 6c 6f 63 0a 20 2a 20 69 6d 70 6c 65 6d 65 6e 74 61 74 | lloc/free/realloc..*.implementat |
| e280 | 69 6f 6e 20 69 6e 20 6d 6d 2e 63 2e 0a 20 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 | ion.in.mm.c...*..*.Copyright.(c) |
| e2a0 | 20 32 30 30 32 2c 20 52 2e 20 42 72 79 61 6e 74 20 61 6e 64 20 44 2e 20 4f 27 48 61 6c 6c 61 72 | .2002,.R..Bryant.and.D..O'Hallar |
| e2c0 | 6f 6e 2c 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 20 2a 20 4d 61 79 20 | on,.All.rights.reserved...*.May. |
| e2e0 | 6e 6f 74 20 62 65 20 75 73 65 64 2c 20 6d 6f 64 69 66 69 65 64 2c 20 6f 72 20 63 6f 70 69 65 64 | not.be.used,.modified,.or.copied |
| e300 | 20 77 69 74 68 6f 75 74 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 20 2a 2f 0a 23 69 6e 63 6c 75 64 | .without.permission...*/.#includ |
| e320 | 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a | e.<stdio.h>.#include.<stdlib.h>. |
| e340 | 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72 | #include.<unistd.h>.#include.<er |
| e360 | 72 6e 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 69 6e 63 6c | rno.h>.#include.<string.h>.#incl |
| e380 | 75 64 65 20 3c 61 73 73 65 72 74 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 66 6c 6f 61 74 2e 68 | ude.<assert.h>.#include.<float.h |
| e3a0 | 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 0a 0a 23 69 6e 63 6c 75 64 65 20 22 6d | >.#include.<time.h>..#include."m |
| e3c0 | 6d 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 6d 65 6d 6c 69 62 2e 68 22 0a 23 69 6e 63 6c 75 64 | m.h".#include."memlib.h".#includ |
| e3e0 | 65 20 22 66 73 65 63 73 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 0a | e."fsecs.h".#include."config.h". |
| e400 | 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 43 6f 6e 73 | ./**********************..*.Cons |
| e420 | 74 61 6e 74 73 20 61 6e 64 20 6d 61 63 72 6f 73 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | tants.and.macros..************** |
| e440 | 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 4d 69 73 63 20 2a 2f 0a 23 64 65 66 69 6e 65 20 4d 41 | ********/../*.Misc.*/.#define.MA |
| e460 | 58 4c 49 4e 45 20 20 20 20 20 31 30 32 34 20 2f 2a 20 6d 61 78 20 73 74 72 69 6e 67 20 73 69 7a | XLINE.....1024./*.max.string.siz |
| e480 | 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 48 44 52 4c 49 4e 45 53 20 20 20 20 20 20 20 34 20 2f 2a | e.*/.#define.HDRLINES.......4./* |
| e4a0 | 20 6e 75 6d 62 65 72 20 6f 66 20 68 65 61 64 65 72 20 6c 69 6e 65 73 20 69 6e 20 61 20 74 72 61 | .number.of.header.lines.in.a.tra |
| e4c0 | 63 65 20 66 69 6c 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 4c 49 4e 45 4e 55 4d 28 69 29 20 28 69 | ce.file.*/.#define.LINENUM(i).(i |
| e4e0 | 2b 35 29 20 2f 2a 20 63 6e 76 74 20 74 72 61 63 65 20 72 65 71 75 65 73 74 20 6e 75 6d 73 20 74 | +5)./*.cnvt.trace.request.nums.t |
| e500 | 6f 20 6c 69 6e 65 6e 75 6d 73 20 28 6f 72 69 67 69 6e 20 31 29 20 2a 2f 0a 0a 2f 2a 20 52 65 74 | o.linenums.(origin.1).*/../*.Ret |
| e520 | 75 72 6e 73 20 74 72 75 65 20 69 66 20 70 20 69 73 20 41 4c 49 47 4e 4d 45 4e 54 2d 62 79 74 65 | urns.true.if.p.is.ALIGNMENT-byte |
| e540 | 20 61 6c 69 67 6e 65 64 20 2a 2f 0a 23 64 65 66 69 6e 65 20 49 53 5f 41 4c 49 47 4e 45 44 28 70 | .aligned.*/.#define.IS_ALIGNED(p |
| e560 | 29 20 20 28 28 28 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 29 28 70 29 29 20 25 20 41 4c 49 47 4e | )..((((unsigned.int)(p)).%.ALIGN |
| e580 | 4d 45 4e 54 29 20 3d 3d 20 30 29 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | MENT).==.0)../****************** |
| e5a0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 0a 20 2a 20 54 68 65 20 6b 65 79 20 63 6f 6d 70 6f 75 6e | ************...*.The.key.compoun |
| e5c0 | 64 20 64 61 74 61 20 74 79 70 65 73 20 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | d.data.types...***************** |
| e5e0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 52 65 63 6f 72 64 73 20 74 68 65 20 65 78 | ************/../*.Records.the.ex |
| e600 | 74 65 6e 74 20 6f 66 20 65 61 63 68 20 62 6c 6f 63 6b 27 73 20 70 61 79 6c 6f 61 64 20 2a 2f 0a | tent.of.each.block's.payload.*/. |
| e620 | 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 72 61 6e 67 65 5f 74 20 7b 0a 20 20 20 20 63 68 61 | typedef.struct.range_t.{.....cha |
| e640 | 72 20 2a 6c 6f 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 6c 6f 77 20 70 61 79 6c 6f | r.*lo;............../*.low.paylo |
| e660 | 61 64 20 61 64 64 72 65 73 73 20 2a 2f 0a 20 20 20 20 63 68 61 72 20 2a 68 69 3b 20 20 20 20 20 | ad.address.*/.....char.*hi;..... |
| e680 | 20 20 20 20 20 20 20 20 20 2f 2a 20 68 69 67 68 20 70 61 79 6c 6f 61 64 20 61 64 64 72 65 73 73 | ........./*.high.payload.address |
| e6a0 | 20 2a 2f 0a 20 20 20 20 73 74 72 75 63 74 20 72 61 6e 67 65 5f 74 20 2a 6e 65 78 74 3b 20 20 2f | .*/.....struct.range_t.*next;../ |
| e6c0 | 2a 20 6e 65 78 74 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 20 2a 2f 0a 7d 20 72 61 6e 67 65 5f 74 | *.next.list.element.*/.}.range_t |
| e6e0 | 3b 0a 0a 2f 2a 20 43 68 61 72 61 63 74 65 72 69 7a 65 73 20 61 20 73 69 6e 67 6c 65 20 74 72 61 | ;../*.Characterizes.a.single.tra |
| e700 | 63 65 20 6f 70 65 72 61 74 69 6f 6e 20 28 61 6c 6c 6f 63 61 74 6f 72 20 72 65 71 75 65 73 74 29 | ce.operation.(allocator.request) |
| e720 | 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 65 6e 75 6d 20 7b 41 | .*/.typedef.struct.{.....enum.{A |
| e740 | 4c 4c 4f 43 2c 20 46 52 45 45 2c 20 52 45 41 4c 4c 4f 43 7d 20 74 79 70 65 3b 20 2f 2a 20 74 79 | LLOC,.FREE,.REALLOC}.type;./*.ty |
| e760 | 70 65 20 6f 66 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 69 6e 74 20 69 6e 64 65 78 3b 20 | pe.of.request.*/.....int.index;. |
| e780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 69 6e 64 65 78 20 | ......................./*.index. |
| e7a0 | 66 6f 72 20 66 72 65 65 28 29 20 74 6f 20 75 73 65 20 6c 61 74 65 72 20 2a 2f 0a 20 20 20 20 69 | for.free().to.use.later.*/.....i |
| e7c0 | 6e 74 20 73 69 7a 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt.size;........................ |
| e7e0 | 20 2f 2a 20 62 79 74 65 20 73 69 7a 65 20 6f 66 20 61 6c 6c 6f 63 2f 72 65 61 6c 6c 6f 63 20 72 | ./*.byte.size.of.alloc/realloc.r |
| e800 | 65 71 75 65 73 74 20 2a 2f 0a 7d 20 74 72 61 63 65 6f 70 5f 74 3b 0a 0a 2f 2a 20 48 6f 6c 64 73 | equest.*/.}.traceop_t;../*.Holds |
| e820 | 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 6f 6e 65 20 74 72 61 63 65 20 66 | .the.information.for.one.trace.f |
| e840 | 69 6c 65 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 69 6e 74 20 73 | ile*/.typedef.struct.{.....int.s |
| e860 | 75 67 67 5f 68 65 61 70 73 69 7a 65 3b 20 20 20 2f 2a 20 73 75 67 67 65 73 74 65 64 20 68 65 61 | ugg_heapsize;.../*.suggested.hea |
| e880 | 70 20 73 69 7a 65 20 28 75 6e 75 73 65 64 29 20 2a 2f 0a 20 20 20 20 69 6e 74 20 6e 75 6d 5f 69 | p.size.(unused).*/.....int.num_i |
| e8a0 | 64 73 3b 20 20 20 20 20 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 6f 63 2f 72 | ds;........./*.number.of.alloc/r |
| e8c0 | 65 61 6c 6c 6f 63 20 69 64 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 6e 75 6d 5f 6f 70 73 3b 20 20 | ealloc.ids.*/.....int.num_ops;.. |
| e8e0 | 20 20 20 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 74 69 6e 63 74 20 72 65 71 | ......./*.number.of.distinct.req |
| e900 | 75 65 73 74 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 77 65 69 67 68 74 3b 20 20 20 20 20 20 20 20 | uests.*/.....int.weight;........ |
| e920 | 20 20 2f 2a 20 77 65 69 67 68 74 20 66 6f 72 20 74 68 69 73 20 74 72 61 63 65 20 28 75 6e 75 73 | ../*.weight.for.this.trace.(unus |
| e940 | 65 64 29 20 2a 2f 0a 20 20 20 20 74 72 61 63 65 6f 70 5f 74 20 2a 6f 70 73 3b 20 20 20 20 20 20 | ed).*/.....traceop_t.*ops;...... |
| e960 | 2f 2a 20 61 72 72 61 79 20 6f 66 20 72 65 71 75 65 73 74 73 20 2a 2f 0a 20 20 20 20 63 68 61 72 | /*.array.of.requests.*/.....char |
| e980 | 20 2a 2a 62 6c 6f 63 6b 73 3b 20 20 20 20 20 20 20 2f 2a 20 61 72 72 61 79 20 6f 66 20 70 74 72 | .**blocks;......./*.array.of.ptr |
| e9a0 | 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 6d 61 6c 6c 6f 63 2f 72 65 61 6c 6c 6f 63 2e 2e 2e 20 | s.returned.by.malloc/realloc.... |
| e9c0 | 2a 2f 0a 20 20 20 20 73 69 7a 65 5f 74 20 2a 62 6c 6f 63 6b 5f 73 69 7a 65 73 3b 20 2f 2a 20 2e | */.....size_t.*block_sizes;./*.. |
| e9e0 | 2e 2e 20 61 6e 64 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 61 72 72 61 79 20 6f 66 20 | ...and.a.corresponding.array.of. |
| ea00 | 70 61 79 6c 6f 61 64 20 73 69 7a 65 73 20 2a 2f 0a 7d 20 74 72 61 63 65 5f 74 3b 0a 0a 2f 2a 20 | payload.sizes.*/.}.trace_t;../*. |
| ea20 | 0a 20 2a 20 48 6f 6c 64 73 20 74 68 65 20 70 61 72 61 6d 73 20 74 6f 20 74 68 65 20 78 78 78 5f | ..*.Holds.the.params.to.the.xxx_ |
| ea40 | 73 70 65 65 64 20 66 75 6e 63 74 69 6f 6e 73 2c 20 77 68 69 63 68 20 61 72 65 20 74 69 6d 65 64 | speed.functions,.which.are.timed |
| ea60 | 20 62 79 20 66 63 79 63 2e 20 0a 20 2a 20 54 68 69 73 20 73 74 72 75 63 74 20 69 73 20 6e 65 63 | .by.fcyc....*.This.struct.is.nec |
| ea80 | 65 73 73 61 72 79 20 62 65 63 61 75 73 65 20 66 63 79 63 20 61 63 63 65 70 74 73 20 6f 6e 6c 79 | essary.because.fcyc.accepts.only |
| eaa0 | 20 61 20 70 6f 69 6e 74 65 72 20 61 72 72 61 79 0a 20 2a 20 61 73 20 69 6e 70 75 74 2e 0a 20 2a | .a.pointer.array..*.as.input...* |
| eac0 | 2f 0a 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 74 72 61 63 65 5f 74 20 2a | /.typedef.struct.{.....trace_t.* |
| eae0 | 74 72 61 63 65 3b 20 20 0a 20 20 20 20 72 61 6e 67 65 5f 74 20 2a 72 61 6e 67 65 73 3b 0a 7d 20 | trace;.......range_t.*ranges;.}. |
| eb00 | 73 70 65 65 64 5f 74 3b 0a 0a 2f 2a 20 53 75 6d 6d 61 72 69 7a 65 73 20 74 68 65 20 69 6d 70 6f | speed_t;../*.Summarizes.the.impo |
| eb20 | 72 74 61 6e 74 20 73 74 61 74 73 20 66 6f 72 20 73 6f 6d 65 20 6d 61 6c 6c 6f 63 20 66 75 6e 63 | rtant.stats.for.some.malloc.func |
| eb40 | 74 69 6f 6e 20 6f 6e 20 73 6f 6d 65 20 74 72 61 63 65 20 2a 2f 0a 74 79 70 65 64 65 66 20 73 74 | tion.on.some.trace.*/.typedef.st |
| eb60 | 72 75 63 74 20 7b 0a 20 20 20 20 2f 2a 20 64 65 66 69 6e 65 64 20 66 6f 72 20 62 6f 74 68 20 6c | ruct.{...../*.defined.for.both.l |
| eb80 | 69 62 63 20 6d 61 6c 6c 6f 63 20 61 6e 64 20 73 74 75 64 65 6e 74 20 6d 61 6c 6c 6f 63 20 70 61 | ibc.malloc.and.student.malloc.pa |
| eba0 | 63 6b 61 67 65 20 28 6d 6d 2e 63 29 20 2a 2f 0a 20 20 20 20 64 6f 75 62 6c 65 20 6f 70 73 3b 20 | ckage.(mm.c).*/.....double.ops;. |
| ebc0 | 20 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 6f 70 73 20 28 6d 61 6c 6c 6f 63 2f 66 72 | ...../*.number.of.ops.(malloc/fr |
| ebe0 | 65 65 2f 72 65 61 6c 6c 6f 63 29 20 69 6e 20 74 68 65 20 74 72 61 63 65 20 2a 2f 0a 20 20 20 20 | ee/realloc).in.the.trace.*/..... |
| ec00 | 69 6e 74 20 76 61 6c 69 64 3b 20 20 20 20 20 20 20 2f 2a 20 77 61 73 20 74 68 65 20 74 72 61 63 | int.valid;......./*.was.the.trac |
| ec20 | 65 20 70 72 6f 63 65 73 73 65 64 20 63 6f 72 72 65 63 74 6c 79 20 62 79 20 74 68 65 20 61 6c 6c | e.processed.correctly.by.the.all |
| ec40 | 6f 63 61 74 6f 72 3f 20 2a 2f 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 73 3b 20 20 20 20 20 | ocator?.*/.....double.secs;..... |
| ec60 | 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 73 20 6e 65 65 64 65 64 20 74 6f 20 72 75 6e 20 | /*.number.of.secs.needed.to.run. |
| ec80 | 74 68 65 20 74 72 61 63 65 20 2a 2f 0a 0a 20 20 20 20 2f 2a 20 64 65 66 69 6e 65 64 20 6f 6e 6c | the.trace.*/....../*.defined.onl |
| eca0 | 79 20 66 6f 72 20 74 68 65 20 73 74 75 64 65 6e 74 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 | y.for.the.student.malloc.package |
| ecc0 | 20 2a 2f 0a 20 20 20 20 64 6f 75 62 6c 65 20 75 74 69 6c 3b 20 20 20 20 20 2f 2a 20 73 70 61 63 | .*/.....double.util;...../*.spac |
| ece0 | 65 20 75 74 69 6c 69 7a 61 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 74 72 61 63 65 20 28 61 6c | e.utilization.for.this.trace.(al |
| ed00 | 77 61 79 73 20 30 20 66 6f 72 20 6c 69 62 63 29 20 2a 2f 0a 0a 20 20 20 20 2f 2a 20 4e 6f 74 65 | ways.0.for.libc).*/....../*.Note |
| ed20 | 3a 20 73 65 63 73 20 61 6e 64 20 75 74 69 6c 20 61 72 65 20 6f 6e 6c 79 20 64 65 66 69 6e 65 64 | :.secs.and.util.are.only.defined |
| ed40 | 20 69 66 20 76 61 6c 69 64 20 69 73 20 74 72 75 65 20 2a 2f 0a 7d 20 73 74 61 74 73 5f 74 3b 20 | .if.valid.is.true.*/.}.stats_t;. |
| ed60 | 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 47 6c 6f 62 61 | ../********************..*.Globa |
| ed80 | 6c 20 76 61 72 69 61 62 6c 65 73 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | l.variables..******************* |
| eda0 | 2f 0a 69 6e 74 20 76 65 72 62 6f 73 65 20 3d 20 30 3b 20 20 20 20 20 20 20 20 2f 2a 20 67 6c 6f | /.int.verbose.=.0;......../*.glo |
| edc0 | 62 61 6c 20 66 6c 61 67 20 66 6f 72 20 76 65 72 62 6f 73 65 20 6f 75 74 70 75 74 20 2a 2f 0a 73 | bal.flag.for.verbose.output.*/.s |
| ede0 | 74 61 74 69 63 20 69 6e 74 20 65 72 72 6f 72 73 20 3d 20 30 3b 20 20 2f 2a 20 6e 75 6d 62 65 72 | tatic.int.errors.=.0;../*.number |
| ee00 | 20 6f 66 20 65 72 72 73 20 66 6f 75 6e 64 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 73 74 75 64 | .of.errs.found.when.running.stud |
| ee20 | 65 6e 74 20 6d 61 6c 6c 6f 63 20 2a 2f 0a 63 68 61 72 20 6d 73 67 5b 4d 41 58 4c 49 4e 45 5d 3b | ent.malloc.*/.char.msg[MAXLINE]; |
| ee40 | 20 20 20 20 20 20 2f 2a 20 66 6f 72 20 77 68 65 6e 65 76 65 72 20 77 65 20 6e 65 65 64 20 74 6f | ....../*.for.whenever.we.need.to |
| ee60 | 20 63 6f 6d 70 6f 73 65 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 2a 2f 0a 0a 2f 2a | .compose.an.error.message.*/../* |
| ee80 | 20 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 64 65 66 61 75 6c 74 20 74 72 61 63 65 66 69 | .Directory.where.default.tracefi |
| eea0 | 6c 65 73 20 61 72 65 20 66 6f 75 6e 64 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 74 72 61 | les.are.found.*/.static.char.tra |
| eec0 | 63 65 64 69 72 5b 4d 41 58 4c 49 4e 45 5d 20 3d 20 54 52 41 43 45 44 49 52 3b 0a 0a 2f 2a 20 54 | cedir[MAXLINE].=.TRACEDIR;../*.T |
| eee0 | 68 65 20 66 69 6c 65 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 64 65 66 61 75 6c 74 20 74 72 61 63 | he.filenames.of.the.default.trac |
| ef00 | 65 66 69 6c 65 73 20 2a 2f 0a 73 74 61 74 69 63 20 63 68 61 72 20 2a 64 65 66 61 75 6c 74 5f 74 | efiles.*/.static.char.*default_t |
| ef20 | 72 61 63 65 66 69 6c 65 73 5b 5d 20 3d 20 7b 20 20 0a 20 20 20 20 44 45 46 41 55 4c 54 5f 54 52 | racefiles[].=.{.......DEFAULT_TR |
| ef40 | 41 43 45 46 49 4c 45 53 2c 20 4e 55 4c 4c 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ACEFILES,.NULL.};.../*********** |
| ef60 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 0a 20 2a 20 46 75 6e 63 74 69 6f 6e 20 70 72 6f 74 6f 74 79 70 | **********...*.Function.prototyp |
| ef80 | 65 73 20 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 20 | es...*********************/../*. |
| efa0 | 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 6d 61 6e 69 70 75 6c 61 74 65 20 72 61 6e 67 65 | these.functions.manipulate.range |
| efc0 | 20 6c 69 73 74 73 20 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 61 64 64 5f 72 61 6e 67 65 28 72 | .lists.*/.static.int.add_range(r |
| efe0 | 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 73 2c 20 63 68 61 72 20 2a 6c 6f 2c 20 69 6e 74 20 73 | ange_t.**ranges,.char.*lo,.int.s |
| f000 | 69 7a 65 2c 20 0a 09 09 20 20 20 20 20 69 6e 74 20 74 72 61 63 65 6e 75 6d 2c 20 69 6e 74 20 6f | ize,.........int.tracenum,.int.o |
| f020 | 70 6e 75 6d 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6d 6f 76 65 5f 72 61 6e 67 65 28 | pnum);.static.void.remove_range( |
| f040 | 72 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 73 2c 20 63 68 61 72 20 2a 6c 6f 29 3b 0a 73 74 61 | range_t.**ranges,.char.*lo);.sta |
| f060 | 74 69 63 20 76 6f 69 64 20 63 6c 65 61 72 5f 72 61 6e 67 65 73 28 72 61 6e 67 65 5f 74 20 2a 2a | tic.void.clear_ranges(range_t.** |
| f080 | 72 61 6e 67 65 73 29 3b 0a 0a 2f 2a 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 61 | ranges);../*.These.functions.rea |
| f0a0 | 64 2c 20 61 6c 6c 6f 63 61 74 65 2c 20 61 6e 64 20 66 72 65 65 20 73 74 6f 72 61 67 65 20 66 6f | d,.allocate,.and.free.storage.fo |
| f0c0 | 72 20 74 72 61 63 65 73 20 2a 2f 0a 73 74 61 74 69 63 20 74 72 61 63 65 5f 74 20 2a 72 65 61 64 | r.traces.*/.static.trace_t.*read |
| f0e0 | 5f 74 72 61 63 65 28 63 68 61 72 20 2a 74 72 61 63 65 64 69 72 2c 20 63 68 61 72 20 2a 66 69 6c | _trace(char.*tracedir,.char.*fil |
| f100 | 65 6e 61 6d 65 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 66 72 65 65 5f 74 72 61 63 65 28 74 | ename);.static.void.free_trace(t |
| f120 | 72 61 63 65 5f 74 20 2a 74 72 61 63 65 29 3b 0a 0a 2f 2a 20 52 6f 75 74 69 6e 65 73 20 66 6f 72 | race_t.*trace);../*.Routines.for |
| f140 | 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 63 6f 72 72 65 63 74 6e 65 73 73 20 61 6e 64 20 | .evaluating.the.correctness.and. |
| f160 | 73 70 65 65 64 20 6f 66 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 2a 2f 0a 73 74 61 74 69 63 20 69 | speed.of.libc.malloc.*/.static.i |
| f180 | 6e 74 20 65 76 61 6c 5f 6c 69 62 63 5f 76 61 6c 69 64 28 74 72 61 63 65 5f 74 20 2a 74 72 61 63 | nt.eval_libc_valid(trace_t.*trac |
| f1a0 | 65 2c 20 69 6e 74 20 74 72 61 63 65 6e 75 6d 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 65 76 | e,.int.tracenum);.static.void.ev |
| f1c0 | 61 6c 5f 6c 69 62 63 5f 73 70 65 65 64 28 76 6f 69 64 20 2a 70 74 72 29 3b 0a 0a 2f 2a 20 52 6f | al_libc_speed(void.*ptr);../*.Ro |
| f1e0 | 75 74 69 6e 65 73 20 66 6f 72 20 65 76 61 6c 75 61 74 69 6e 67 20 63 6f 72 72 65 63 74 6e 65 73 | utines.for.evaluating.correctnes |
| f200 | 2c 20 73 70 61 63 65 20 75 74 69 6c 69 7a 61 74 69 6f 6e 2c 20 61 6e 64 20 73 70 65 65 64 20 0a | ,.space.utilization,.and.speed.. |
| f220 | 20 20 20 6f 66 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 | ...of.the.student's.malloc.packa |
| f240 | 67 65 20 69 6e 20 6d 6d 2e 63 20 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 65 76 61 6c 5f 6d 6d | ge.in.mm.c.*/.static.int.eval_mm |
| f260 | 5f 76 61 6c 69 64 28 74 72 61 63 65 5f 74 20 2a 74 72 61 63 65 2c 20 69 6e 74 20 74 72 61 63 65 | _valid(trace_t.*trace,.int.trace |
| f280 | 6e 75 6d 2c 20 72 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 73 29 3b 0a 73 74 61 74 69 63 20 64 | num,.range_t.**ranges);.static.d |
| f2a0 | 6f 75 62 6c 65 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 28 74 72 61 63 65 5f 74 20 2a 74 72 61 63 | ouble.eval_mm_util(trace_t.*trac |
| f2c0 | 65 2c 20 69 6e 74 20 74 72 61 63 65 6e 75 6d 2c 20 72 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 | e,.int.tracenum,.range_t.**range |
| f2e0 | 73 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 65 76 61 6c 5f 6d 6d 5f 73 70 65 65 64 28 76 6f | s);.static.void.eval_mm_speed(vo |
| f300 | 69 64 20 2a 70 74 72 29 3b 0a 0a 2f 2a 20 56 61 72 69 6f 75 73 20 68 65 6c 70 65 72 20 72 6f 75 | id.*ptr);../*.Various.helper.rou |
| f320 | 74 69 6e 65 73 20 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 69 6e 74 72 65 73 75 6c 74 | tines.*/.static.void.printresult |
| f340 | 73 28 69 6e 74 20 6e 2c 20 73 74 61 74 73 5f 74 20 2a 73 74 61 74 73 29 3b 0a 73 74 61 74 69 63 | s(int.n,.stats_t.*stats);.static |
| f360 | 20 76 6f 69 64 20 75 73 61 67 65 28 76 6f 69 64 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 75 | .void.usage(void);.static.void.u |
| f380 | 6e 69 78 5f 65 72 72 6f 72 28 63 68 61 72 20 2a 6d 73 67 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 | nix_error(char.*msg);.static.voi |
| f3a0 | 64 20 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 69 6e 74 20 74 72 61 63 65 6e 75 6d 2c 20 69 6e 74 | d.malloc_error(int.tracenum,.int |
| f3c0 | 20 6f 70 6e 75 6d 2c 20 63 68 61 72 20 2a 6d 73 67 29 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 | .opnum,.char.*msg);.static.void. |
| f3e0 | 61 70 70 5f 65 72 72 6f 72 28 63 68 61 72 20 2a 6d 73 67 29 3b 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a | app_error(char.*msg);../******** |
| f400 | 2a 2a 2a 2a 2a 2a 0a 20 2a 20 4d 61 69 6e 20 72 6f 75 74 69 6e 65 0a 20 2a 2a 2a 2a 2a 2a 2a 2a | ******..*.Main.routine..******** |
| f420 | 2a 2a 2a 2a 2a 2a 2f 0a 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 | ******/.int.main(int.argc,.char. |
| f440 | 2a 2a 61 72 67 76 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 63 68 61 72 20 63 3b | **argv).{.....int.i;.....char.c; |
| f460 | 0a 20 20 20 20 63 68 61 72 20 2a 2a 74 72 61 63 65 66 69 6c 65 73 20 3d 20 4e 55 4c 4c 3b 20 20 | .....char.**tracefiles.=.NULL;.. |
| f480 | 2f 2a 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 61 72 72 61 79 20 6f 66 20 74 72 61 63 | /*.null-terminated.array.of.trac |
| f4a0 | 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 6e 75 6d 5f 74 72 61 63 | e.file.names.*/.....int.num_trac |
| f4c0 | 65 66 69 6c 65 73 20 3d 20 30 3b 20 20 20 20 2f 2a 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 | efiles.=.0;..../*.the.number.of. |
| f4e0 | 74 72 61 63 65 73 20 69 6e 20 74 68 61 74 20 61 72 72 61 79 20 2a 2f 0a 20 20 20 20 74 72 61 63 | traces.in.that.array.*/.....trac |
| f500 | 65 5f 74 20 2a 74 72 61 63 65 20 3d 20 4e 55 4c 4c 3b 20 20 20 20 20 2f 2a 20 73 74 6f 72 65 73 | e_t.*trace.=.NULL;...../*.stores |
| f520 | 20 61 20 73 69 6e 67 6c 65 20 74 72 61 63 65 20 66 69 6c 65 20 69 6e 20 6d 65 6d 6f 72 79 20 2a | .a.single.trace.file.in.memory.* |
| f540 | 2f 0a 20 20 20 20 72 61 6e 67 65 5f 74 20 2a 72 61 6e 67 65 73 20 3d 20 4e 55 4c 4c 3b 20 20 20 | /.....range_t.*ranges.=.NULL;... |
| f560 | 20 2f 2a 20 6b 65 65 70 73 20 74 72 61 63 6b 20 6f 66 20 62 6c 6f 63 6b 20 65 78 74 65 6e 74 73 | ./*.keeps.track.of.block.extents |
| f580 | 20 66 6f 72 20 6f 6e 65 20 74 72 61 63 65 20 2a 2f 0a 20 20 20 20 73 74 61 74 73 5f 74 20 2a 6c | .for.one.trace.*/.....stats_t.*l |
| f5a0 | 69 62 63 5f 73 74 61 74 73 20 3d 20 4e 55 4c 4c 3b 2f 2a 20 6c 69 62 63 20 73 74 61 74 73 20 66 | ibc_stats.=.NULL;/*.libc.stats.f |
| f5c0 | 6f 72 20 65 61 63 68 20 74 72 61 63 65 20 2a 2f 0a 20 20 20 20 73 74 61 74 73 5f 74 20 2a 6d 6d | or.each.trace.*/.....stats_t.*mm |
| f5e0 | 5f 73 74 61 74 73 20 3d 20 4e 55 4c 4c 3b 20 20 2f 2a 20 6d 6d 20 28 69 2e 65 2e 20 73 74 75 64 | _stats.=.NULL;../*.mm.(i.e..stud |
| f600 | 65 6e 74 29 20 73 74 61 74 73 20 66 6f 72 20 65 61 63 68 20 74 72 61 63 65 20 2a 2f 0a 20 20 20 | ent).stats.for.each.trace.*/.... |
| f620 | 20 73 70 65 65 64 5f 74 20 73 70 65 65 64 5f 70 61 72 61 6d 73 3b 20 20 20 20 20 20 2f 2a 20 69 | .speed_t.speed_params;....../*.i |
| f640 | 6e 70 75 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 74 68 65 20 78 78 5f 73 70 65 65 64 20 | nput.parameters.to.the.xx_speed. |
| f660 | 72 6f 75 74 69 6e 65 73 20 2a 2f 20 0a 0a 20 20 20 20 69 6e 74 20 74 65 61 6d 5f 63 68 65 63 6b | routines.*/.......int.team_check |
| f680 | 20 3d 20 31 3b 20 20 2f 2a 20 49 66 20 73 65 74 2c 20 63 68 65 63 6b 20 74 65 61 6d 20 73 74 72 | .=.1;../*.If.set,.check.team.str |
| f6a0 | 75 63 74 75 72 65 20 28 72 65 73 65 74 20 62 79 20 2d 61 29 20 2a 2f 0a 20 20 20 20 69 6e 74 20 | ucture.(reset.by.-a).*/.....int. |
| f6c0 | 72 75 6e 5f 6c 69 62 63 20 3d 20 30 3b 20 20 20 20 2f 2a 20 49 66 20 73 65 74 2c 20 72 75 6e 20 | run_libc.=.0;..../*.If.set,.run. |
| f6e0 | 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 28 73 65 74 20 62 79 20 2d 6c 29 20 2a 2f 0a 20 20 20 20 69 | libc.malloc.(set.by.-l).*/.....i |
| f700 | 6e 74 20 61 75 74 6f 67 72 61 64 65 72 20 3d 20 30 3b 20 20 2f 2a 20 49 66 20 73 65 74 2c 20 65 | nt.autograder.=.0;../*.If.set,.e |
| f720 | 6d 69 74 20 73 75 6d 6d 61 72 79 20 69 6e 66 6f 20 66 6f 72 20 61 75 74 6f 67 72 61 64 65 72 20 | mit.summary.info.for.autograder. |
| f740 | 28 2d 67 29 20 2a 2f 0a 0a 20 20 20 20 2f 2a 20 74 65 6d 70 6f 72 61 72 69 65 73 20 75 73 65 64 | (-g).*/....../*.temporaries.used |
| f760 | 20 74 6f 20 63 6f 6d 70 75 74 65 20 74 68 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 64 65 | .to.compute.the.performance.inde |
| f780 | 78 20 2a 2f 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 73 2c 20 6f 70 73 2c 20 75 74 69 6c 2c | x.*/.....double.secs,.ops,.util, |
| f7a0 | 20 61 76 67 5f 6d 6d 5f 75 74 69 6c 2c 20 61 76 67 5f 6d 6d 5f 74 68 72 6f 75 67 68 70 75 74 2c | .avg_mm_util,.avg_mm_throughput, |
| f7c0 | 20 70 31 2c 20 70 32 2c 20 70 65 72 66 69 6e 64 65 78 3b 0a 20 20 20 20 69 6e 74 20 6e 75 6d 63 | .p1,.p2,.perfindex;.....int.numc |
| f7e0 | 6f 72 72 65 63 74 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2a 20 0a 20 20 20 20 20 2a 20 52 65 61 64 | orrect;........../*.......*.Read |
| f800 | 20 61 6e 64 20 69 6e 74 65 72 70 72 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 | .and.interpret.the.command.line. |
| f820 | 61 72 67 75 6d 65 6e 74 73 20 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 77 68 69 6c 65 20 28 28 63 | arguments.......*/.....while.((c |
| f840 | 20 3d 20 67 65 74 6f 70 74 28 61 72 67 63 2c 20 61 72 67 76 2c 20 22 66 3a 74 3a 68 76 56 67 61 | .=.getopt(argc,.argv,."f:t:hvVga |
| f860 | 6c 22 29 29 20 21 3d 20 45 4f 46 29 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 63 | l")).!=.EOF).{.........switch.(c |
| f880 | 29 20 7b 0a 09 63 61 73 65 20 27 67 27 3a 20 2f 2a 20 47 65 6e 65 72 61 74 65 20 73 75 6d 6d 61 | ).{..case.'g':./*.Generate.summa |
| f8a0 | 72 79 20 69 6e 66 6f 20 66 6f 72 20 74 68 65 20 61 75 74 6f 67 72 61 64 65 72 20 2a 2f 0a 09 20 | ry.info.for.the.autograder.*/... |
| f8c0 | 20 20 20 61 75 74 6f 67 72 61 64 65 72 20 3d 20 31 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 20 | ...autograder.=.1;......break;.. |
| f8e0 | 20 20 20 20 20 20 20 63 61 73 65 20 27 66 27 3a 20 2f 2a 20 55 73 65 20 6f 6e 65 20 73 70 65 63 | .......case.'f':./*.Use.one.spec |
| f900 | 69 66 69 63 20 74 72 61 63 65 20 66 69 6c 65 20 6f 6e 6c 79 20 28 72 65 6c 61 74 69 76 65 20 74 | ific.trace.file.only.(relative.t |
| f920 | 6f 20 63 75 72 72 20 64 69 72 29 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 5f 74 | o.curr.dir).*/.............num_t |
| f940 | 72 61 63 65 66 69 6c 65 73 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 28 | racefiles.=.1;.............if.(( |
| f960 | 74 72 61 63 65 66 69 6c 65 73 20 3d 20 72 65 61 6c 6c 6f 63 28 74 72 61 63 65 66 69 6c 65 73 2c | tracefiles.=.realloc(tracefiles, |
| f980 | 20 32 2a 73 69 7a 65 6f 66 28 63 68 61 72 20 2a 29 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 09 75 | .2*sizeof(char.*))).==.NULL)...u |
| f9a0 | 6e 69 78 5f 65 72 72 6f 72 28 22 45 52 52 4f 52 3a 20 72 65 61 6c 6c 6f 63 20 66 61 69 6c 65 64 | nix_error("ERROR:.realloc.failed |
| f9c0 | 20 69 6e 20 6d 61 69 6e 22 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 74 72 61 63 65 64 69 72 | .in.main");......strcpy(tracedir |
| f9e0 | 2c 20 22 2e 2f 22 29 3b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 65 66 69 6c 65 73 | ,."./");..............tracefiles |
| fa00 | 5b 30 5d 20 3d 20 73 74 72 64 75 70 28 6f 70 74 61 72 67 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | [0].=.strdup(optarg);........... |
| fa20 | 20 20 74 72 61 63 65 66 69 6c 65 73 5b 31 5d 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 20 20 20 20 | ..tracefiles[1].=.NULL;......... |
| fa40 | 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 27 74 27 3a 20 2f 2a 20 44 69 72 65 63 74 6f | ....break;..case.'t':./*.Directo |
| fa60 | 72 79 20 77 68 65 72 65 20 74 68 65 20 74 72 61 63 65 73 20 61 72 65 20 6c 6f 63 61 74 65 64 20 | ry.where.the.traces.are.located. |
| fa80 | 2a 2f 0a 09 20 20 20 20 69 66 20 28 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 20 3d 3d 20 31 29 | */......if.(num_tracefiles.==.1) |
| faa0 | 20 2f 2a 20 69 67 6e 6f 72 65 20 69 66 20 2d 66 20 61 6c 72 65 61 64 79 20 65 6e 63 6f 75 6e 74 | ./*.ignore.if.-f.already.encount |
| fac0 | 65 72 65 64 20 2a 2f 0a 09 09 62 72 65 61 6b 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 74 72 61 | ered.*/...break;......strcpy(tra |
| fae0 | 63 65 64 69 72 2c 20 6f 70 74 61 72 67 29 3b 0a 09 20 20 20 20 69 66 20 28 74 72 61 63 65 64 69 | cedir,.optarg);......if.(tracedi |
| fb00 | 72 5b 73 74 72 6c 65 6e 28 74 72 61 63 65 64 69 72 29 2d 31 5d 20 21 3d 20 27 2f 27 29 20 0a 09 | r[strlen(tracedir)-1].!=.'/')... |
| fb20 | 09 73 74 72 63 61 74 28 74 72 61 63 65 64 69 72 2c 20 22 2f 22 29 3b 20 2f 2a 20 70 61 74 68 20 | .strcat(tracedir,."/");./*.path. |
| fb40 | 61 6c 77 61 79 73 20 65 6e 64 73 20 77 69 74 68 20 22 2f 22 20 2a 2f 0a 09 20 20 20 20 62 72 65 | always.ends.with."/".*/......bre |
| fb60 | 61 6b 3b 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 61 27 3a 20 2f 2a 20 44 6f 6e 27 74 20 63 | ak;.........case.'a':./*.Don't.c |
| fb80 | 68 65 63 6b 20 74 65 61 6d 20 73 74 72 75 63 74 75 72 65 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 | heck.team.structure.*/.......... |
| fba0 | 20 20 20 74 65 61 6d 5f 63 68 65 63 6b 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 | ...team_check.=.0;.............b |
| fbc0 | 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6c 27 3a 20 2f 2a 20 52 75 6e 20 6c | reak;.........case.'l':./*.Run.l |
| fbe0 | 69 62 63 20 6d 61 6c 6c 6f 63 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e 5f 6c 69 | ibc.malloc.*/.............run_li |
| fc00 | 62 63 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 | bc.=.1;.............break;...... |
| fc20 | 20 20 20 63 61 73 65 20 27 76 27 3a 20 2f 2a 20 50 72 69 6e 74 20 70 65 72 2d 74 72 61 63 65 20 | ...case.'v':./*.Print.per-trace. |
| fc40 | 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 72 65 61 6b 64 6f 77 6e 20 2a 2f 0a 20 20 20 20 20 20 20 | performance.breakdown.*/........ |
| fc60 | 20 20 20 20 20 76 65 72 62 6f 73 65 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | .....verbose.=.1;.............br |
| fc80 | 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 56 27 3a 20 2f 2a 20 42 65 20 6d 6f 72 | eak;.........case.'V':./*.Be.mor |
| fca0 | 65 20 76 65 72 62 6f 73 65 20 74 68 61 6e 20 2d 76 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 | e.verbose.than.-v.*/............ |
| fcc0 | 20 76 65 72 62 6f 73 65 20 3d 20 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b | .verbose.=.2;.............break; |
| fce0 | 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 68 27 3a 20 2f 2a 20 50 72 69 6e 74 20 74 68 69 73 | .........case.'h':./*.Print.this |
| fd00 | 20 6d 65 73 73 61 67 65 20 2a 2f 0a 09 20 20 20 20 75 73 61 67 65 28 29 3b 0a 20 20 20 20 20 20 | .message.*/......usage();....... |
| fd20 | 20 20 20 20 20 20 65 78 69 74 28 30 29 3b 0a 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a | ......exit(0);.........default:. |
| fd40 | 09 20 20 20 20 75 73 61 67 65 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 78 69 74 28 31 | .....usage();.............exit(1 |
| fd60 | 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 09 0a 20 20 20 20 2f 2a 20 0a 20 20 20 | );.........}.....}......./*..... |
| fd80 | 20 20 2a 20 43 68 65 63 6b 20 61 6e 64 20 70 72 69 6e 74 20 74 65 61 6d 20 69 6e 66 6f 20 0a 20 | ..*.Check.and.print.team.info... |
| fda0 | 20 20 20 20 2a 2f 0a 20 20 20 20 69 66 20 28 74 65 61 6d 5f 63 68 65 63 6b 29 20 7b 0a 09 2f 2a | ....*/.....if.(team_check).{../* |
| fdc0 | 20 53 74 75 64 65 6e 74 73 20 6d 75 73 74 20 66 69 6c 6c 20 69 6e 20 74 68 65 69 72 20 74 65 61 | .Students.must.fill.in.their.tea |
| fde0 | 6d 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 2a 2f 0a 09 69 66 20 28 21 73 74 72 63 6d 70 28 74 65 | m.information.*/..if.(!strcmp(te |
| fe00 | 61 6d 2e 74 65 61 6d 6e 61 6d 65 2c 20 22 22 29 29 20 7b 0a 09 20 20 20 20 70 72 69 6e 74 66 28 | am.teamname,."")).{......printf( |
| fe20 | 22 45 52 52 4f 52 3a 20 50 6c 65 61 73 65 20 70 72 6f 76 69 64 65 20 74 68 65 20 69 6e 66 6f 72 | "ERROR:.Please.provide.the.infor |
| fe40 | 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 79 6f 75 72 20 74 65 61 6d 20 69 6e 20 6d 6d 2e 63 2e 5c | mation.about.your.team.in.mm.c.\ |
| fe60 | 6e 22 29 3b 0a 09 20 20 20 20 65 78 69 74 28 31 29 3b 0a 09 7d 20 65 6c 73 65 0a 09 20 20 20 20 | n");......exit(1);..}.else...... |
| fe80 | 70 72 69 6e 74 66 28 22 54 65 61 6d 20 4e 61 6d 65 3a 25 73 5c 6e 22 2c 20 74 65 61 6d 2e 74 65 | printf("Team.Name:%s\n",.team.te |
| fea0 | 61 6d 6e 61 6d 65 29 3b 0a 09 69 66 20 28 28 2a 74 65 61 6d 2e 6e 61 6d 65 31 20 3d 3d 20 27 5c | amname);..if.((*team.name1.==.'\ |
| fec0 | 30 27 29 20 7c 7c 20 28 2a 74 65 61 6d 2e 69 64 31 20 3d 3d 20 27 5c 30 27 29 29 20 7b 0a 09 20 | 0').||.(*team.id1.==.'\0')).{... |
| fee0 | 20 20 20 70 72 69 6e 74 66 28 22 45 52 52 4f 52 2e 20 20 59 6f 75 20 6d 75 73 74 20 66 69 6c 6c | ...printf("ERROR...You.must.fill |
| ff00 | 20 69 6e 20 61 6c 6c 20 74 65 61 6d 20 6d 65 6d 62 65 72 20 31 20 66 69 65 6c 64 73 21 5c 6e 22 | .in.all.team.member.1.fields!\n" |
| ff20 | 29 3b 0a 09 20 20 20 20 65 78 69 74 28 31 29 3b 0a 09 7d 20 0a 09 65 6c 73 65 0a 09 20 20 20 20 | );......exit(1);..}...else...... |
| ff40 | 70 72 69 6e 74 66 28 22 4d 65 6d 62 65 72 20 31 20 3a 25 73 3a 25 73 5c 6e 22 2c 20 74 65 61 6d | printf("Member.1.:%s:%s\n",.team |
| ff60 | 2e 6e 61 6d 65 31 2c 20 74 65 61 6d 2e 69 64 31 29 3b 0a 0a 09 69 66 20 28 28 28 2a 74 65 61 6d | .name1,.team.id1);...if.(((*team |
| ff80 | 2e 6e 61 6d 65 32 20 21 3d 20 27 5c 30 27 29 20 26 26 20 28 2a 74 65 61 6d 2e 69 64 32 20 3d 3d | .name2.!=.'\0').&&.(*team.id2.== |
| ffa0 | 20 27 5c 30 27 29 29 20 7c 7c 0a 09 20 20 20 20 28 28 2a 74 65 61 6d 2e 6e 61 6d 65 32 20 3d 3d | .'\0')).||......((*team.name2.== |
| ffc0 | 20 27 5c 30 27 29 20 26 26 20 28 2a 74 65 61 6d 2e 69 64 32 20 21 3d 20 27 5c 30 27 29 29 29 20 | .'\0').&&.(*team.id2.!=.'\0'))). |
| ffe0 | 7b 20 0a 09 20 20 20 20 70 72 69 6e 74 66 28 22 45 52 52 4f 52 2e 20 20 59 6f 75 20 6d 75 73 74 | {.......printf("ERROR...You.must |
| 10000 | 20 66 69 6c 6c 20 69 6e 20 61 6c 6c 20 6f 72 20 6e 6f 6e 65 20 6f 66 20 74 68 65 20 74 65 61 6d | .fill.in.all.or.none.of.the.team |
| 10020 | 20 6d 65 6d 62 65 72 20 32 20 49 44 20 66 69 65 6c 64 73 21 5c 6e 22 29 3b 0a 09 20 20 20 20 65 | .member.2.ID.fields!\n");......e |
| 10040 | 78 69 74 28 31 29 3b 0a 09 7d 0a 09 65 6c 73 65 20 69 66 20 28 2a 74 65 61 6d 2e 6e 61 6d 65 32 | xit(1);..}..else.if.(*team.name2 |
| 10060 | 20 21 3d 20 27 5c 30 27 29 0a 09 20 20 20 20 70 72 69 6e 74 66 28 22 4d 65 6d 62 65 72 20 32 20 | .!=.'\0')......printf("Member.2. |
| 10080 | 3a 25 73 3a 25 73 5c 6e 22 2c 20 74 65 61 6d 2e 6e 61 6d 65 32 2c 20 74 65 61 6d 2e 69 64 32 29 | :%s:%s\n",.team.name2,.team.id2) |
| 100a0 | 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 0a 20 20 20 20 20 2a 20 49 66 20 6e 6f 20 2d 66 | ;.....}....../*.......*.If.no.-f |
| 100c0 | 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 2c 20 74 68 65 6e 20 75 73 65 20 74 68 65 20 | .command.line.arg,.then.use.the. |
| 100e0 | 65 6e 74 69 72 65 20 73 65 74 20 6f 66 20 74 72 61 63 65 66 69 6c 65 73 20 0a 20 20 20 20 20 2a | entire.set.of.tracefiles.......* |
| 10100 | 20 64 65 66 69 6e 65 64 20 69 6e 20 64 65 66 61 75 6c 74 5f 74 72 61 63 65 73 5b 5d 0a 20 20 20 | .defined.in.default_traces[].... |
| 10120 | 20 20 2a 2f 0a 20 20 20 20 69 66 20 28 74 72 61 63 65 66 69 6c 65 73 20 3d 3d 20 4e 55 4c 4c 29 | ..*/.....if.(tracefiles.==.NULL) |
| 10140 | 20 7b 0a 20 20 20 20 20 20 20 20 74 72 61 63 65 66 69 6c 65 73 20 3d 20 64 65 66 61 75 6c 74 5f | .{.........tracefiles.=.default_ |
| 10160 | 74 72 61 63 65 66 69 6c 65 73 3b 0a 20 20 20 20 20 20 20 20 6e 75 6d 5f 74 72 61 63 65 66 69 6c | tracefiles;.........num_tracefil |
| 10180 | 65 73 20 3d 20 73 69 7a 65 6f 66 28 64 65 66 61 75 6c 74 5f 74 72 61 63 65 66 69 6c 65 73 29 20 | es.=.sizeof(default_tracefiles). |
| 101a0 | 2f 20 73 69 7a 65 6f 66 28 63 68 61 72 20 2a 29 20 2d 20 31 3b 0a 09 70 72 69 6e 74 66 28 22 55 | /.sizeof(char.*).-.1;..printf("U |
| 101c0 | 73 69 6e 67 20 64 65 66 61 75 6c 74 20 74 72 61 63 65 66 69 6c 65 73 20 69 6e 20 25 73 5c 6e 22 | sing.default.tracefiles.in.%s\n" |
| 101e0 | 2c 20 74 72 61 63 65 64 69 72 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 49 6e 69 74 69 | ,.tracedir);.....}....../*.Initi |
| 10200 | 61 6c 69 7a 65 20 74 68 65 20 74 69 6d 69 6e 67 20 70 61 63 6b 61 67 65 20 2a 2f 0a 20 20 20 20 | alize.the.timing.package.*/..... |
| 10220 | 69 6e 69 74 5f 66 73 65 63 73 28 29 3b 0a 0a 20 20 20 20 2f 2a 0a 20 20 20 20 20 2a 20 4f 70 74 | init_fsecs();....../*......*.Opt |
| 10240 | 69 6f 6e 61 6c 6c 79 20 72 75 6e 20 61 6e 64 20 65 76 61 6c 75 61 74 65 20 74 68 65 20 6c 69 62 | ionally.run.and.evaluate.the.lib |
| 10260 | 63 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 66 | c.malloc.package.......*/.....if |
| 10280 | 20 28 72 75 6e 5f 6c 69 62 63 29 20 7b 0a 09 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a | .(run_libc).{..if.(verbose.>.1). |
| 102a0 | 09 20 20 20 20 70 72 69 6e 74 66 28 22 5c 6e 54 65 73 74 69 6e 67 20 6c 69 62 63 20 6d 61 6c 6c | .....printf("\nTesting.libc.mall |
| 102c0 | 6f 63 5c 6e 22 29 3b 0a 09 0a 09 2f 2a 20 41 6c 6c 6f 63 61 74 65 20 6c 69 62 63 20 73 74 61 74 | oc\n");..../*.Allocate.libc.stat |
| 102e0 | 73 20 61 72 72 61 79 2c 20 77 69 74 68 20 6f 6e 65 20 73 74 61 74 73 5f 74 20 73 74 72 75 63 74 | s.array,.with.one.stats_t.struct |
| 10300 | 20 70 65 72 20 74 72 61 63 65 66 69 6c 65 20 2a 2f 0a 09 6c 69 62 63 5f 73 74 61 74 73 20 3d 20 | .per.tracefile.*/..libc_stats.=. |
| 10320 | 28 73 74 61 74 73 5f 74 20 2a 29 63 61 6c 6c 6f 63 28 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 | (stats_t.*)calloc(num_tracefiles |
| 10340 | 2c 20 73 69 7a 65 6f 66 28 73 74 61 74 73 5f 74 29 29 3b 0a 09 69 66 20 28 6c 69 62 63 5f 73 74 | ,.sizeof(stats_t));..if.(libc_st |
| 10360 | 61 74 73 20 3d 3d 20 4e 55 4c 4c 29 0a 09 20 20 20 20 75 6e 69 78 5f 65 72 72 6f 72 28 22 6c 69 | ats.==.NULL)......unix_error("li |
| 10380 | 62 63 5f 73 74 61 74 73 20 63 61 6c 6c 6f 63 20 69 6e 20 6d 61 69 6e 20 66 61 69 6c 65 64 22 29 | bc_stats.calloc.in.main.failed") |
| 103a0 | 3b 0a 09 0a 09 2f 2a 20 45 76 61 6c 75 61 74 65 20 74 68 65 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 | ;..../*.Evaluate.the.libc.malloc |
| 103c0 | 20 70 61 63 6b 61 67 65 20 75 73 69 6e 67 20 74 68 65 20 4b 2d 62 65 73 74 20 73 63 68 65 6d 65 | .package.using.the.K-best.scheme |
| 103e0 | 20 2a 2f 0a 09 66 6f 72 20 28 69 3d 30 3b 20 69 20 3c 20 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 | .*/..for.(i=0;.i.<.num_tracefile |
| 10400 | 73 3b 20 69 2b 2b 29 20 7b 0a 09 20 20 20 20 74 72 61 63 65 20 3d 20 72 65 61 64 5f 74 72 61 63 | s;.i++).{......trace.=.read_trac |
| 10420 | 65 28 74 72 61 63 65 64 69 72 2c 20 74 72 61 63 65 66 69 6c 65 73 5b 69 5d 29 3b 0a 09 20 20 20 | e(tracedir,.tracefiles[i]);..... |
| 10440 | 20 6c 69 62 63 5f 73 74 61 74 73 5b 69 5d 2e 6f 70 73 20 3d 20 74 72 61 63 65 2d 3e 6e 75 6d 5f | .libc_stats[i].ops.=.trace->num_ |
| 10460 | 6f 70 73 3b 0a 09 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a 09 09 70 72 69 | ops;......if.(verbose.>.1)...pri |
| 10480 | 6e 74 66 28 22 43 68 65 63 6b 69 6e 67 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 66 6f 72 20 63 6f | ntf("Checking.libc.malloc.for.co |
| 104a0 | 72 72 65 63 74 6e 65 73 73 2c 20 22 29 3b 0a 09 20 20 20 20 6c 69 62 63 5f 73 74 61 74 73 5b 69 | rrectness,.");......libc_stats[i |
| 104c0 | 5d 2e 76 61 6c 69 64 20 3d 20 65 76 61 6c 5f 6c 69 62 63 5f 76 61 6c 69 64 28 74 72 61 63 65 2c | ].valid.=.eval_libc_valid(trace, |
| 104e0 | 20 69 29 3b 0a 09 20 20 20 20 69 66 20 28 6c 69 62 63 5f 73 74 61 74 73 5b 69 5d 2e 76 61 6c 69 | .i);......if.(libc_stats[i].vali |
| 10500 | 64 29 20 7b 0a 09 09 73 70 65 65 64 5f 70 61 72 61 6d 73 2e 74 72 61 63 65 20 3d 20 74 72 61 63 | d).{...speed_params.trace.=.trac |
| 10520 | 65 3b 0a 09 09 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a 09 09 20 20 20 20 70 72 69 6e | e;...if.(verbose.>.1).......prin |
| 10540 | 74 66 28 22 61 6e 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 5c 6e 22 29 3b 0a 09 09 6c 69 62 63 | tf("and.performance.\n");...libc |
| 10560 | 5f 73 74 61 74 73 5b 69 5d 2e 73 65 63 73 20 3d 20 66 73 65 63 73 28 65 76 61 6c 5f 6c 69 62 63 | _stats[i].secs.=.fsecs(eval_libc |
| 10580 | 5f 73 70 65 65 64 2c 20 26 73 70 65 65 64 5f 70 61 72 61 6d 73 29 3b 0a 09 20 20 20 20 7d 0a 09 | _speed,.&speed_params);......}.. |
| 105a0 | 20 20 20 20 66 72 65 65 5f 74 72 61 63 65 28 74 72 61 63 65 29 3b 0a 09 7d 0a 0a 09 2f 2a 20 44 | ....free_trace(trace);..}.../*.D |
| 105c0 | 69 73 70 6c 61 79 20 74 68 65 20 6c 69 62 63 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 63 6f 6d | isplay.the.libc.results.in.a.com |
| 105e0 | 70 61 63 74 20 74 61 62 6c 65 20 2a 2f 0a 09 69 66 20 28 76 65 72 62 6f 73 65 29 20 7b 0a 09 20 | pact.table.*/..if.(verbose).{... |
| 10600 | 20 20 20 70 72 69 6e 74 66 28 22 5c 6e 52 65 73 75 6c 74 73 20 66 6f 72 20 6c 69 62 63 20 6d 61 | ...printf("\nResults.for.libc.ma |
| 10620 | 6c 6c 6f 63 3a 5c 6e 22 29 3b 0a 09 20 20 20 20 70 72 69 6e 74 72 65 73 75 6c 74 73 28 6e 75 6d | lloc:\n");......printresults(num |
| 10640 | 5f 74 72 61 63 65 66 69 6c 65 73 2c 20 6c 69 62 63 5f 73 74 61 74 73 29 3b 0a 09 7d 0a 20 20 20 | _tracefiles,.libc_stats);..}.... |
| 10660 | 20 7d 0a 0a 20 20 20 20 2f 2a 0a 20 20 20 20 20 2a 20 41 6c 77 61 79 73 20 72 75 6e 20 61 6e 64 | .}....../*......*.Always.run.and |
| 10680 | 20 65 76 61 6c 75 61 74 65 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 6d 20 70 61 63 6b 61 | .evaluate.the.student's.mm.packa |
| 106a0 | 67 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a | ge......*/.....if.(verbose.>.1). |
| 106c0 | 09 70 72 69 6e 74 66 28 22 5c 6e 54 65 73 74 69 6e 67 20 6d 6d 20 6d 61 6c 6c 6f 63 5c 6e 22 29 | .printf("\nTesting.mm.malloc\n") |
| 106e0 | 3b 0a 0a 20 20 20 20 2f 2a 20 41 6c 6c 6f 63 61 74 65 20 74 68 65 20 6d 6d 20 73 74 61 74 73 20 | ;....../*.Allocate.the.mm.stats. |
| 10700 | 61 72 72 61 79 2c 20 77 69 74 68 20 6f 6e 65 20 73 74 61 74 73 5f 74 20 73 74 72 75 63 74 20 70 | array,.with.one.stats_t.struct.p |
| 10720 | 65 72 20 74 72 61 63 65 66 69 6c 65 20 2a 2f 0a 20 20 20 20 6d 6d 5f 73 74 61 74 73 20 3d 20 28 | er.tracefile.*/.....mm_stats.=.( |
| 10740 | 73 74 61 74 73 5f 74 20 2a 29 63 61 6c 6c 6f 63 28 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 2c | stats_t.*)calloc(num_tracefiles, |
| 10760 | 20 73 69 7a 65 6f 66 28 73 74 61 74 73 5f 74 29 29 3b 0a 20 20 20 20 69 66 20 28 6d 6d 5f 73 74 | .sizeof(stats_t));.....if.(mm_st |
| 10780 | 61 74 73 20 3d 3d 20 4e 55 4c 4c 29 0a 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 6d 5f 73 74 61 | ats.==.NULL)..unix_error("mm_sta |
| 107a0 | 74 73 20 63 61 6c 6c 6f 63 20 69 6e 20 6d 61 69 6e 20 66 61 69 6c 65 64 22 29 3b 0a 20 20 20 20 | ts.calloc.in.main.failed");..... |
| 107c0 | 0a 20 20 20 20 2f 2a 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 73 69 6d 75 6c 61 74 65 64 | ...../*.Initialize.the.simulated |
| 107e0 | 20 6d 65 6d 6f 72 79 20 73 79 73 74 65 6d 20 69 6e 20 6d 65 6d 6c 69 62 2e 63 20 2a 2f 0a 20 20 | .memory.system.in.memlib.c.*/... |
| 10800 | 20 20 6d 65 6d 5f 69 6e 69 74 28 29 3b 20 0a 0a 20 20 20 20 2f 2a 20 45 76 61 6c 75 61 74 65 20 | ..mem_init();......./*.Evaluate. |
| 10820 | 73 74 75 64 65 6e 74 27 73 20 6d 6d 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 75 73 69 6e | student's.mm.malloc.package.usin |
| 10840 | 67 20 74 68 65 20 4b 2d 62 65 73 74 20 73 63 68 65 6d 65 20 2a 2f 0a 20 20 20 20 66 6f 72 20 28 | g.the.K-best.scheme.*/.....for.( |
| 10860 | 69 3d 30 3b 20 69 20 3c 20 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 3b 20 69 2b 2b 29 20 7b 0a | i=0;.i.<.num_tracefiles;.i++).{. |
| 10880 | 09 74 72 61 63 65 20 3d 20 72 65 61 64 5f 74 72 61 63 65 28 74 72 61 63 65 64 69 72 2c 20 74 72 | .trace.=.read_trace(tracedir,.tr |
| 108a0 | 61 63 65 66 69 6c 65 73 5b 69 5d 29 3b 0a 09 6d 6d 5f 73 74 61 74 73 5b 69 5d 2e 6f 70 73 20 3d | acefiles[i]);..mm_stats[i].ops.= |
| 108c0 | 20 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 3b 0a 09 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 | .trace->num_ops;..if.(verbose.>. |
| 108e0 | 31 29 0a 09 20 20 20 20 70 72 69 6e 74 66 28 22 43 68 65 63 6b 69 6e 67 20 6d 6d 5f 6d 61 6c 6c | 1)......printf("Checking.mm_mall |
| 10900 | 6f 63 20 66 6f 72 20 63 6f 72 72 65 63 74 6e 65 73 73 2c 20 22 29 3b 0a 09 6d 6d 5f 73 74 61 74 | oc.for.correctness,.");..mm_stat |
| 10920 | 73 5b 69 5d 2e 76 61 6c 69 64 20 3d 20 65 76 61 6c 5f 6d 6d 5f 76 61 6c 69 64 28 74 72 61 63 65 | s[i].valid.=.eval_mm_valid(trace |
| 10940 | 2c 20 69 2c 20 26 72 61 6e 67 65 73 29 3b 0a 09 69 66 20 28 6d 6d 5f 73 74 61 74 73 5b 69 5d 2e | ,.i,.&ranges);..if.(mm_stats[i]. |
| 10960 | 76 61 6c 69 64 29 20 7b 0a 09 20 20 20 20 69 66 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a 09 | valid).{......if.(verbose.>.1).. |
| 10980 | 09 70 72 69 6e 74 66 28 22 65 66 66 69 63 69 65 6e 63 79 2c 20 22 29 3b 0a 09 20 20 20 20 6d 6d | .printf("efficiency,.");......mm |
| 109a0 | 5f 73 74 61 74 73 5b 69 5d 2e 75 74 69 6c 20 3d 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 28 74 72 | _stats[i].util.=.eval_mm_util(tr |
| 109c0 | 61 63 65 2c 20 69 2c 20 26 72 61 6e 67 65 73 29 3b 0a 09 20 20 20 20 73 70 65 65 64 5f 70 61 72 | ace,.i,.&ranges);......speed_par |
| 109e0 | 61 6d 73 2e 74 72 61 63 65 20 3d 20 74 72 61 63 65 3b 0a 09 20 20 20 20 73 70 65 65 64 5f 70 61 | ams.trace.=.trace;......speed_pa |
| 10a00 | 72 61 6d 73 2e 72 61 6e 67 65 73 20 3d 20 72 61 6e 67 65 73 3b 0a 09 20 20 20 20 69 66 20 28 76 | rams.ranges.=.ranges;......if.(v |
| 10a20 | 65 72 62 6f 73 65 20 3e 20 31 29 0a 09 09 70 72 69 6e 74 66 28 22 61 6e 64 20 70 65 72 66 6f 72 | erbose.>.1)...printf("and.perfor |
| 10a40 | 6d 61 6e 63 65 2e 5c 6e 22 29 3b 0a 09 20 20 20 20 6d 6d 5f 73 74 61 74 73 5b 69 5d 2e 73 65 63 | mance.\n");......mm_stats[i].sec |
| 10a60 | 73 20 3d 20 66 73 65 63 73 28 65 76 61 6c 5f 6d 6d 5f 73 70 65 65 64 2c 20 26 73 70 65 65 64 5f | s.=.fsecs(eval_mm_speed,.&speed_ |
| 10a80 | 70 61 72 61 6d 73 29 3b 0a 09 7d 0a 09 66 72 65 65 5f 74 72 61 63 65 28 74 72 61 63 65 29 3b 0a | params);..}..free_trace(trace);. |
| 10aa0 | 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 44 69 73 70 6c 61 79 20 74 68 65 20 6d 6d 20 72 65 73 | ....}....../*.Display.the.mm.res |
| 10ac0 | 75 6c 74 73 20 69 6e 20 61 20 63 6f 6d 70 61 63 74 20 74 61 62 6c 65 20 2a 2f 0a 20 20 20 20 69 | ults.in.a.compact.table.*/.....i |
| 10ae0 | 66 20 28 76 65 72 62 6f 73 65 29 20 7b 0a 09 70 72 69 6e 74 66 28 22 5c 6e 52 65 73 75 6c 74 73 | f.(verbose).{..printf("\nResults |
| 10b00 | 20 66 6f 72 20 6d 6d 20 6d 61 6c 6c 6f 63 3a 5c 6e 22 29 3b 0a 09 70 72 69 6e 74 72 65 73 75 6c | .for.mm.malloc:\n");..printresul |
| 10b20 | 74 73 28 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 2c 20 6d 6d 5f 73 74 61 74 73 29 3b 0a 09 70 | ts(num_tracefiles,.mm_stats);..p |
| 10b40 | 72 69 6e 74 66 28 22 5c 6e 22 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 0a 20 20 20 20 | rintf("\n");.....}....../*...... |
| 10b60 | 20 2a 20 41 63 63 75 6d 75 6c 61 74 65 20 74 68 65 20 61 67 67 72 65 67 61 74 65 20 73 74 61 74 | .*.Accumulate.the.aggregate.stat |
| 10b80 | 69 73 74 69 63 73 20 66 6f 72 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 6d 20 70 61 63 6b | istics.for.the.student's.mm.pack |
| 10ba0 | 61 67 65 20 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 73 65 63 73 20 3d 20 30 3b 0a 20 20 20 20 6f | age.......*/.....secs.=.0;.....o |
| 10bc0 | 70 73 20 3d 20 30 3b 0a 20 20 20 20 75 74 69 6c 20 3d 20 30 3b 0a 20 20 20 20 6e 75 6d 63 6f 72 | ps.=.0;.....util.=.0;.....numcor |
| 10be0 | 72 65 63 74 20 3d 20 30 3b 0a 20 20 20 20 66 6f 72 20 28 69 3d 30 3b 20 69 20 3c 20 6e 75 6d 5f | rect.=.0;.....for.(i=0;.i.<.num_ |
| 10c00 | 74 72 61 63 65 66 69 6c 65 73 3b 20 69 2b 2b 29 20 7b 0a 09 73 65 63 73 20 2b 3d 20 6d 6d 5f 73 | tracefiles;.i++).{..secs.+=.mm_s |
| 10c20 | 74 61 74 73 5b 69 5d 2e 73 65 63 73 3b 0a 09 6f 70 73 20 2b 3d 20 6d 6d 5f 73 74 61 74 73 5b 69 | tats[i].secs;..ops.+=.mm_stats[i |
| 10c40 | 5d 2e 6f 70 73 3b 0a 09 75 74 69 6c 20 2b 3d 20 6d 6d 5f 73 74 61 74 73 5b 69 5d 2e 75 74 69 6c | ].ops;..util.+=.mm_stats[i].util |
| 10c60 | 3b 0a 09 69 66 20 28 6d 6d 5f 73 74 61 74 73 5b 69 5d 2e 76 61 6c 69 64 29 0a 09 20 20 20 20 6e | ;..if.(mm_stats[i].valid)......n |
| 10c80 | 75 6d 63 6f 72 72 65 63 74 2b 2b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 76 67 5f 6d 6d 5f 75 74 | umcorrect++;.....}.....avg_mm_ut |
| 10ca0 | 69 6c 20 3d 20 75 74 69 6c 2f 6e 75 6d 5f 74 72 61 63 65 66 69 6c 65 73 3b 0a 0a 20 20 20 20 2f | il.=.util/num_tracefiles;....../ |
| 10cc0 | 2a 20 0a 20 20 20 20 20 2a 20 43 6f 6d 70 75 74 65 20 61 6e 64 20 70 72 69 6e 74 20 74 68 65 20 | *.......*.Compute.and.print.the. |
| 10ce0 | 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 64 65 78 20 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 | performance.index.......*/.....i |
| 10d00 | 66 20 28 65 72 72 6f 72 73 20 3d 3d 20 30 29 20 7b 0a 09 61 76 67 5f 6d 6d 5f 74 68 72 6f 75 67 | f.(errors.==.0).{..avg_mm_throug |
| 10d20 | 68 70 75 74 20 3d 20 6f 70 73 2f 73 65 63 73 3b 0a 0a 09 70 31 20 3d 20 55 54 49 4c 5f 57 45 49 | hput.=.ops/secs;...p1.=.UTIL_WEI |
| 10d40 | 47 48 54 20 2a 20 61 76 67 5f 6d 6d 5f 75 74 69 6c 3b 0a 09 69 66 20 28 61 76 67 5f 6d 6d 5f 74 | GHT.*.avg_mm_util;..if.(avg_mm_t |
| 10d60 | 68 72 6f 75 67 68 70 75 74 20 3e 20 41 56 47 5f 4c 49 42 43 5f 54 48 52 55 50 55 54 29 20 7b 0a | hroughput.>.AVG_LIBC_THRUPUT).{. |
| 10d80 | 09 20 20 20 20 70 32 20 3d 20 28 64 6f 75 62 6c 65 29 28 31 2e 30 20 2d 20 55 54 49 4c 5f 57 45 | .....p2.=.(double)(1.0.-.UTIL_WE |
| 10da0 | 49 47 48 54 29 3b 0a 09 7d 20 0a 09 65 6c 73 65 20 7b 0a 09 20 20 20 20 70 32 20 3d 20 28 28 64 | IGHT);..}...else.{......p2.=.((d |
| 10dc0 | 6f 75 62 6c 65 29 20 28 31 2e 30 20 2d 20 55 54 49 4c 5f 57 45 49 47 48 54 29 29 20 2a 20 0a 09 | ouble).(1.0.-.UTIL_WEIGHT)).*... |
| 10de0 | 09 28 61 76 67 5f 6d 6d 5f 74 68 72 6f 75 67 68 70 75 74 2f 41 56 47 5f 4c 49 42 43 5f 54 48 52 | .(avg_mm_throughput/AVG_LIBC_THR |
| 10e00 | 55 50 55 54 29 3b 0a 09 7d 0a 09 0a 09 70 65 72 66 69 6e 64 65 78 20 3d 20 28 70 31 20 2b 20 70 | UPUT);..}....perfindex.=.(p1.+.p |
| 10e20 | 32 29 2a 31 30 30 2e 30 3b 0a 09 70 72 69 6e 74 66 28 22 50 65 72 66 20 69 6e 64 65 78 20 3d 20 | 2)*100.0;..printf("Perf.index.=. |
| 10e40 | 25 2e 30 66 20 28 75 74 69 6c 29 20 2b 20 25 2e 30 66 20 28 74 68 72 75 29 20 3d 20 25 2e 30 66 | %.0f.(util).+.%.0f.(thru).=.%.0f |
| 10e60 | 2f 31 30 30 5c 6e 22 2c 0a 09 20 20 20 20 20 20 20 70 31 2a 31 30 30 2c 20 0a 09 20 20 20 20 20 | /100\n",.........p1*100,........ |
| 10e80 | 20 20 70 32 2a 31 30 30 2c 20 0a 09 20 20 20 20 20 20 20 70 65 72 66 69 6e 64 65 78 29 3b 0a 09 | ..p2*100,..........perfindex);.. |
| 10ea0 | 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 20 7b 20 2f 2a 20 54 68 65 72 65 20 77 65 72 65 20 | .....}.....else.{./*.There.were. |
| 10ec0 | 65 72 72 6f 72 73 20 2a 2f 0a 09 70 65 72 66 69 6e 64 65 78 20 3d 20 30 2e 30 3b 0a 09 70 72 69 | errors.*/..perfindex.=.0.0;..pri |
| 10ee0 | 6e 74 66 28 22 54 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 25 64 20 65 72 72 6f 72 73 5c 6e | ntf("Terminated.with.%d.errors\n |
| 10f00 | 22 2c 20 65 72 72 6f 72 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 61 75 74 6f 67 | ",.errors);.....}......if.(autog |
| 10f20 | 72 61 64 65 72 29 20 7b 0a 09 70 72 69 6e 74 66 28 22 63 6f 72 72 65 63 74 3a 25 64 5c 6e 22 2c | rader).{..printf("correct:%d\n", |
| 10f40 | 20 6e 75 6d 63 6f 72 72 65 63 74 29 3b 0a 09 70 72 69 6e 74 66 28 22 70 65 72 66 69 64 78 3a 25 | .numcorrect);..printf("perfidx:% |
| 10f60 | 2e 30 66 5c 6e 22 2c 20 70 65 72 66 69 6e 64 65 78 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 65 | .0f\n",.perfindex);.....}......e |
| 10f80 | 78 69 74 28 30 29 3b 0a 7d 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | xit(0);.}.../******************* |
| 10fa0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 10fc0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | **************..*.The.following. |
| 10fe0 | 72 6f 75 74 69 6e 65 73 20 6d 61 6e 69 70 75 6c 61 74 65 20 74 68 65 20 72 61 6e 67 65 20 6c 69 | routines.manipulate.the.range.li |
| 11000 | 73 74 2c 20 77 68 69 63 68 20 6b 65 65 70 73 20 0a 20 2a 20 74 72 61 63 6b 20 6f 66 20 74 68 65 | st,.which.keeps...*.track.of.the |
| 11020 | 20 65 78 74 65 6e 74 20 6f 66 20 65 76 65 72 79 20 61 6c 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b | .extent.of.every.allocated.block |
| 11040 | 20 70 61 79 6c 6f 61 64 2e 20 57 65 20 75 73 65 20 74 68 65 20 0a 20 2a 20 72 61 6e 67 65 20 6c | .payload..We.use.the...*.range.l |
| 11060 | 69 73 74 20 74 6f 20 64 65 74 65 63 74 20 61 6e 79 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 61 6c | ist.to.detect.any.overlapping.al |
| 11080 | 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b 73 2e 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | located.blocks...*************** |
| 110a0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 110c0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 0a 20 2a 20 61 64 64 5f 72 61 | *****************/../*..*.add_ra |
| 110e0 | 6e 67 65 20 2d 20 41 73 20 64 69 72 65 63 74 65 64 20 62 79 20 72 65 71 75 65 73 74 20 6f 70 6e | nge.-.As.directed.by.request.opn |
| 11100 | 75 6d 20 69 6e 20 74 72 61 63 65 20 74 72 61 63 65 6e 75 6d 2c 0a 20 2a 20 20 20 20 20 77 65 27 | um.in.trace.tracenum,..*.....we' |
| 11120 | 76 65 20 6a 75 73 74 20 63 61 6c 6c 65 64 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 6d 5f | ve.just.called.the.student's.mm_ |
| 11140 | 6d 61 6c 6c 6f 63 20 74 6f 20 61 6c 6c 6f 63 61 74 65 20 61 20 62 6c 6f 63 6b 20 6f 66 20 0a 20 | malloc.to.allocate.a.block.of... |
| 11160 | 2a 20 20 20 20 20 73 69 7a 65 20 62 79 74 65 73 20 61 74 20 61 64 64 72 20 6c 6f 2e 20 41 66 74 | *.....size.bytes.at.addr.lo..Aft |
| 11180 | 65 72 20 63 68 65 63 6b 69 6e 67 20 74 68 65 20 62 6c 6f 63 6b 20 66 6f 72 20 63 6f 72 72 65 63 | er.checking.the.block.for.correc |
| 111a0 | 74 6e 65 73 73 2c 0a 20 2a 20 20 20 20 20 77 65 20 63 72 65 61 74 65 20 61 20 72 61 6e 67 65 20 | tness,..*.....we.create.a.range. |
| 111c0 | 73 74 72 75 63 74 20 66 6f 72 20 74 68 69 73 20 62 6c 6f 63 6b 20 61 6e 64 20 61 64 64 20 69 74 | struct.for.this.block.and.add.it |
| 111e0 | 20 74 6f 20 74 68 65 20 72 61 6e 67 65 20 6c 69 73 74 2e 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 | .to.the.range.list....*/.static. |
| 11200 | 69 6e 74 20 61 64 64 5f 72 61 6e 67 65 28 72 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 73 2c 20 | int.add_range(range_t.**ranges,. |
| 11220 | 63 68 61 72 20 2a 6c 6f 2c 20 69 6e 74 20 73 69 7a 65 2c 20 0a 09 09 20 20 20 20 20 69 6e 74 20 | char.*lo,.int.size,.........int. |
| 11240 | 74 72 61 63 65 6e 75 6d 2c 20 69 6e 74 20 6f 70 6e 75 6d 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 | tracenum,.int.opnum).{.....char. |
| 11260 | 2a 68 69 20 3d 20 6c 6f 20 2b 20 73 69 7a 65 20 2d 20 31 3b 0a 20 20 20 20 72 61 6e 67 65 5f 74 | *hi.=.lo.+.size.-.1;.....range_t |
| 11280 | 20 2a 70 3b 0a 20 20 20 20 63 68 61 72 20 6d 73 67 5b 4d 41 58 4c 49 4e 45 5d 3b 0a 0a 20 20 20 | .*p;.....char.msg[MAXLINE];..... |
| 112a0 | 20 61 73 73 65 72 74 28 73 69 7a 65 20 3e 20 30 29 3b 0a 0a 20 20 20 20 2f 2a 20 50 61 79 6c 6f | .assert(size.>.0);....../*.Paylo |
| 112c0 | 61 64 20 61 64 64 72 65 73 73 65 73 20 6d 75 73 74 20 62 65 20 41 4c 49 47 4e 4d 45 4e 54 2d 62 | ad.addresses.must.be.ALIGNMENT-b |
| 112e0 | 79 74 65 20 61 6c 69 67 6e 65 64 20 2a 2f 0a 20 20 20 20 69 66 20 28 21 49 53 5f 41 4c 49 47 4e | yte.aligned.*/.....if.(!IS_ALIGN |
| 11300 | 45 44 28 6c 6f 29 29 20 7b 0a 09 73 70 72 69 6e 74 66 28 6d 73 67 2c 20 22 50 61 79 6c 6f 61 64 | ED(lo)).{..sprintf(msg,."Payload |
| 11320 | 20 61 64 64 72 65 73 73 20 28 25 70 29 20 6e 6f 74 20 61 6c 69 67 6e 65 64 20 74 6f 20 25 64 20 | .address.(%p).not.aligned.to.%d. |
| 11340 | 62 79 74 65 73 22 2c 20 0a 09 09 6c 6f 2c 20 41 4c 49 47 4e 4d 45 4e 54 29 3b 0a 20 20 20 20 20 | bytes",....lo,.ALIGNMENT);...... |
| 11360 | 20 20 20 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 6f 70 6e 75 6d 2c | ...malloc_error(tracenum,.opnum, |
| 11380 | 20 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 7d 0a 0a | .msg);.........return.0;.....}.. |
| 113a0 | 20 20 20 20 2f 2a 20 54 68 65 20 70 61 79 6c 6f 61 64 20 6d 75 73 74 20 6c 69 65 20 77 69 74 68 | ..../*.The.payload.must.lie.with |
| 113c0 | 69 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 74 68 65 20 68 65 61 70 20 2a 2f 0a 20 20 20 | in.the.extent.of.the.heap.*/.... |
| 113e0 | 20 69 66 20 28 28 6c 6f 20 3c 20 28 63 68 61 72 20 2a 29 6d 65 6d 5f 68 65 61 70 5f 6c 6f 28 29 | .if.((lo.<.(char.*)mem_heap_lo() |
| 11400 | 29 20 7c 7c 20 28 6c 6f 20 3e 20 28 63 68 61 72 20 2a 29 6d 65 6d 5f 68 65 61 70 5f 68 69 28 29 | ).||.(lo.>.(char.*)mem_heap_hi() |
| 11420 | 29 20 7c 7c 20 0a 09 28 68 69 20 3c 20 28 63 68 61 72 20 2a 29 6d 65 6d 5f 68 65 61 70 5f 6c 6f | ).||...(hi.<.(char.*)mem_heap_lo |
| 11440 | 28 29 29 20 7c 7c 20 28 68 69 20 3e 20 28 63 68 61 72 20 2a 29 6d 65 6d 5f 68 65 61 70 5f 68 69 | ()).||.(hi.>.(char.*)mem_heap_hi |
| 11460 | 28 29 29 29 20 7b 0a 09 73 70 72 69 6e 74 66 28 6d 73 67 2c 20 22 50 61 79 6c 6f 61 64 20 28 25 | ())).{..sprintf(msg,."Payload.(% |
| 11480 | 70 3a 25 70 29 20 6c 69 65 73 20 6f 75 74 73 69 64 65 20 68 65 61 70 20 28 25 70 3a 25 70 29 22 | p:%p).lies.outside.heap.(%p:%p)" |
| 114a0 | 2c 0a 09 09 6c 6f 2c 20 68 69 2c 20 6d 65 6d 5f 68 65 61 70 5f 6c 6f 28 29 2c 20 6d 65 6d 5f 68 | ,...lo,.hi,.mem_heap_lo(),.mem_h |
| 114c0 | 65 61 70 5f 68 69 28 29 29 3b 0a 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e 75 | eap_hi());..malloc_error(tracenu |
| 114e0 | 6d 2c 20 6f 70 6e 75 6d 2c 20 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 | m,.opnum,.msg);.........return.0 |
| 11500 | 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 54 68 65 20 70 61 79 6c 6f 61 64 20 6d 75 73 74 | ;.....}....../*.The.payload.must |
| 11520 | 20 6e 6f 74 20 6f 76 65 72 6c 61 70 20 61 6e 79 20 6f 74 68 65 72 20 70 61 79 6c 6f 61 64 73 20 | .not.overlap.any.other.payloads. |
| 11540 | 2a 2f 0a 20 20 20 20 66 6f 72 20 28 70 20 3d 20 2a 72 61 6e 67 65 73 3b 20 20 70 20 21 3d 20 4e | */.....for.(p.=.*ranges;..p.!=.N |
| 11560 | 55 4c 4c 3b 20 20 70 20 3d 20 70 2d 3e 6e 65 78 74 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 | ULL;..p.=.p->next).{.........if. |
| 11580 | 28 28 6c 6f 20 3e 3d 20 70 2d 3e 6c 6f 20 26 26 20 6c 6f 20 3c 3d 20 70 2d 3e 20 68 69 29 20 7c | ((lo.>=.p->lo.&&.lo.<=.p->.hi).| |
| 115a0 | 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 69 20 3e 3d 20 70 2d 3e 6c 6f 20 26 26 20 68 69 | |.............(hi.>=.p->lo.&&.hi |
| 115c0 | 20 3c 3d 20 70 2d 3e 68 69 29 29 20 7b 0a 09 20 20 20 20 73 70 72 69 6e 74 66 28 6d 73 67 2c 20 | .<=.p->hi)).{......sprintf(msg,. |
| 115e0 | 22 50 61 79 6c 6f 61 64 20 28 25 70 3a 25 70 29 20 6f 76 65 72 6c 61 70 73 20 61 6e 6f 74 68 65 | "Payload.(%p:%p).overlaps.anothe |
| 11600 | 72 20 70 61 79 6c 6f 61 64 20 28 25 70 3a 25 70 29 5c 6e 22 2c 0a 09 09 20 20 20 20 6c 6f 2c 20 | r.payload.(%p:%p)\n",.......lo,. |
| 11620 | 68 69 2c 20 70 2d 3e 6c 6f 2c 20 70 2d 3e 68 69 29 3b 0a 09 20 20 20 20 6d 61 6c 6c 6f 63 5f 65 | hi,.p->lo,.p->hi);......malloc_e |
| 11640 | 72 72 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 6f 70 6e 75 6d 2c 20 6d 73 67 29 3b 0a 09 20 20 20 | rror(tracenum,.opnum,.msg);..... |
| 11660 | 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 | .return.0;.........}.....}...... |
| 11680 | 2f 2a 20 0a 20 20 20 20 20 2a 20 45 76 65 72 79 74 68 69 6e 67 20 6c 6f 6f 6b 73 20 4f 4b 2c 20 | /*.......*.Everything.looks.OK,. |
| 116a0 | 73 6f 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 74 68 69 73 20 62 | so.remember.the.extent.of.this.b |
| 116c0 | 6c 6f 63 6b 20 0a 20 20 20 20 20 2a 20 62 79 20 63 72 65 61 74 69 6e 67 20 61 20 72 61 6e 67 65 | lock.......*.by.creating.a.range |
| 116e0 | 20 73 74 72 75 63 74 20 61 6e 64 20 61 64 64 69 6e 67 20 69 74 20 74 68 65 20 72 61 6e 67 65 20 | .struct.and.adding.it.the.range. |
| 11700 | 6c 69 73 74 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 66 20 28 28 70 20 3d 20 28 72 61 6e 67 | list.......*/.....if.((p.=.(rang |
| 11720 | 65 5f 74 20 2a 29 6d 61 6c 6c 6f 63 28 73 69 7a 65 6f 66 28 72 61 6e 67 65 5f 74 29 29 29 20 3d | e_t.*)malloc(sizeof(range_t))).= |
| 11740 | 3d 20 4e 55 4c 4c 29 0a 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 65 72 72 6f | =.NULL)..unix_error("malloc.erro |
| 11760 | 72 20 69 6e 20 61 64 64 5f 72 61 6e 67 65 22 29 3b 0a 20 20 20 20 70 2d 3e 6e 65 78 74 20 3d 20 | r.in.add_range");.....p->next.=. |
| 11780 | 2a 72 61 6e 67 65 73 3b 0a 20 20 20 20 70 2d 3e 6c 6f 20 3d 20 6c 6f 3b 0a 20 20 20 20 70 2d 3e | *ranges;.....p->lo.=.lo;.....p-> |
| 117a0 | 68 69 20 3d 20 68 69 3b 0a 20 20 20 20 2a 72 61 6e 67 65 73 20 3d 20 70 3b 0a 20 20 20 20 72 65 | hi.=.hi;.....*ranges.=.p;.....re |
| 117c0 | 74 75 72 6e 20 31 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 72 65 6d 6f 76 65 5f 72 61 6e 67 65 20 2d | turn.1;.}../*...*.remove_range.- |
| 117e0 | 20 46 72 65 65 20 74 68 65 20 72 61 6e 67 65 20 72 65 63 6f 72 64 20 6f 66 20 62 6c 6f 63 6b 20 | .Free.the.range.record.of.block. |
| 11800 | 77 68 6f 73 65 20 70 61 79 6c 6f 61 64 20 73 74 61 72 74 73 20 61 74 20 6c 6f 20 0a 20 2a 2f 0a | whose.payload.starts.at.lo...*/. |
| 11820 | 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6d 6f 76 65 5f 72 61 6e 67 65 28 72 61 6e 67 65 5f 74 | static.void.remove_range(range_t |
| 11840 | 20 2a 2a 72 61 6e 67 65 73 2c 20 63 68 61 72 20 2a 6c 6f 29 0a 7b 0a 20 20 20 20 72 61 6e 67 65 | .**ranges,.char.*lo).{.....range |
| 11860 | 5f 74 20 2a 70 3b 0a 20 20 20 20 72 61 6e 67 65 5f 74 20 2a 2a 70 72 65 76 70 70 20 3d 20 72 61 | _t.*p;.....range_t.**prevpp.=.ra |
| 11880 | 6e 67 65 73 3b 0a 20 20 20 20 69 6e 74 20 73 69 7a 65 3b 0a 0a 20 20 20 20 66 6f 72 20 28 70 20 | nges;.....int.size;......for.(p. |
| 118a0 | 3d 20 2a 72 61 6e 67 65 73 3b 20 20 70 20 21 3d 20 4e 55 4c 4c 3b 20 70 20 3d 20 70 2d 3e 6e 65 | =.*ranges;..p.!=.NULL;.p.=.p->ne |
| 118c0 | 78 74 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 2d 3e 6c 6f 20 3d 3d 20 6c 6f 29 20 7b | xt).{.........if.(p->lo.==.lo).{ |
| 118e0 | 0a 09 20 20 20 20 2a 70 72 65 76 70 70 20 3d 20 70 2d 3e 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 | ......*prevpp.=.p->next;........ |
| 11900 | 20 20 20 20 20 73 69 7a 65 20 3d 20 70 2d 3e 68 69 20 2d 20 70 2d 3e 6c 6f 20 2b 20 31 3b 0a 20 | .....size.=.p->hi.-.p->lo.+.1;.. |
| 11920 | 20 20 20 20 20 20 20 20 20 20 20 66 72 65 65 28 70 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........free(p);............. |
| 11940 | 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 70 72 65 76 70 70 20 | break;.........}.........prevpp. |
| 11960 | 3d 20 26 28 70 2d 3e 6e 65 78 74 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2a 0a 20 2a 20 63 6c 65 | =.&(p->next);.....}.}../*..*.cle |
| 11980 | 61 72 5f 72 61 6e 67 65 73 20 2d 20 66 72 65 65 20 61 6c 6c 20 6f 66 20 74 68 65 20 72 61 6e 67 | ar_ranges.-.free.all.of.the.rang |
| 119a0 | 65 20 72 65 63 6f 72 64 73 20 66 6f 72 20 61 20 74 72 61 63 65 20 0a 20 2a 2f 0a 73 74 61 74 69 | e.records.for.a.trace...*/.stati |
| 119c0 | 63 20 76 6f 69 64 20 63 6c 65 61 72 5f 72 61 6e 67 65 73 28 72 61 6e 67 65 5f 74 20 2a 2a 72 61 | c.void.clear_ranges(range_t.**ra |
| 119e0 | 6e 67 65 73 29 0a 7b 0a 20 20 20 20 72 61 6e 67 65 5f 74 20 2a 70 3b 0a 20 20 20 20 72 61 6e 67 | nges).{.....range_t.*p;.....rang |
| 11a00 | 65 5f 74 20 2a 70 6e 65 78 74 3b 0a 0a 20 20 20 20 66 6f 72 20 28 70 20 3d 20 2a 72 61 6e 67 65 | e_t.*pnext;......for.(p.=.*range |
| 11a20 | 73 3b 20 20 70 20 21 3d 20 4e 55 4c 4c 3b 20 20 70 20 3d 20 70 6e 65 78 74 29 20 7b 0a 20 20 20 | s;..p.!=.NULL;..p.=.pnext).{.... |
| 11a40 | 20 20 20 20 20 70 6e 65 78 74 20 3d 20 70 2d 3e 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 66 72 | .....pnext.=.p->next;.........fr |
| 11a60 | 65 65 28 70 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 72 61 6e 67 65 73 20 3d 20 4e 55 4c 4c 3b | ee(p);.....}.....*ranges.=.NULL; |
| 11a80 | 0a 7d 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | .}.../************************** |
| 11aa0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 54 68 65 20 66 6f 6c 6c | ********************..*.The.foll |
| 11ac0 | 6f 77 69 6e 67 20 72 6f 75 74 69 6e 65 73 20 6d 61 6e 69 70 75 6c 61 74 65 20 74 72 61 63 65 66 | owing.routines.manipulate.tracef |
| 11ae0 | 69 6c 65 73 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | iles..************************** |
| 11b00 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a 0a 20 2a 20 72 65 61 64 | *******************/../*..*.read |
| 11b20 | 5f 74 72 61 63 65 20 2d 20 72 65 61 64 20 61 20 74 72 61 63 65 20 66 69 6c 65 20 61 6e 64 20 73 | _trace.-.read.a.trace.file.and.s |
| 11b40 | 74 6f 72 65 20 69 74 20 69 6e 20 6d 65 6d 6f 72 79 0a 20 2a 2f 0a 73 74 61 74 69 63 20 74 72 61 | tore.it.in.memory..*/.static.tra |
| 11b60 | 63 65 5f 74 20 2a 72 65 61 64 5f 74 72 61 63 65 28 63 68 61 72 20 2a 74 72 61 63 65 64 69 72 2c | ce_t.*read_trace(char.*tracedir, |
| 11b80 | 20 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 74 72 61 | .char.*filename).{.....FILE.*tra |
| 11ba0 | 63 65 66 69 6c 65 3b 0a 20 20 20 20 74 72 61 63 65 5f 74 20 2a 74 72 61 63 65 3b 0a 20 20 20 20 | cefile;.....trace_t.*trace;..... |
| 11bc0 | 63 68 61 72 20 74 79 70 65 5b 4d 41 58 4c 49 4e 45 5d 3b 0a 20 20 20 20 63 68 61 72 20 70 61 74 | char.type[MAXLINE];.....char.pat |
| 11be0 | 68 5b 4d 41 58 4c 49 4e 45 5d 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 64 65 78 2c 20 | h[MAXLINE];.....unsigned.index,. |
| 11c00 | 73 69 7a 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6d 61 78 5f 69 6e 64 65 78 20 3d 20 30 | size;.....unsigned.max_index.=.0 |
| 11c20 | 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6f 70 5f 69 6e 64 65 78 3b 0a 0a 20 20 20 20 69 66 | ;.....unsigned.op_index;......if |
| 11c40 | 20 28 76 65 72 62 6f 73 65 20 3e 20 31 29 0a 09 70 72 69 6e 74 66 28 22 52 65 61 64 69 6e 67 20 | .(verbose.>.1)..printf("Reading. |
| 11c60 | 74 72 61 63 65 66 69 6c 65 3a 20 25 73 5c 6e 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 0a 20 20 | tracefile:.%s\n",.filename);.... |
| 11c80 | 20 20 2f 2a 20 41 6c 6c 6f 63 61 74 65 20 74 68 65 20 74 72 61 63 65 20 72 65 63 6f 72 64 20 2a | ../*.Allocate.the.trace.record.* |
| 11ca0 | 2f 0a 20 20 20 20 69 66 20 28 28 74 72 61 63 65 20 3d 20 28 74 72 61 63 65 5f 74 20 2a 29 20 6d | /.....if.((trace.=.(trace_t.*).m |
| 11cc0 | 61 6c 6c 6f 63 28 73 69 7a 65 6f 66 28 74 72 61 63 65 5f 74 29 29 29 20 3d 3d 20 4e 55 4c 4c 29 | alloc(sizeof(trace_t))).==.NULL) |
| 11ce0 | 0a 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 31 20 66 61 69 6c 65 64 20 69 6e | ..unix_error("malloc.1.failed.in |
| 11d00 | 20 72 65 61 64 5f 74 72 61 6e 63 65 22 29 3b 0a 09 0a 20 20 20 20 2f 2a 20 52 65 61 64 20 74 68 | .read_trance");......./*.Read.th |
| 11d20 | 65 20 74 72 61 63 65 20 66 69 6c 65 20 68 65 61 64 65 72 20 2a 2f 0a 20 20 20 20 73 74 72 63 70 | e.trace.file.header.*/.....strcp |
| 11d40 | 79 28 70 61 74 68 2c 20 74 72 61 63 65 64 69 72 29 3b 0a 20 20 20 20 73 74 72 63 61 74 28 70 61 | y(path,.tracedir);.....strcat(pa |
| 11d60 | 74 68 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 69 66 20 28 28 74 72 61 63 65 66 69 6c | th,.filename);.....if.((tracefil |
| 11d80 | 65 20 3d 20 66 6f 70 65 6e 28 70 61 74 68 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b | e.=.fopen(path,."r")).==.NULL).{ |
| 11da0 | 0a 09 73 70 72 69 6e 74 66 28 6d 73 67 2c 20 22 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 | ..sprintf(msg,."Could.not.open.% |
| 11dc0 | 73 20 69 6e 20 72 65 61 64 5f 74 72 61 63 65 22 2c 20 70 61 74 68 29 3b 0a 09 75 6e 69 78 5f 65 | s.in.read_trace",.path);..unix_e |
| 11de0 | 72 72 6f 72 28 6d 73 67 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 73 63 61 6e 66 28 74 72 61 63 | rror(msg);.....}.....fscanf(trac |
| 11e00 | 65 66 69 6c 65 2c 20 22 25 64 22 2c 20 26 28 74 72 61 63 65 2d 3e 73 75 67 67 5f 68 65 61 70 73 | efile,."%d",.&(trace->sugg_heaps |
| 11e20 | 69 7a 65 29 29 3b 20 2f 2a 20 6e 6f 74 20 75 73 65 64 20 2a 2f 0a 20 20 20 20 66 73 63 61 6e 66 | ize));./*.not.used.*/.....fscanf |
| 11e40 | 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 64 22 2c 20 26 28 74 72 61 63 65 2d 3e 6e 75 6d 5f 69 | (tracefile,."%d",.&(trace->num_i |
| 11e60 | 64 73 29 29 3b 20 20 20 20 20 0a 20 20 20 20 66 73 63 61 6e 66 28 74 72 61 63 65 66 69 6c 65 2c | ds));..........fscanf(tracefile, |
| 11e80 | 20 22 25 64 22 2c 20 26 28 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 29 29 3b 20 20 20 20 20 0a | ."%d",.&(trace->num_ops));...... |
| 11ea0 | 20 20 20 20 66 73 63 61 6e 66 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 64 22 2c 20 26 28 74 72 | ....fscanf(tracefile,."%d",.&(tr |
| 11ec0 | 61 63 65 2d 3e 77 65 69 67 68 74 29 29 3b 20 20 20 20 20 20 20 20 2f 2a 20 6e 6f 74 20 75 73 65 | ace->weight));......../*.not.use |
| 11ee0 | 64 20 2a 2f 0a 20 20 20 20 0a 20 20 20 20 2f 2a 20 57 65 27 6c 6c 20 73 74 6f 72 65 20 65 61 63 | d.*/........../*.We'll.store.eac |
| 11f00 | 68 20 72 65 71 75 65 73 74 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 74 72 61 63 65 20 69 6e 20 74 | h.request.line.in.the.trace.in.t |
| 11f20 | 68 69 73 20 61 72 72 61 79 20 2a 2f 0a 20 20 20 20 69 66 20 28 28 74 72 61 63 65 2d 3e 6f 70 73 | his.array.*/.....if.((trace->ops |
| 11f40 | 20 3d 20 0a 09 20 28 74 72 61 63 65 6f 70 5f 74 20 2a 29 6d 61 6c 6c 6f 63 28 74 72 61 63 65 2d | .=....(traceop_t.*)malloc(trace- |
| 11f60 | 3e 6e 75 6d 5f 6f 70 73 20 2a 20 73 69 7a 65 6f 66 28 74 72 61 63 65 6f 70 5f 74 29 29 29 20 3d | >num_ops.*.sizeof(traceop_t))).= |
| 11f80 | 3d 20 4e 55 4c 4c 29 0a 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 32 20 66 61 | =.NULL)..unix_error("malloc.2.fa |
| 11fa0 | 69 6c 65 64 20 69 6e 20 72 65 61 64 5f 74 72 61 63 65 22 29 3b 0a 0a 20 20 20 20 2f 2a 20 57 65 | iled.in.read_trace");....../*.We |
| 11fc0 | 27 6c 6c 20 6b 65 65 70 20 61 6e 20 61 72 72 61 79 20 6f 66 20 70 6f 69 6e 74 65 72 73 20 74 6f | 'll.keep.an.array.of.pointers.to |
| 11fe0 | 20 74 68 65 20 61 6c 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b 73 20 68 65 72 65 2e 2e 2e 20 2a 2f | .the.allocated.blocks.here....*/ |
| 12000 | 0a 20 20 20 20 69 66 20 28 28 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 20 3d 20 0a 09 20 28 63 68 | .....if.((trace->blocks.=....(ch |
| 12020 | 61 72 20 2a 2a 29 6d 61 6c 6c 6f 63 28 74 72 61 63 65 2d 3e 6e 75 6d 5f 69 64 73 20 2a 20 73 69 | ar.**)malloc(trace->num_ids.*.si |
| 12040 | 7a 65 6f 66 28 63 68 61 72 20 2a 29 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 75 6e 69 78 5f 65 72 | zeof(char.*))).==.NULL)..unix_er |
| 12060 | 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 33 20 66 61 69 6c 65 64 20 69 6e 20 72 65 61 64 5f 74 72 61 | ror("malloc.3.failed.in.read_tra |
| 12080 | 63 65 22 29 3b 0a 0a 20 20 20 20 2f 2a 20 2e 2e 2e 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 | ce");....../*.....along.with.the |
| 120a0 | 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 62 79 74 65 20 73 69 7a 65 73 20 6f 66 20 65 61 63 | .corresponding.byte.sizes.of.eac |
| 120c0 | 68 20 62 6c 6f 63 6b 20 2a 2f 0a 20 20 20 20 69 66 20 28 28 74 72 61 63 65 2d 3e 62 6c 6f 63 6b | h.block.*/.....if.((trace->block |
| 120e0 | 5f 73 69 7a 65 73 20 3d 20 0a 09 20 28 73 69 7a 65 5f 74 20 2a 29 6d 61 6c 6c 6f 63 28 74 72 61 | _sizes.=....(size_t.*)malloc(tra |
| 12100 | 63 65 2d 3e 6e 75 6d 5f 69 64 73 20 2a 20 73 69 7a 65 6f 66 28 73 69 7a 65 5f 74 29 29 29 20 3d | ce->num_ids.*.sizeof(size_t))).= |
| 12120 | 3d 20 4e 55 4c 4c 29 0a 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 34 20 66 61 | =.NULL)..unix_error("malloc.4.fa |
| 12140 | 69 6c 65 64 20 69 6e 20 72 65 61 64 5f 74 72 61 63 65 22 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f | iled.in.read_trace");........../ |
| 12160 | 2a 20 72 65 61 64 20 65 76 65 72 79 20 72 65 71 75 65 73 74 20 6c 69 6e 65 20 69 6e 20 74 68 65 | *.read.every.request.line.in.the |
| 12180 | 20 74 72 61 63 65 20 66 69 6c 65 20 2a 2f 0a 20 20 20 20 69 6e 64 65 78 20 3d 20 30 3b 0a 20 20 | .trace.file.*/.....index.=.0;... |
| 121a0 | 20 20 6f 70 5f 69 6e 64 65 78 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 66 73 63 61 6e | ..op_index.=.0;.....while.(fscan |
| 121c0 | 66 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 73 22 2c 20 74 79 70 65 29 20 21 3d 20 45 4f 46 29 | f(tracefile,."%s",.type).!=.EOF) |
| 121e0 | 20 7b 0a 09 73 77 69 74 63 68 28 74 79 70 65 5b 30 5d 29 20 7b 0a 09 63 61 73 65 20 27 61 27 3a | .{..switch(type[0]).{..case.'a': |
| 12200 | 0a 09 20 20 20 20 66 73 63 61 6e 66 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 75 20 25 75 22 2c | ......fscanf(tracefile,."%u.%u", |
| 12220 | 20 26 69 6e 64 65 78 2c 20 26 73 69 7a 65 29 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 6f 70 73 | .&index,.&size);......trace->ops |
| 12240 | 5b 6f 70 5f 69 6e 64 65 78 5d 2e 74 79 70 65 20 3d 20 41 4c 4c 4f 43 3b 0a 09 20 20 20 20 74 72 | [op_index].type.=.ALLOC;......tr |
| 12260 | 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 69 6e 64 65 78 20 3d 20 69 6e 64 65 78 | ace->ops[op_index].index.=.index |
| 12280 | 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 73 69 7a 65 | ;......trace->ops[op_index].size |
| 122a0 | 20 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 6d 61 78 5f 69 6e 64 65 78 20 3d 20 28 69 6e 64 65 78 | .=.size;......max_index.=.(index |
| 122c0 | 20 3e 20 6d 61 78 5f 69 6e 64 65 78 29 20 3f 20 69 6e 64 65 78 20 3a 20 6d 61 78 5f 69 6e 64 65 | .>.max_index).?.index.:.max_inde |
| 122e0 | 78 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 27 72 27 3a 0a 09 20 20 20 20 66 | x;......break;..case.'r':......f |
| 12300 | 73 63 61 6e 66 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 75 20 25 75 22 2c 20 26 69 6e 64 65 78 | scanf(tracefile,."%u.%u",.&index |
| 12320 | 2c 20 26 73 69 7a 65 29 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 | ,.&size);......trace->ops[op_ind |
| 12340 | 65 78 5d 2e 74 79 70 65 20 3d 20 52 45 41 4c 4c 4f 43 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e | ex].type.=.REALLOC;......trace-> |
| 12360 | 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 69 6e 64 65 78 20 3d 20 69 6e 64 65 78 3b 0a 09 20 20 | ops[op_index].index.=.index;.... |
| 12380 | 20 20 74 72 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 73 69 7a 65 20 3d 20 73 69 | ..trace->ops[op_index].size.=.si |
| 123a0 | 7a 65 3b 0a 09 20 20 20 20 6d 61 78 5f 69 6e 64 65 78 20 3d 20 28 69 6e 64 65 78 20 3e 20 6d 61 | ze;......max_index.=.(index.>.ma |
| 123c0 | 78 5f 69 6e 64 65 78 29 20 3f 20 69 6e 64 65 78 20 3a 20 6d 61 78 5f 69 6e 64 65 78 3b 0a 09 20 | x_index).?.index.:.max_index;... |
| 123e0 | 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 27 66 27 3a 0a 09 20 20 20 20 66 73 63 61 6e 66 | ...break;..case.'f':......fscanf |
| 12400 | 28 74 72 61 63 65 66 69 6c 65 2c 20 22 25 75 64 22 2c 20 26 69 6e 64 65 78 29 3b 0a 09 20 20 20 | (tracefile,."%ud",.&index);..... |
| 12420 | 20 74 72 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 74 79 70 65 20 3d 20 46 52 45 | .trace->ops[op_index].type.=.FRE |
| 12440 | 45 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 6f 70 73 5b 6f 70 5f 69 6e 64 65 78 5d 2e 69 6e 64 | E;......trace->ops[op_index].ind |
| 12460 | 65 78 20 3d 20 69 6e 64 65 78 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 64 65 66 61 75 6c 74 | ex.=.index;......break;..default |
| 12480 | 3a 0a 09 20 20 20 20 70 72 69 6e 74 66 28 22 42 6f 67 75 73 20 74 79 70 65 20 63 68 61 72 61 63 | :......printf("Bogus.type.charac |
| 124a0 | 74 65 72 20 28 25 63 29 20 69 6e 20 74 72 61 63 65 66 69 6c 65 20 25 73 5c 6e 22 2c 20 0a 09 09 | ter.(%c).in.tracefile.%s\n",.... |
| 124c0 | 20 20 20 74 79 70 65 5b 30 5d 2c 20 70 61 74 68 29 3b 0a 09 20 20 20 20 65 78 69 74 28 31 29 3b | ...type[0],.path);......exit(1); |
| 124e0 | 0a 09 7d 0a 09 6f 70 5f 69 6e 64 65 78 2b 2b 3b 0a 09 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c | ..}..op_index++;.......}.....fcl |
| 12500 | 6f 73 65 28 74 72 61 63 65 66 69 6c 65 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 61 78 5f 69 | ose(tracefile);.....assert(max_i |
| 12520 | 6e 64 65 78 20 3d 3d 20 74 72 61 63 65 2d 3e 6e 75 6d 5f 69 64 73 20 2d 20 31 29 3b 0a 20 20 20 | ndex.==.trace->num_ids.-.1);.... |
| 12540 | 20 61 73 73 65 72 74 28 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 20 3d 3d 20 6f 70 5f 69 6e 64 | .assert(trace->num_ops.==.op_ind |
| 12560 | 65 78 29 3b 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 61 63 65 3b 0a 7d 0a 0a 2f | ex);..........return.trace;.}../ |
| 12580 | 2a 0a 20 2a 20 66 72 65 65 5f 74 72 61 63 65 20 2d 20 46 72 65 65 20 74 68 65 20 74 72 61 63 65 | *..*.free_trace.-.Free.the.trace |
| 125a0 | 20 72 65 63 6f 72 64 20 61 6e 64 20 74 68 65 20 74 68 72 65 65 20 61 72 72 61 79 73 20 69 74 20 | .record.and.the.three.arrays.it. |
| 125c0 | 70 6f 69 6e 74 73 0a 20 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 2c 20 61 6c 6c 20 6f | points..*..............to,.all.o |
| 125e0 | 66 20 77 68 69 63 68 20 77 65 72 65 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 72 65 61 64 5f 74 | f.which.were.allocated.in.read_t |
| 12600 | 72 61 63 65 28 29 2e 0a 20 2a 2f 0a 76 6f 69 64 20 66 72 65 65 5f 74 72 61 63 65 28 74 72 61 63 | race()...*/.void.free_trace(trac |
| 12620 | 65 5f 74 20 2a 74 72 61 63 65 29 0a 7b 0a 20 20 20 20 66 72 65 65 28 74 72 61 63 65 2d 3e 6f 70 | e_t.*trace).{.....free(trace->op |
| 12640 | 73 29 3b 20 20 20 20 20 20 20 20 20 2f 2a 20 66 72 65 65 20 74 68 65 20 74 68 72 65 65 20 61 72 | s);........./*.free.the.three.ar |
| 12660 | 72 61 79 73 2e 2e 2e 20 2a 2f 0a 20 20 20 20 66 72 65 65 28 74 72 61 63 65 2d 3e 62 6c 6f 63 6b | rays....*/.....free(trace->block |
| 12680 | 73 29 3b 20 20 20 20 20 20 0a 20 20 20 20 66 72 65 65 28 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f | s);...........free(trace->block_ |
| 126a0 | 73 69 7a 65 73 29 3b 0a 20 20 20 20 66 72 65 65 28 74 72 61 63 65 29 3b 20 20 20 20 20 20 20 20 | sizes);.....free(trace);........ |
| 126c0 | 20 20 20 20 20 20 2f 2a 20 61 6e 64 20 74 68 65 20 74 72 61 63 65 20 72 65 63 6f 72 64 20 69 74 | ....../*.and.the.trace.record.it |
| 126e0 | 73 65 6c 66 2e 2e 2e 20 2a 2f 0a 7d 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | self....*/.}../***************** |
| 12700 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 12720 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 54 68 65 20 66 6f 6c | *********************..*.The.fol |
| 12740 | 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 65 76 61 6c 75 61 74 65 20 74 68 65 20 63 6f | lowing.functions.evaluate.the.co |
| 12760 | 72 72 65 63 74 6e 65 73 73 2c 20 73 70 61 63 65 20 75 74 69 6c 69 7a 61 74 69 6f 6e 2c 0a 20 2a | rrectness,.space.utilization,..* |
| 12780 | 20 61 6e 64 20 74 68 72 6f 75 67 68 70 75 74 20 6f 66 20 74 68 65 20 6c 69 62 63 20 61 6e 64 20 | .and.throughput.of.the.libc.and. |
| 127a0 | 6d 6d 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 73 2e 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | mm.malloc.packages...*********** |
| 127c0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 127e0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 0a 2f 2a | ***************************/../* |
| 12800 | 0a 20 2a 20 65 76 61 6c 5f 6d 6d 5f 76 61 6c 69 64 20 2d 20 43 68 65 63 6b 20 74 68 65 20 6d 6d | ..*.eval_mm_valid.-.Check.the.mm |
| 12820 | 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 66 6f 72 20 63 6f 72 72 65 63 74 6e 65 73 73 0a | .malloc.package.for.correctness. |
| 12840 | 20 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 65 76 61 6c 5f 6d 6d 5f 76 61 6c 69 64 28 74 72 61 | .*/.static.int.eval_mm_valid(tra |
| 12860 | 63 65 5f 74 20 2a 74 72 61 63 65 2c 20 69 6e 74 20 74 72 61 63 65 6e 75 6d 2c 20 72 61 6e 67 65 | ce_t.*trace,.int.tracenum,.range |
| 12880 | 5f 74 20 2a 2a 72 61 6e 67 65 73 29 20 0a 7b 0a 20 20 20 20 69 6e 74 20 69 2c 20 6a 3b 0a 20 20 | _t.**ranges)..{.....int.i,.j;... |
| 128a0 | 20 20 69 6e 74 20 69 6e 64 65 78 3b 0a 20 20 20 20 69 6e 74 20 73 69 7a 65 3b 0a 20 20 20 20 69 | ..int.index;.....int.size;.....i |
| 128c0 | 6e 74 20 6f 6c 64 73 69 7a 65 3b 0a 20 20 20 20 63 68 61 72 20 2a 6e 65 77 70 3b 0a 20 20 20 20 | nt.oldsize;.....char.*newp;..... |
| 128e0 | 63 68 61 72 20 2a 6f 6c 64 70 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 3b 0a 20 20 20 20 0a 20 20 | char.*oldp;.....char.*p;........ |
| 12900 | 20 20 2f 2a 20 52 65 73 65 74 20 74 68 65 20 68 65 61 70 20 61 6e 64 20 66 72 65 65 20 61 6e 79 | ../*.Reset.the.heap.and.free.any |
| 12920 | 20 72 65 63 6f 72 64 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 6c 69 73 74 20 2a 2f 0a 20 20 | .records.in.the.range.list.*/... |
| 12940 | 20 20 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 28 29 3b 0a 20 20 20 20 63 6c 65 61 72 5f 72 61 6e | ..mem_reset_brk();.....clear_ran |
| 12960 | 67 65 73 28 72 61 6e 67 65 73 29 3b 0a 0a 20 20 20 20 2f 2a 20 43 61 6c 6c 20 74 68 65 20 6d 6d | ges(ranges);....../*.Call.the.mm |
| 12980 | 20 70 61 63 6b 61 67 65 27 73 20 69 6e 69 74 20 66 75 6e 63 74 69 6f 6e 20 2a 2f 0a 20 20 20 20 | .package's.init.function.*/..... |
| 129a0 | 69 66 20 28 6d 6d 5f 69 6e 69 74 28 29 20 3c 20 30 29 20 7b 0a 09 6d 61 6c 6c 6f 63 5f 65 72 72 | if.(mm_init().<.0).{..malloc_err |
| 129c0 | 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 30 2c 20 22 6d 6d 5f 69 6e 69 74 20 66 61 69 6c 65 64 2e | or(tracenum,.0,."mm_init.failed. |
| 129e0 | 22 29 3b 0a 09 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 49 6e 74 | ");..return.0;.....}....../*.Int |
| 12a00 | 65 72 70 72 65 74 20 65 61 63 68 20 6f 70 65 72 61 74 69 6f 6e 20 69 6e 20 74 68 65 20 74 72 61 | erpret.each.operation.in.the.tra |
| 12a20 | 63 65 20 69 6e 20 6f 72 64 65 72 20 2a 2f 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 20 | ce.in.order.*/.....for.(i.=.0;.. |
| 12a40 | 69 20 3c 20 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 3b 20 20 69 2b 2b 29 20 7b 0a 09 69 6e 64 | i.<.trace->num_ops;..i++).{..ind |
| 12a60 | 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 09 73 69 7a 65 20 | ex.=.trace->ops[i].index;..size. |
| 12a80 | 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 0a 20 20 20 20 20 20 20 20 73 | =.trace->ops[i].size;..........s |
| 12aa0 | 77 69 74 63 68 20 28 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 74 79 70 65 29 20 7b 0a 0a 20 20 | witch.(trace->ops[i].type).{.... |
| 12ac0 | 20 20 20 20 20 20 63 61 73 65 20 41 4c 4c 4f 43 3a 20 2f 2a 20 6d 6d 5f 6d 61 6c 6c 6f 63 20 2a | ......case.ALLOC:./*.mm_malloc.* |
| 12ae0 | 2f 0a 0a 09 20 20 20 20 2f 2a 20 43 61 6c 6c 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 61 | /......./*.Call.the.student's.ma |
| 12b00 | 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 66 20 28 28 70 20 3d 20 6d 6d 5f 6d 61 6c 6c 6f 63 28 | lloc.*/......if.((p.=.mm_malloc( |
| 12b20 | 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 | size)).==.NULL).{...malloc_error |
| 12b40 | 28 74 72 61 63 65 6e 75 6d 2c 20 69 2c 20 22 6d 6d 5f 6d 61 6c 6c 6f 63 20 66 61 69 6c 65 64 2e | (tracenum,.i,."mm_malloc.failed. |
| 12b60 | 22 29 3b 0a 09 09 72 65 74 75 72 6e 20 30 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 0a 09 20 20 | ");...return.0;......}.......... |
| 12b80 | 20 20 2f 2a 20 0a 09 20 20 20 20 20 2a 20 54 65 73 74 20 74 68 65 20 72 61 6e 67 65 20 6f 66 20 | ../*........*.Test.the.range.of. |
| 12ba0 | 74 68 65 20 6e 65 77 20 62 6c 6f 63 6b 20 66 6f 72 20 63 6f 72 72 65 63 74 6e 65 73 73 20 61 6e | the.new.block.for.correctness.an |
| 12bc0 | 64 20 61 64 64 20 69 74 20 0a 09 20 20 20 20 20 2a 20 74 6f 20 74 68 65 20 72 61 6e 67 65 20 6c | d.add.it........*.to.the.range.l |
| 12be0 | 69 73 74 20 69 66 20 4f 4b 2e 20 54 68 65 20 62 6c 6f 63 6b 20 6d 75 73 74 20 62 65 20 20 62 65 | ist.if.OK..The.block.must.be..be |
| 12c00 | 20 61 6c 69 67 6e 65 64 20 70 72 6f 70 65 72 6c 79 2c 0a 09 20 20 20 20 20 2a 20 61 6e 64 20 6d | .aligned.properly,.......*.and.m |
| 12c20 | 75 73 74 20 6e 6f 74 20 6f 76 65 72 6c 61 70 20 61 6e 79 20 63 75 72 72 65 6e 74 6c 79 20 61 6c | ust.not.overlap.any.currently.al |
| 12c40 | 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b 2e 20 0a 09 20 20 20 20 20 2a 2f 20 0a 09 20 20 20 20 69 | located.block.........*/.......i |
| 12c60 | 66 20 28 61 64 64 5f 72 61 6e 67 65 28 72 61 6e 67 65 73 2c 20 70 2c 20 73 69 7a 65 2c 20 74 72 | f.(add_range(ranges,.p,.size,.tr |
| 12c80 | 61 63 65 6e 75 6d 2c 20 69 29 20 3d 3d 20 30 29 0a 09 09 72 65 74 75 72 6e 20 30 3b 0a 09 20 20 | acenum,.i).==.0)...return.0;.... |
| 12ca0 | 20 20 0a 09 20 20 20 20 2f 2a 20 41 44 44 45 44 3a 20 63 67 77 0a 09 20 20 20 20 20 2a 20 66 69 | ......../*.ADDED:.cgw.......*.fi |
| 12cc0 | 6c 6c 20 72 61 6e 67 65 20 77 69 74 68 20 6c 6f 77 20 62 79 74 65 20 6f 66 20 69 6e 64 65 78 2e | ll.range.with.low.byte.of.index. |
| 12ce0 | 20 20 54 68 69 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 6c 61 74 65 72 0a 09 20 20 20 20 20 | ..This.will.be.used.later....... |
| 12d00 | 2a 20 69 66 20 77 65 20 72 65 61 6c 6c 6f 63 20 74 68 65 20 62 6c 6f 63 6b 20 61 6e 64 20 77 69 | *.if.we.realloc.the.block.and.wi |
| 12d20 | 73 68 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 20 6f 6c 64 0a 09 20 20 | sh.to.make.sure.that.the.old.... |
| 12d40 | 20 20 20 2a 20 64 61 74 61 20 77 61 73 20 63 6f 70 69 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 | ...*.data.was.copied.to.the.new. |
| 12d60 | 62 6c 6f 63 6b 0a 09 20 20 20 20 20 2a 2f 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 70 2c 20 69 6e | block.......*/......memset(p,.in |
| 12d80 | 64 65 78 20 26 20 30 78 46 46 2c 20 73 69 7a 65 29 3b 0a 0a 09 20 20 20 20 2f 2a 20 52 65 6d 65 | dex.&.0xFF,.size);......./*.Reme |
| 12da0 | 6d 62 65 72 20 72 65 67 69 6f 6e 20 2a 2f 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b | mber.region.*/......trace->block |
| 12dc0 | 73 5b 69 6e 64 65 78 5d 20 3d 20 70 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f | s[index].=.p;......trace->block_ |
| 12de0 | 73 69 7a 65 73 5b 69 6e 64 65 78 5d 20 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b | sizes[index].=.size;......break; |
| 12e00 | 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 52 45 41 4c 4c 4f 43 3a 20 2f 2a 20 6d 6d 5f 72 65 | ..........case.REALLOC:./*.mm_re |
| 12e20 | 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 43 61 6c 6c 20 74 68 65 20 | alloc.*/............/*.Call.the. |
| 12e40 | 73 74 75 64 65 6e 74 27 73 20 72 65 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 6f 6c 64 70 20 3d | student's.realloc.*/......oldp.= |
| 12e60 | 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 69 66 20 28 | .trace->blocks[index];......if.( |
| 12e80 | 28 6e 65 77 70 20 3d 20 6d 6d 5f 72 65 61 6c 6c 6f 63 28 6f 6c 64 70 2c 20 73 69 7a 65 29 29 20 | (newp.=.mm_realloc(oldp,.size)). |
| 12ea0 | 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e | ==.NULL).{...malloc_error(tracen |
| 12ec0 | 75 6d 2c 20 69 2c 20 22 6d 6d 5f 72 65 61 6c 6c 6f 63 20 66 61 69 6c 65 64 2e 22 29 3b 0a 09 09 | um,.i,."mm_realloc.failed.");... |
| 12ee0 | 72 65 74 75 72 6e 20 30 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 52 | return.0;......}............/*.R |
| 12f00 | 65 6d 6f 76 65 20 74 68 65 20 6f 6c 64 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 72 61 | emove.the.old.region.from.the.ra |
| 12f20 | 6e 67 65 20 6c 69 73 74 20 2a 2f 0a 09 20 20 20 20 72 65 6d 6f 76 65 5f 72 61 6e 67 65 28 72 61 | nge.list.*/......remove_range(ra |
| 12f40 | 6e 67 65 73 2c 20 6f 6c 64 70 29 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 43 68 65 63 6b | nges,.oldp);............/*.Check |
| 12f60 | 20 6e 65 77 20 62 6c 6f 63 6b 20 66 6f 72 20 63 6f 72 72 65 63 74 6e 65 73 73 20 61 6e 64 20 61 | .new.block.for.correctness.and.a |
| 12f80 | 64 64 20 69 74 20 74 6f 20 72 61 6e 67 65 20 6c 69 73 74 20 2a 2f 0a 09 20 20 20 20 69 66 20 28 | dd.it.to.range.list.*/......if.( |
| 12fa0 | 61 64 64 5f 72 61 6e 67 65 28 72 61 6e 67 65 73 2c 20 6e 65 77 70 2c 20 73 69 7a 65 2c 20 74 72 | add_range(ranges,.newp,.size,.tr |
| 12fc0 | 61 63 65 6e 75 6d 2c 20 69 29 20 3d 3d 20 30 29 0a 09 09 72 65 74 75 72 6e 20 30 3b 0a 09 20 20 | acenum,.i).==.0)...return.0;.... |
| 12fe0 | 20 20 0a 09 20 20 20 20 2f 2a 20 41 44 44 45 44 3a 20 63 67 77 0a 09 20 20 20 20 20 2a 20 4d 61 | ......../*.ADDED:.cgw.......*.Ma |
| 13000 | 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 20 6e 65 77 20 62 6c 6f 63 6b 20 63 6f 6e 74 61 | ke.sure.that.the.new.block.conta |
| 13020 | 69 6e 73 20 74 68 65 20 64 61 74 61 20 66 72 6f 6d 20 74 68 65 20 6f 6c 64 20 0a 09 20 20 20 20 | ins.the.data.from.the.old....... |
| 13040 | 20 2a 20 62 6c 6f 63 6b 20 61 6e 64 20 74 68 65 6e 20 66 69 6c 6c 20 69 6e 20 74 68 65 20 6e 65 | .*.block.and.then.fill.in.the.ne |
| 13060 | 77 20 62 6c 6f 63 6b 20 77 69 74 68 20 74 68 65 20 6c 6f 77 20 6f 72 64 65 72 20 62 79 74 65 0a | w.block.with.the.low.order.byte. |
| 13080 | 09 20 20 20 20 20 2a 20 6f 66 20 74 68 65 20 6e 65 77 20 69 6e 64 65 78 0a 09 20 20 20 20 20 2a | ......*.of.the.new.index.......* |
| 130a0 | 2f 0a 09 20 20 20 20 6f 6c 64 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f 73 69 | /......oldsize.=.trace->block_si |
| 130c0 | 7a 65 73 5b 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 69 66 20 28 73 69 7a 65 20 3c 20 6f 6c 64 73 | zes[index];......if.(size.<.olds |
| 130e0 | 69 7a 65 29 20 6f 6c 64 73 69 7a 65 20 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 66 6f 72 20 28 6a | ize).oldsize.=.size;......for.(j |
| 13100 | 20 3d 20 30 3b 20 6a 20 3c 20 6f 6c 64 73 69 7a 65 3b 20 6a 2b 2b 29 20 7b 0a 09 20 20 20 20 20 | .=.0;.j.<.oldsize;.j++).{....... |
| 13120 | 20 69 66 20 28 6e 65 77 70 5b 6a 5d 20 21 3d 20 28 69 6e 64 65 78 20 26 20 30 78 46 46 29 29 20 | .if.(newp[j].!=.(index.&.0xFF)). |
| 13140 | 7b 0a 09 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 69 2c 20 22 6d | {...malloc_error(tracenum,.i,."m |
| 13160 | 6d 5f 72 65 61 6c 6c 6f 63 20 64 69 64 20 6e 6f 74 20 70 72 65 73 65 72 76 65 20 74 68 65 20 22 | m_realloc.did.not.preserve.the." |
| 13180 | 0a 09 09 09 20 20 20 20 20 22 64 61 74 61 20 66 72 6f 6d 20 6f 6c 64 20 62 6c 6f 63 6b 22 29 3b | ........."data.from.old.block"); |
| 131a0 | 0a 09 09 72 65 74 75 72 6e 20 30 3b 0a 09 20 20 20 20 20 20 7d 0a 09 20 20 20 20 7d 0a 09 20 20 | ...return.0;........}......}.... |
| 131c0 | 20 20 6d 65 6d 73 65 74 28 6e 65 77 70 2c 20 69 6e 64 65 78 20 26 20 30 78 46 46 2c 20 73 69 7a | ..memset(newp,.index.&.0xFF,.siz |
| 131e0 | 65 29 3b 0a 0a 09 20 20 20 20 2f 2a 20 52 65 6d 65 6d 62 65 72 20 72 65 67 69 6f 6e 20 2a 2f 0a | e);......./*.Remember.region.*/. |
| 13200 | 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 6e 65 77 70 | .....trace->blocks[index].=.newp |
| 13220 | 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f 73 69 7a 65 73 5b 69 6e 64 65 78 5d | ;......trace->block_sizes[index] |
| 13240 | 20 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 20 20 20 20 63 61 | .=.size;......break;..........ca |
| 13260 | 73 65 20 46 52 45 45 3a 20 2f 2a 20 6d 6d 5f 66 72 65 65 20 2a 2f 0a 09 20 20 20 20 0a 09 20 20 | se.FREE:./*.mm_free.*/.......... |
| 13280 | 20 20 2f 2a 20 52 65 6d 6f 76 65 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 6c 69 73 74 20 61 6e 64 | ../*.Remove.region.from.list.and |
| 132a0 | 20 63 61 6c 6c 20 73 74 75 64 65 6e 74 27 73 20 66 72 65 65 20 66 75 6e 63 74 69 6f 6e 20 2a 2f | .call.student's.free.function.*/ |
| 132c0 | 0a 09 20 20 20 20 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 3b 0a | ......p.=.trace->blocks[index];. |
| 132e0 | 09 20 20 20 20 72 65 6d 6f 76 65 5f 72 61 6e 67 65 28 72 61 6e 67 65 73 2c 20 70 29 3b 0a 09 20 | .....remove_range(ranges,.p);... |
| 13300 | 20 20 20 6d 6d 5f 66 72 65 65 28 70 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 64 65 66 | ...mm_free(p);......break;...def |
| 13320 | 61 75 6c 74 3a 0a 09 20 20 20 20 61 70 70 5f 65 72 72 6f 72 28 22 4e 6f 6e 65 78 69 73 74 65 6e | ault:......app_error("Nonexisten |
| 13340 | 74 20 72 65 71 75 65 73 74 20 74 79 70 65 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f 76 61 6c 69 64 22 | t.request.type.in.eval_mm_valid" |
| 13360 | 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 41 73 20 66 | );.........}......}....../*.As.f |
| 13380 | 61 72 20 61 73 20 77 65 20 6b 6e 6f 77 2c 20 74 68 69 73 20 69 73 20 61 20 76 61 6c 69 64 20 6d | ar.as.we.know,.this.is.a.valid.m |
| 133a0 | 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 7d | alloc.package.*/.....return.1;.} |
| 133c0 | 0a 0a 2f 2a 20 0a 20 2a 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 20 2d 20 45 76 61 6c 75 61 74 65 | ../*...*.eval_mm_util.-.Evaluate |
| 133e0 | 20 74 68 65 20 73 70 61 63 65 20 75 74 69 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 74 | .the.space.utilization.of.the.st |
| 13400 | 75 64 65 6e 74 27 73 20 70 61 63 6b 61 67 65 0a 20 2a 20 20 20 54 68 65 20 69 64 65 61 20 69 73 | udent's.package..*...The.idea.is |
| 13420 | 20 74 6f 20 72 65 6d 65 6d 62 65 72 20 74 68 65 20 68 69 67 68 20 77 61 74 65 72 20 6d 61 72 6b | .to.remember.the.high.water.mark |
| 13440 | 20 22 68 77 6d 22 20 6f 66 20 74 68 65 20 68 65 61 70 20 66 6f 72 20 0a 20 2a 20 20 20 61 6e 20 | ."hwm".of.the.heap.for...*...an. |
| 13460 | 6f 70 74 69 6d 61 6c 20 61 6c 6c 6f 63 61 74 6f 72 2c 20 69 2e 65 2e 2c 20 6e 6f 20 67 61 70 73 | optimal.allocator,.i.e.,.no.gaps |
| 13480 | 20 61 6e 64 20 6e 6f 20 69 6e 74 65 72 6e 61 6c 20 66 72 61 67 6d 65 6e 74 61 74 69 6f 6e 2e 0a | .and.no.internal.fragmentation.. |
| 134a0 | 20 2a 20 20 20 55 74 69 6c 69 7a 61 74 69 6f 6e 20 69 73 20 74 68 65 20 72 61 74 69 6f 20 68 77 | .*...Utilization.is.the.ratio.hw |
| 134c0 | 6d 2f 68 65 61 70 73 69 7a 65 2c 20 77 68 65 72 65 20 68 65 61 70 73 69 7a 65 20 69 73 20 74 68 | m/heapsize,.where.heapsize.is.th |
| 134e0 | 65 20 0a 20 2a 20 20 20 73 69 7a 65 20 6f 66 20 74 68 65 20 68 65 61 70 20 69 6e 20 62 79 74 65 | e...*...size.of.the.heap.in.byte |
| 13500 | 73 20 61 66 74 65 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 73 74 75 64 65 6e 74 27 73 20 6d 61 | s.after.running.the.student's.ma |
| 13520 | 6c 6c 6f 63 20 0a 20 2a 20 20 20 70 61 63 6b 61 67 65 20 6f 6e 20 74 68 65 20 74 72 61 63 65 2e | lloc...*...package.on.the.trace. |
| 13540 | 20 4e 6f 74 65 20 74 68 61 74 20 6f 75 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 | .Note.that.our.implementation.of |
| 13560 | 20 6d 65 6d 5f 73 62 72 6b 28 29 20 0a 20 2a 20 20 20 64 6f 65 73 6e 27 74 20 61 6c 6c 6f 77 20 | .mem_sbrk()...*...doesn't.allow. |
| 13580 | 74 68 65 20 73 74 75 64 65 6e 74 73 20 74 6f 20 64 65 63 72 65 6d 65 6e 74 20 74 68 65 20 62 72 | the.students.to.decrement.the.br |
| 135a0 | 6b 20 70 6f 69 6e 74 65 72 2c 20 73 6f 20 62 72 6b 0a 20 2a 20 20 20 69 73 20 61 6c 77 61 79 73 | k.pointer,.so.brk..*...is.always |
| 135c0 | 20 74 68 65 20 68 69 67 68 20 77 61 74 65 72 20 6d 61 72 6b 20 6f 66 20 74 68 65 20 68 65 61 70 | .the.high.water.mark.of.the.heap |
| 135e0 | 2e 20 0a 20 2a 20 20 20 0a 20 2a 2f 0a 73 74 61 74 69 63 20 64 6f 75 62 6c 65 20 65 76 61 6c 5f | ....*.....*/.static.double.eval_ |
| 13600 | 6d 6d 5f 75 74 69 6c 28 74 72 61 63 65 5f 74 20 2a 74 72 61 63 65 2c 20 69 6e 74 20 74 72 61 63 | mm_util(trace_t.*trace,.int.trac |
| 13620 | 65 6e 75 6d 2c 20 72 61 6e 67 65 5f 74 20 2a 2a 72 61 6e 67 65 73 29 0a 7b 20 20 20 0a 20 20 20 | enum,.range_t.**ranges).{....... |
| 13640 | 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 69 6e 64 65 78 3b 0a 20 20 20 20 69 6e 74 20 73 | .int.i;.....int.index;.....int.s |
| 13660 | 69 7a 65 2c 20 6e 65 77 73 69 7a 65 2c 20 6f 6c 64 73 69 7a 65 3b 0a 20 20 20 20 69 6e 74 20 6d | ize,.newsize,.oldsize;.....int.m |
| 13680 | 61 78 5f 74 6f 74 61 6c 5f 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 69 6e 74 20 74 6f 74 61 6c | ax_total_size.=.0;.....int.total |
| 136a0 | 5f 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 3b 0a 20 20 20 20 63 68 61 72 | _size.=.0;.....char.*p;.....char |
| 136c0 | 20 2a 6e 65 77 70 2c 20 2a 6f 6c 64 70 3b 0a 0a 20 20 20 20 2f 2a 20 69 6e 69 74 69 61 6c 69 7a | .*newp,.*oldp;....../*.initializ |
| 136e0 | 65 20 74 68 65 20 68 65 61 70 20 61 6e 64 20 74 68 65 20 6d 6d 20 6d 61 6c 6c 6f 63 20 70 61 63 | e.the.heap.and.the.mm.malloc.pac |
| 13700 | 6b 61 67 65 20 2a 2f 0a 20 20 20 20 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 28 29 3b 0a 20 20 20 | kage.*/.....mem_reset_brk();.... |
| 13720 | 20 69 66 20 28 6d 6d 5f 69 6e 69 74 28 29 20 3c 20 30 29 0a 09 61 70 70 5f 65 72 72 6f 72 28 22 | .if.(mm_init().<.0)..app_error(" |
| 13740 | 6d 6d 5f 69 6e 69 74 20 66 61 69 6c 65 64 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 22 29 | mm_init.failed.in.eval_mm_util") |
| 13760 | 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 20 69 20 3c 20 74 72 61 63 65 2d 3e 6e | ;......for.(i.=.0;..i.<.trace->n |
| 13780 | 75 6d 5f 6f 70 73 3b 20 20 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 | um_ops;..i++).{.........switch.( |
| 137a0 | 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 74 79 70 65 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 63 | trace->ops[i].type).{..........c |
| 137c0 | 61 73 65 20 41 4c 4c 4f 43 3a 20 2f 2a 20 6d 6d 5f 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 | ase.ALLOC:./*.mm_alloc.*/......i |
| 137e0 | 6e 64 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 09 20 20 20 | ndex.=.trace->ops[i].index;..... |
| 13800 | 20 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 0a 09 20 20 | .size.=.trace->ops[i].size;..... |
| 13820 | 20 20 69 66 20 28 28 70 20 3d 20 6d 6d 5f 6d 61 6c 6c 6f 63 28 73 69 7a 65 29 29 20 3d 3d 20 4e | ..if.((p.=.mm_malloc(size)).==.N |
| 13840 | 55 4c 4c 29 20 0a 09 09 61 70 70 5f 65 72 72 6f 72 28 22 6d 6d 5f 6d 61 6c 6c 6f 63 20 66 61 69 | ULL)....app_error("mm_malloc.fai |
| 13860 | 6c 65 64 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 22 29 3b 0a 09 20 20 20 20 0a 09 20 20 | led.in.eval_mm_util");.......... |
| 13880 | 20 20 2f 2a 20 52 65 6d 65 6d 62 65 72 20 72 65 67 69 6f 6e 20 61 6e 64 20 73 69 7a 65 20 2a 2f | ../*.Remember.region.and.size.*/ |
| 138a0 | 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 70 3b 0a | ......trace->blocks[index].=.p;. |
| 138c0 | 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f 73 69 7a 65 73 5b 69 6e 64 65 78 5d 20 3d | .....trace->block_sizes[index].= |
| 138e0 | 20 73 69 7a 65 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 4b 65 65 70 20 74 72 61 63 6b 20 | .size;............/*.Keep.track. |
| 13900 | 6f 66 20 63 75 72 72 65 6e 74 20 74 6f 74 61 6c 20 73 69 7a 65 0a 09 20 20 20 20 20 2a 20 6f 66 | of.current.total.size.......*.of |
| 13920 | 20 61 6c 6c 20 61 6c 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b 73 20 2a 2f 0a 09 20 20 20 20 74 6f | .all.allocated.blocks.*/......to |
| 13940 | 74 61 6c 5f 73 69 7a 65 20 2b 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 | tal_size.+=.size;............/*. |
| 13960 | 55 70 64 61 74 65 20 73 74 61 74 69 73 74 69 63 73 20 2a 2f 0a 09 20 20 20 20 6d 61 78 5f 74 6f | Update.statistics.*/......max_to |
| 13980 | 74 61 6c 5f 73 69 7a 65 20 3d 20 28 74 6f 74 61 6c 5f 73 69 7a 65 20 3e 20 6d 61 78 5f 74 6f 74 | tal_size.=.(total_size.>.max_tot |
| 139a0 | 61 6c 5f 73 69 7a 65 29 20 3f 0a 09 09 74 6f 74 61 6c 5f 73 69 7a 65 20 3a 20 6d 61 78 5f 74 6f | al_size).?...total_size.:.max_to |
| 139c0 | 74 61 6c 5f 73 69 7a 65 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 63 61 73 65 20 52 45 41 | tal_size;......break;...case.REA |
| 139e0 | 4c 4c 4f 43 3a 20 2f 2a 20 6d 6d 5f 72 65 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 6e 64 65 | LLOC:./*.mm_realloc.*/......inde |
| 13a00 | 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 09 20 20 20 20 6e 65 | x.=.trace->ops[i].index;......ne |
| 13a20 | 77 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 09 20 20 20 | wsize.=.trace->ops[i].size;..... |
| 13a40 | 20 6f 6c 64 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f 73 69 7a 65 73 5b 69 6e | .oldsize.=.trace->block_sizes[in |
| 13a60 | 64 65 78 5d 3b 0a 0a 09 20 20 20 20 6f 6c 64 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 | dex];.......oldp.=.trace->blocks |
| 13a80 | 5b 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 69 66 20 28 28 6e 65 77 70 20 3d 20 6d 6d 5f 72 65 61 | [index];......if.((newp.=.mm_rea |
| 13aa0 | 6c 6c 6f 63 28 6f 6c 64 70 2c 6e 65 77 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 09 61 | lloc(oldp,newsize)).==.NULL)...a |
| 13ac0 | 70 70 5f 65 72 72 6f 72 28 22 6d 6d 5f 72 65 61 6c 6c 6f 63 20 66 61 69 6c 65 64 20 69 6e 20 65 | pp_error("mm_realloc.failed.in.e |
| 13ae0 | 76 61 6c 5f 6d 6d 5f 75 74 69 6c 22 29 3b 0a 0a 09 20 20 20 20 2f 2a 20 52 65 6d 65 6d 62 65 72 | val_mm_util");......./*.Remember |
| 13b00 | 20 72 65 67 69 6f 6e 20 61 6e 64 20 73 69 7a 65 20 2a 2f 0a 09 20 20 20 20 74 72 61 63 65 2d 3e | .region.and.size.*/......trace-> |
| 13b20 | 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 6e 65 77 70 3b 0a 09 20 20 20 20 74 72 61 63 65 | blocks[index].=.newp;......trace |
| 13b40 | 2d 3e 62 6c 6f 63 6b 5f 73 69 7a 65 73 5b 69 6e 64 65 78 5d 20 3d 20 6e 65 77 73 69 7a 65 3b 0a | ->block_sizes[index].=.newsize;. |
| 13b60 | 09 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 4b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 63 75 72 72 | .........../*.Keep.track.of.curr |
| 13b80 | 65 6e 74 20 74 6f 74 61 6c 20 73 69 7a 65 0a 09 20 20 20 20 20 2a 20 6f 66 20 61 6c 6c 20 61 6c | ent.total.size.......*.of.all.al |
| 13ba0 | 6c 6f 63 61 74 65 64 20 62 6c 6f 63 6b 73 20 2a 2f 0a 09 20 20 20 20 74 6f 74 61 6c 5f 73 69 7a | located.blocks.*/......total_siz |
| 13bc0 | 65 20 2b 3d 20 28 6e 65 77 73 69 7a 65 20 2d 20 6f 6c 64 73 69 7a 65 29 3b 0a 09 20 20 20 20 0a | e.+=.(newsize.-.oldsize);....... |
| 13be0 | 09 20 20 20 20 2f 2a 20 55 70 64 61 74 65 20 73 74 61 74 69 73 74 69 63 73 20 2a 2f 0a 09 20 20 | ...../*.Update.statistics.*/.... |
| 13c00 | 20 20 6d 61 78 5f 74 6f 74 61 6c 5f 73 69 7a 65 20 3d 20 28 74 6f 74 61 6c 5f 73 69 7a 65 20 3e | ..max_total_size.=.(total_size.> |
| 13c20 | 20 6d 61 78 5f 74 6f 74 61 6c 5f 73 69 7a 65 29 20 3f 0a 09 09 74 6f 74 61 6c 5f 73 69 7a 65 20 | .max_total_size).?...total_size. |
| 13c40 | 3a 20 6d 61 78 5f 74 6f 74 61 6c 5f 73 69 7a 65 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 | :.max_total_size;......break;... |
| 13c60 | 20 20 20 20 20 20 20 63 61 73 65 20 46 52 45 45 3a 20 2f 2a 20 6d 6d 5f 66 72 65 65 20 2a 2f 0a | .......case.FREE:./*.mm_free.*/. |
| 13c80 | 09 20 20 20 20 69 6e 64 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 | .....index.=.trace->ops[i].index |
| 13ca0 | 3b 0a 09 20 20 20 20 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 5f 73 69 7a 65 73 | ;......size.=.trace->block_sizes |
| 13cc0 | 5b 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b | [index];......p.=.trace->blocks[ |
| 13ce0 | 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 6d 6d 5f 66 72 65 65 28 70 29 3b 0a 09 | index];............mm_free(p);.. |
| 13d00 | 20 20 20 20 0a 09 20 20 20 20 2f 2a 20 4b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 63 75 72 72 65 | ........../*.Keep.track.of.curre |
| 13d20 | 6e 74 20 74 6f 74 61 6c 20 73 69 7a 65 0a 09 20 20 20 20 20 2a 20 6f 66 20 61 6c 6c 20 61 6c 6c | nt.total.size.......*.of.all.all |
| 13d40 | 6f 63 61 74 65 64 20 62 6c 6f 63 6b 73 20 2a 2f 0a 09 20 20 20 20 74 6f 74 61 6c 5f 73 69 7a 65 | ocated.blocks.*/......total_size |
| 13d60 | 20 2d 3d 20 73 69 7a 65 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 64 65 | .-=.size;............break;...de |
| 13d80 | 66 61 75 6c 74 3a 0a 09 20 20 20 20 61 70 70 5f 65 72 72 6f 72 28 22 4e 6f 6e 65 78 69 73 74 65 | fault:......app_error("Nonexiste |
| 13da0 | 6e 74 20 72 65 71 75 65 73 74 20 74 79 70 65 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f 75 74 69 6c 22 | nt.request.type.in.eval_mm_util" |
| 13dc0 | 29 3b 0a 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 | );..........}.....}......return. |
| 13de0 | 28 28 64 6f 75 62 6c 65 29 6d 61 78 5f 74 6f 74 61 6c 5f 73 69 7a 65 20 2f 20 28 64 6f 75 62 6c | ((double)max_total_size./.(doubl |
| 13e00 | 65 29 6d 65 6d 5f 68 65 61 70 73 69 7a 65 28 29 29 3b 0a 7d 0a 0a 0a 2f 2a 0a 20 2a 20 65 76 61 | e)mem_heapsize());.}.../*..*.eva |
| 13e20 | 6c 5f 6d 6d 5f 73 70 65 65 64 20 2d 20 54 68 69 73 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f | l_mm_speed.-.This.is.the.functio |
| 13e40 | 6e 20 74 68 61 74 20 69 73 20 75 73 65 64 20 62 79 20 66 63 79 63 28 29 0a 20 2a 20 20 20 20 74 | n.that.is.used.by.fcyc()..*....t |
| 13e60 | 6f 20 6d 65 61 73 75 72 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 69 6d 65 20 6f 66 20 74 68 | o.measure.the.running.time.of.th |
| 13e80 | 65 20 6d 6d 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 2e 0a 20 2a 2f 0a 73 74 61 74 69 63 20 | e.mm.malloc.package...*/.static. |
| 13ea0 | 76 6f 69 64 20 65 76 61 6c 5f 6d 6d 5f 73 70 65 65 64 28 76 6f 69 64 20 2a 70 74 72 29 0a 7b 0a | void.eval_mm_speed(void.*ptr).{. |
| 13ec0 | 20 20 20 20 69 6e 74 20 69 2c 20 69 6e 64 65 78 2c 20 73 69 7a 65 2c 20 6e 65 77 73 69 7a 65 3b | ....int.i,.index,.size,.newsize; |
| 13ee0 | 0a 20 20 20 20 63 68 61 72 20 2a 70 2c 20 2a 6e 65 77 70 2c 20 2a 6f 6c 64 70 2c 20 2a 62 6c 6f | .....char.*p,.*newp,.*oldp,.*blo |
| 13f00 | 63 6b 3b 0a 20 20 20 20 74 72 61 63 65 5f 74 20 2a 74 72 61 63 65 20 3d 20 28 28 73 70 65 65 64 | ck;.....trace_t.*trace.=.((speed |
| 13f20 | 5f 74 20 2a 29 70 74 72 29 2d 3e 74 72 61 63 65 3b 0a 0a 20 20 20 20 2f 2a 20 52 65 73 65 74 20 | _t.*)ptr)->trace;....../*.Reset. |
| 13f40 | 74 68 65 20 68 65 61 70 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6d 6d 20 70 | the.heap.and.initialize.the.mm.p |
| 13f60 | 61 63 6b 61 67 65 20 2a 2f 0a 20 20 20 20 6d 65 6d 5f 72 65 73 65 74 5f 62 72 6b 28 29 3b 0a 20 | ackage.*/.....mem_reset_brk();.. |
| 13f80 | 20 20 20 69 66 20 28 6d 6d 5f 69 6e 69 74 28 29 20 3c 20 30 29 20 0a 09 61 70 70 5f 65 72 72 6f | ...if.(mm_init().<.0)...app_erro |
| 13fa0 | 72 28 22 6d 6d 5f 69 6e 69 74 20 66 61 69 6c 65 64 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f 73 70 65 | r("mm_init.failed.in.eval_mm_spe |
| 13fc0 | 65 64 22 29 3b 0a 0a 20 20 20 20 2f 2a 20 49 6e 74 65 72 70 72 65 74 20 65 61 63 68 20 74 72 61 | ed");....../*.Interpret.each.tra |
| 13fe0 | 63 65 20 72 65 71 75 65 73 74 20 2a 2f 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 20 69 | ce.request.*/.....for.(i.=.0;..i |
| 14000 | 20 3c 20 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 3b 20 20 69 2b 2b 29 0a 20 20 20 20 20 20 20 | .<.trace->num_ops;..i++)........ |
| 14020 | 20 73 77 69 74 63 68 20 28 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 74 79 70 65 29 20 7b 0a 0a | .switch.(trace->ops[i].type).{.. |
| 14040 | 20 20 20 20 20 20 20 20 63 61 73 65 20 41 4c 4c 4f 43 3a 20 2f 2a 20 6d 6d 5f 6d 61 6c 6c 6f 63 | ........case.ALLOC:./*.mm_malloc |
| 14060 | 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f | .*/.............index.=.trace->o |
| 14080 | 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 69 7a 65 20 3d 20 | ps[i].index;.............size.=. |
| 140a0 | 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | trace->ops[i].size;............. |
| 140c0 | 69 66 20 28 28 70 20 3d 20 6d 6d 5f 6d 61 6c 6c 6f 63 28 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c | if.((p.=.mm_malloc(size)).==.NUL |
| 140e0 | 4c 29 0a 09 09 61 70 70 5f 65 72 72 6f 72 28 22 6d 6d 5f 6d 61 6c 6c 6f 63 20 65 72 72 6f 72 20 | L)...app_error("mm_malloc.error. |
| 14100 | 69 6e 20 65 76 61 6c 5f 6d 6d 5f 73 70 65 65 64 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | in.eval_mm_speed");............. |
| 14120 | 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 70 3b 0a 20 20 20 20 20 20 | trace->blocks[index].=.p;....... |
| 14140 | 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 63 61 73 65 20 52 45 41 4c 4c 4f 43 3a 20 2f 2a 20 | ......break;...case.REALLOC:./*. |
| 14160 | 6d 6d 5f 72 65 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 6e 64 65 78 20 3d 20 74 72 61 63 65 | mm_realloc.*/......index.=.trace |
| 14180 | 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 73 | ->ops[i].index;.............news |
| 141a0 | 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 09 20 20 20 20 6f | ize.=.trace->ops[i].size;......o |
| 141c0 | 6c 64 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 3b 0a 20 20 20 20 | ldp.=.trace->blocks[index];..... |
| 141e0 | 20 20 20 20 20 20 20 20 69 66 20 28 28 6e 65 77 70 20 3d 20 6d 6d 5f 72 65 61 6c 6c 6f 63 28 6f | ........if.((newp.=.mm_realloc(o |
| 14200 | 6c 64 70 2c 6e 65 77 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 09 61 70 70 5f 65 72 72 | ldp,newsize)).==.NULL)...app_err |
| 14220 | 6f 72 28 22 6d 6d 5f 72 65 61 6c 6c 6f 63 20 65 72 72 6f 72 20 69 6e 20 65 76 61 6c 5f 6d 6d 5f | or("mm_realloc.error.in.eval_mm_ |
| 14240 | 73 70 65 65 64 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 | speed");.............trace->bloc |
| 14260 | 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 6e 65 77 70 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | ks[index].=.newp;.............br |
| 14280 | 65 61 6b 3b 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 46 52 45 45 3a 20 2f 2a 20 6d 6d 5f 66 | eak;..........case.FREE:./*.mm_f |
| 142a0 | 72 65 65 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 20 3d 20 74 72 61 63 65 | ree.*/.............index.=.trace |
| 142c0 | 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 6c 6f 63 | ->ops[i].index;.............bloc |
| 142e0 | 6b 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 3b 0a 20 20 20 20 20 20 | k.=.trace->blocks[index];....... |
| 14300 | 20 20 20 20 20 20 6d 6d 5f 66 72 65 65 28 62 6c 6f 63 6b 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | ......mm_free(block);........... |
| 14320 | 20 20 62 72 65 61 6b 3b 0a 0a 09 64 65 66 61 75 6c 74 3a 0a 09 20 20 20 20 61 70 70 5f 65 72 72 | ..break;...default:......app_err |
| 14340 | 6f 72 28 22 4e 6f 6e 65 78 69 73 74 65 6e 74 20 72 65 71 75 65 73 74 20 74 79 70 65 20 69 6e 20 | or("Nonexistent.request.type.in. |
| 14360 | 65 76 61 6c 5f 6d 6d 5f 76 61 6c 69 64 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 7d 0a 0a 2f 2a | eval_mm_valid");.........}.}../* |
| 14380 | 0a 20 2a 20 65 76 61 6c 5f 6c 69 62 63 5f 76 61 6c 69 64 20 2d 20 57 65 20 72 75 6e 20 74 68 69 | ..*.eval_libc_valid.-.We.run.thi |
| 143a0 | 73 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 | s.function.to.make.sure.that.the |
| 143c0 | 0a 20 2a 20 20 20 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 63 61 6e 20 72 75 6e 20 74 6f 20 63 6f | ..*....libc.malloc.can.run.to.co |
| 143e0 | 6d 70 6c 65 74 69 6f 6e 20 6f 6e 20 74 68 65 20 73 65 74 20 6f 66 20 74 72 61 63 65 73 2e 0a 20 | mpletion.on.the.set.of.traces... |
| 14400 | 2a 20 20 20 20 57 65 27 6c 6c 20 62 65 20 63 6f 6e 73 65 72 76 61 74 69 76 65 20 61 6e 64 20 74 | *....We'll.be.conservative.and.t |
| 14420 | 65 72 6d 69 6e 61 74 65 20 69 66 20 61 6e 79 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 63 61 6c 6c | erminate.if.any.libc.malloc.call |
| 14440 | 20 66 61 69 6c 73 2e 0a 20 2a 0a 20 2a 2f 0a 73 74 61 74 69 63 20 69 6e 74 20 65 76 61 6c 5f 6c | .fails...*..*/.static.int.eval_l |
| 14460 | 69 62 63 5f 76 61 6c 69 64 28 74 72 61 63 65 5f 74 20 2a 74 72 61 63 65 2c 20 69 6e 74 20 74 72 | ibc_valid(trace_t.*trace,.int.tr |
| 14480 | 61 63 65 6e 75 6d 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 2c 20 6e 65 77 73 69 7a 65 3b 0a 20 20 | acenum).{.....int.i,.newsize;... |
| 144a0 | 20 20 63 68 61 72 20 2a 70 2c 20 2a 6e 65 77 70 2c 20 2a 6f 6c 64 70 3b 0a 0a 20 20 20 20 66 6f | ..char.*p,.*newp,.*oldp;......fo |
| 144c0 | 72 20 28 69 20 3d 20 30 3b 20 20 69 20 3c 20 74 72 61 63 65 2d 3e 6e 75 6d 5f 6f 70 73 3b 20 20 | r.(i.=.0;..i.<.trace->num_ops;.. |
| 144e0 | 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 74 72 61 63 65 2d 3e 6f 70 | i++).{.........switch.(trace->op |
| 14500 | 73 5b 69 5d 2e 74 79 70 65 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 41 4c 4c 4f 43 | s[i].type).{..........case.ALLOC |
| 14520 | 3a 20 2f 2a 20 6d 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 66 20 28 28 70 20 3d 20 6d 61 6c | :./*.malloc.*/......if.((p.=.mal |
| 14540 | 6c 6f 63 28 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c | loc(trace->ops[i].size)).==.NULL |
| 14560 | 29 20 7b 0a 09 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 69 2c 20 | ).{...malloc_error(tracenum,.i,. |
| 14580 | 22 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 66 61 69 6c 65 64 22 29 3b 0a 09 09 75 6e 69 78 5f 65 72 | "libc.malloc.failed");...unix_er |
| 145a0 | 72 6f 72 28 22 53 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 29 3b 0a 09 20 20 20 20 7d 0a 09 20 | ror("System.message");......}... |
| 145c0 | 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 | ...trace->blocks[trace->ops[i].i |
| 145e0 | 6e 64 65 78 5d 20 3d 20 70 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 63 61 73 65 20 52 45 | ndex].=.p;......break;...case.RE |
| 14600 | 41 4c 4c 4f 43 3a 20 2f 2a 20 72 65 61 6c 6c 6f 63 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 | ALLOC:./*.realloc.*/............ |
| 14620 | 20 6e 65 77 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 09 | .newsize.=.trace->ops[i].size;.. |
| 14640 | 20 20 20 20 6f 6c 64 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 74 72 61 63 65 2d 3e | ....oldp.=.trace->blocks[trace-> |
| 14660 | 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 5d 3b 0a 09 20 20 20 20 69 66 20 28 28 6e 65 77 70 20 3d 20 | ops[i].index];......if.((newp.=. |
| 14680 | 72 65 61 6c 6c 6f 63 28 6f 6c 64 70 2c 20 6e 65 77 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 | realloc(oldp,.newsize)).==.NULL) |
| 146a0 | 20 7b 0a 09 09 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 28 74 72 61 63 65 6e 75 6d 2c 20 69 2c 20 22 | .{...malloc_error(tracenum,.i,." |
| 146c0 | 6c 69 62 63 20 72 65 61 6c 6c 6f 63 20 66 61 69 6c 65 64 22 29 3b 0a 09 09 75 6e 69 78 5f 65 72 | libc.realloc.failed");...unix_er |
| 146e0 | 72 6f 72 28 22 53 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 29 3b 0a 09 20 20 20 20 7d 0a 09 20 | ror("System.message");......}... |
| 14700 | 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 | ...trace->blocks[trace->ops[i].i |
| 14720 | 6e 64 65 78 5d 20 3d 20 6e 65 77 70 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 20 20 20 20 0a | ndex].=.newp;......break;....... |
| 14740 | 20 20 20 20 20 20 20 20 63 61 73 65 20 46 52 45 45 3a 20 2f 2a 20 66 72 65 65 20 2a 2f 0a 09 20 | ........case.FREE:./*.free.*/... |
| 14760 | 20 20 20 66 72 65 65 28 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 74 72 61 63 65 2d 3e 6f 70 73 | ...free(trace->blocks[trace->ops |
| 14780 | 5b 69 5d 2e 69 6e 64 65 78 5d 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 64 65 66 61 75 | [i].index]);......break;...defau |
| 147a0 | 6c 74 3a 0a 09 20 20 20 20 61 70 70 5f 65 72 72 6f 72 28 22 69 6e 76 61 6c 69 64 20 6f 70 65 72 | lt:......app_error("invalid.oper |
| 147c0 | 61 74 69 6f 6e 20 74 79 70 65 20 20 69 6e 20 65 76 61 6c 5f 6c 69 62 63 5f 76 61 6c 69 64 22 29 | ation.type..in.eval_libc_valid") |
| 147e0 | 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 2f 2a 20 | ;..}.....}......return.1;.}../*. |
| 14800 | 0a 20 2a 20 65 76 61 6c 5f 6c 69 62 63 5f 73 70 65 65 64 20 2d 20 54 68 69 73 20 69 73 20 74 68 | ..*.eval_libc_speed.-.This.is.th |
| 14820 | 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 73 20 75 73 65 64 20 62 79 20 66 63 79 63 28 | e.function.that.is.used.by.fcyc( |
| 14840 | 29 20 74 6f 0a 20 2a 20 20 20 20 6d 65 61 73 75 72 65 20 74 68 65 20 72 75 6e 6e 69 6e 67 20 74 | ).to..*....measure.the.running.t |
| 14860 | 69 6d 65 20 6f 66 20 74 68 65 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 20 6f | ime.of.the.libc.malloc.package.o |
| 14880 | 6e 20 74 68 65 20 73 65 74 0a 20 2a 20 20 20 20 6f 66 20 74 72 61 63 65 73 2e 0a 20 2a 2f 0a 73 | n.the.set..*....of.traces...*/.s |
| 148a0 | 74 61 74 69 63 20 76 6f 69 64 20 65 76 61 6c 5f 6c 69 62 63 5f 73 70 65 65 64 28 76 6f 69 64 20 | tatic.void.eval_libc_speed(void. |
| 148c0 | 2a 70 74 72 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 69 6e 64 65 78 | *ptr).{.....int.i;.....int.index |
| 148e0 | 2c 20 73 69 7a 65 2c 20 6e 65 77 73 69 7a 65 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 2c 20 2a 6e | ,.size,.newsize;.....char.*p,.*n |
| 14900 | 65 77 70 2c 20 2a 6f 6c 64 70 2c 20 2a 62 6c 6f 63 6b 3b 0a 20 20 20 20 74 72 61 63 65 5f 74 20 | ewp,.*oldp,.*block;.....trace_t. |
| 14920 | 2a 74 72 61 63 65 20 3d 20 28 28 73 70 65 65 64 5f 74 20 2a 29 70 74 72 29 2d 3e 74 72 61 63 65 | *trace.=.((speed_t.*)ptr)->trace |
| 14940 | 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 20 69 20 3c 20 74 72 61 63 65 2d 3e 6e | ;......for.(i.=.0;..i.<.trace->n |
| 14960 | 75 6d 5f 6f 70 73 3b 20 20 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 | um_ops;..i++).{.........switch.( |
| 14980 | 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 63 61 | trace->ops[i].type).{.........ca |
| 149a0 | 73 65 20 41 4c 4c 4f 43 3a 20 2f 2a 20 6d 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 6e 64 65 | se.ALLOC:./*.malloc.*/......inde |
| 149c0 | 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 09 20 20 20 20 73 69 | x.=.trace->ops[i].index;......si |
| 149e0 | 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 09 20 20 20 20 69 66 | ze.=.trace->ops[i].size;......if |
| 14a00 | 20 28 28 70 20 3d 20 6d 61 6c 6c 6f 63 28 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 09 | .((p.=.malloc(size)).==.NULL)... |
| 14a20 | 75 6e 69 78 5f 65 72 72 6f 72 28 22 6d 61 6c 6c 6f 63 20 66 61 69 6c 65 64 20 69 6e 20 65 76 61 | unix_error("malloc.failed.in.eva |
| 14a40 | 6c 5f 6c 69 62 63 5f 73 70 65 65 64 22 29 3b 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 | l_libc_speed");......trace->bloc |
| 14a60 | 6b 73 5b 69 6e 64 65 78 5d 20 3d 20 70 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 0a 09 63 61 73 | ks[index].=.p;......break;...cas |
| 14a80 | 65 20 52 45 41 4c 4c 4f 43 3a 20 2f 2a 20 72 65 61 6c 6c 6f 63 20 2a 2f 0a 09 20 20 20 20 69 6e | e.REALLOC:./*.realloc.*/......in |
| 14aa0 | 64 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b 0a 09 20 20 20 20 | dex.=.trace->ops[i].index;...... |
| 14ac0 | 6e 65 77 73 69 7a 65 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 73 69 7a 65 3b 0a 09 20 | newsize.=.trace->ops[i].size;... |
| 14ae0 | 20 20 20 6f 6c 64 70 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 78 5d 3b 0a | ...oldp.=.trace->blocks[index];. |
| 14b00 | 09 20 20 20 20 69 66 20 28 28 6e 65 77 70 20 3d 20 72 65 61 6c 6c 6f 63 28 6f 6c 64 70 2c 20 6e | .....if.((newp.=.realloc(oldp,.n |
| 14b20 | 65 77 73 69 7a 65 29 29 20 3d 3d 20 4e 55 4c 4c 29 0a 09 09 75 6e 69 78 5f 65 72 72 6f 72 28 22 | ewsize)).==.NULL)...unix_error(" |
| 14b40 | 72 65 61 6c 6c 6f 63 20 66 61 69 6c 65 64 20 69 6e 20 65 76 61 6c 5f 6c 69 62 63 5f 73 70 65 65 | realloc.failed.in.eval_libc_spee |
| 14b60 | 64 5c 6e 22 29 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b | d\n");............trace->blocks[ |
| 14b80 | 69 6e 64 65 78 5d 20 3d 20 6e 65 77 70 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 20 20 20 20 | index].=.newp;......break;...... |
| 14ba0 | 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 46 52 45 45 3a 20 2f 2a 20 66 72 65 65 20 2a 2f 0a 09 | .........case.FREE:./*.free.*/.. |
| 14bc0 | 20 20 20 20 69 6e 64 65 78 20 3d 20 74 72 61 63 65 2d 3e 6f 70 73 5b 69 5d 2e 69 6e 64 65 78 3b | ....index.=.trace->ops[i].index; |
| 14be0 | 0a 09 20 20 20 20 62 6c 6f 63 6b 20 3d 20 74 72 61 63 65 2d 3e 62 6c 6f 63 6b 73 5b 69 6e 64 65 | ......block.=.trace->blocks[inde |
| 14c00 | 78 5d 3b 0a 09 20 20 20 20 66 72 65 65 28 62 6c 6f 63 6b 29 3b 0a 09 20 20 20 20 62 72 65 61 6b | x];......free(block);......break |
| 14c20 | 3b 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ;..}.....}.}../***************** |
| 14c40 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 20 53 6f 6d 65 20 6d 69 73 | ********************..*.Some.mis |
| 14c60 | 63 65 6c 6c 61 6e 65 6f 75 73 20 68 65 6c 70 65 72 20 72 6f 75 74 69 6e 65 73 0a 20 2a 2a 2a 2a | cellaneous.helper.routines..**** |
| 14c80 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
| 14ca0 | 2f 0a 0a 0a 2f 2a 0a 20 2a 20 70 72 69 6e 74 72 65 73 75 6c 74 73 20 2d 20 70 72 69 6e 74 73 20 | /.../*..*.printresults.-.prints. |
| 14cc0 | 61 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 73 75 6d 6d 61 72 79 20 66 6f 72 20 73 6f 6d 65 20 6d | a.performance.summary.for.some.m |
| 14ce0 | 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 0a 20 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 | alloc.package..*/.static.void.pr |
| 14d00 | 69 6e 74 72 65 73 75 6c 74 73 28 69 6e 74 20 6e 2c 20 73 74 61 74 73 5f 74 20 2a 73 74 61 74 73 | intresults(int.n,.stats_t.*stats |
| 14d20 | 29 20 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 73 20 | )..{.....int.i;.....double.secs. |
| 14d40 | 3d 20 30 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 6f 70 73 20 3d 20 30 3b 0a 20 20 20 20 64 6f 75 | =.0;.....double.ops.=.0;.....dou |
| 14d60 | 62 6c 65 20 75 74 69 6c 20 3d 20 30 3b 0a 0a 20 20 20 20 2f 2a 20 50 72 69 6e 74 20 74 68 65 20 | ble.util.=.0;....../*.Print.the. |
| 14d80 | 69 6e 64 69 76 69 64 75 61 6c 20 72 65 73 75 6c 74 73 20 66 6f 72 20 65 61 63 68 20 74 72 61 63 | individual.results.for.each.trac |
| 14da0 | 65 20 2a 2f 0a 20 20 20 20 70 72 69 6e 74 66 28 22 25 35 73 25 37 73 20 25 35 73 25 38 73 25 31 | e.*/.....printf("%5s%7s.%5s%8s%1 |
| 14dc0 | 30 73 25 36 73 5c 6e 22 2c 20 0a 09 20 20 20 22 74 72 61 63 65 22 2c 20 22 20 76 61 6c 69 64 22 | 0s%6s\n",......"trace",.".valid" |
| 14de0 | 2c 20 22 75 74 69 6c 22 2c 20 22 6f 70 73 22 2c 20 22 73 65 63 73 22 2c 20 22 4b 6f 70 73 22 29 | ,."util",."ops",."secs",."Kops") |
| 14e00 | 3b 0a 20 20 20 20 66 6f 72 20 28 69 3d 30 3b 20 69 20 3c 20 6e 3b 20 69 2b 2b 29 20 7b 0a 09 69 | ;.....for.(i=0;.i.<.n;.i++).{..i |
| 14e20 | 66 20 28 73 74 61 74 73 5b 69 5d 2e 76 61 6c 69 64 29 20 7b 0a 09 20 20 20 20 70 72 69 6e 74 66 | f.(stats[i].valid).{......printf |
| 14e40 | 28 22 25 32 64 25 31 30 73 25 35 2e 30 66 25 25 25 38 2e 30 66 25 31 30 2e 36 66 25 36 2e 30 66 | ("%2d%10s%5.0f%%%8.0f%10.6f%6.0f |
| 14e60 | 5c 6e 22 2c 20 0a 09 09 20 20 20 69 2c 0a 09 09 20 20 20 22 79 65 73 22 2c 0a 09 09 20 20 20 73 | \n",.......i,......"yes",......s |
| 14e80 | 74 61 74 73 5b 69 5d 2e 75 74 69 6c 2a 31 30 30 2e 30 2c 0a 09 09 20 20 20 73 74 61 74 73 5b 69 | tats[i].util*100.0,......stats[i |
| 14ea0 | 5d 2e 6f 70 73 2c 0a 09 09 20 20 20 73 74 61 74 73 5b 69 5d 2e 73 65 63 73 2c 0a 09 09 20 20 20 | ].ops,......stats[i].secs,...... |
| 14ec0 | 28 73 74 61 74 73 5b 69 5d 2e 6f 70 73 2f 31 65 33 29 2f 73 74 61 74 73 5b 69 5d 2e 73 65 63 73 | (stats[i].ops/1e3)/stats[i].secs |
| 14ee0 | 29 3b 0a 09 20 20 20 20 73 65 63 73 20 2b 3d 20 73 74 61 74 73 5b 69 5d 2e 73 65 63 73 3b 0a 09 | );......secs.+=.stats[i].secs;.. |
| 14f00 | 20 20 20 20 6f 70 73 20 2b 3d 20 73 74 61 74 73 5b 69 5d 2e 6f 70 73 3b 0a 09 20 20 20 20 75 74 | ....ops.+=.stats[i].ops;......ut |
| 14f20 | 69 6c 20 2b 3d 20 73 74 61 74 73 5b 69 5d 2e 75 74 69 6c 3b 0a 09 7d 0a 09 65 6c 73 65 20 7b 0a | il.+=.stats[i].util;..}..else.{. |
| 14f40 | 09 20 20 20 20 70 72 69 6e 74 66 28 22 25 32 64 25 31 30 73 25 36 73 25 38 73 25 31 30 73 25 36 | .....printf("%2d%10s%6s%8s%10s%6 |
| 14f60 | 73 5c 6e 22 2c 20 0a 09 09 20 20 20 69 2c 0a 09 09 20 20 20 22 6e 6f 22 2c 0a 09 09 20 20 20 22 | s\n",.......i,......"no",......" |
| 14f80 | 2d 22 2c 0a 09 09 20 20 20 22 2d 22 2c 0a 09 09 20 20 20 22 2d 22 2c 0a 09 09 20 20 20 22 2d 22 | -",......"-",......"-",......"-" |
| 14fa0 | 29 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 50 72 69 6e 74 20 74 68 65 20 61 67 | );..}.....}....../*.Print.the.ag |
| 14fc0 | 67 72 65 67 61 74 65 20 72 65 73 75 6c 74 73 20 66 6f 72 20 74 68 65 20 73 65 74 20 6f 66 20 74 | gregate.results.for.the.set.of.t |
| 14fe0 | 72 61 63 65 73 20 2a 2f 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 73 20 3d 3d 20 30 29 20 7b 0a | races.*/.....if.(errors.==.0).{. |
| 15000 | 09 70 72 69 6e 74 66 28 22 25 31 32 73 25 35 2e 30 66 25 25 25 38 2e 30 66 25 31 30 2e 36 66 25 | .printf("%12s%5.0f%%%8.0f%10.6f% |
| 15020 | 36 2e 30 66 5c 6e 22 2c 20 0a 09 20 20 20 20 20 20 20 22 54 6f 74 61 6c 20 20 20 20 20 20 20 22 | 6.0f\n",.........."Total......." |
| 15040 | 2c 0a 09 20 20 20 20 20 20 20 28 75 74 69 6c 2f 6e 29 2a 31 30 30 2e 30 2c 0a 09 20 20 20 20 20 | ,.........(util/n)*100.0,....... |
| 15060 | 20 20 6f 70 73 2c 20 0a 09 20 20 20 20 20 20 20 73 65 63 73 2c 0a 09 20 20 20 20 20 20 20 28 6f | ..ops,..........secs,.........(o |
| 15080 | 70 73 2f 31 65 33 29 2f 73 65 63 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 20 7b 0a | ps/1e3)/secs);.....}.....else.{. |
| 150a0 | 09 70 72 69 6e 74 66 28 22 25 31 32 73 25 36 73 25 38 73 25 31 30 73 25 36 73 5c 6e 22 2c 20 0a | .printf("%12s%6s%8s%10s%6s\n",.. |
| 150c0 | 09 20 20 20 20 20 20 20 22 54 6f 74 61 6c 20 20 20 20 20 20 20 22 2c 0a 09 20 20 20 20 20 20 20 | ........"Total.......",......... |
| 150e0 | 22 2d 22 2c 20 0a 09 20 20 20 20 20 20 20 22 2d 22 2c 20 0a 09 20 20 20 20 20 20 20 22 2d 22 2c | "-",.........."-",.........."-", |
| 15100 | 20 0a 09 20 20 20 20 20 20 20 22 2d 22 29 3b 0a 20 20 20 20 7d 0a 0a 7d 0a 0a 2f 2a 20 0a 20 2a | .........."-");.....}..}../*...* |
| 15120 | 20 61 70 70 5f 65 72 72 6f 72 20 2d 20 52 65 70 6f 72 74 20 61 6e 20 61 72 62 69 74 72 61 72 79 | .app_error.-.Report.an.arbitrary |
| 15140 | 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 65 72 72 6f 72 0a 20 2a 2f 0a 76 6f 69 64 20 61 70 70 5f | .application.error..*/.void.app_ |
| 15160 | 65 72 72 6f 72 28 63 68 61 72 20 2a 6d 73 67 29 20 0a 7b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 | error(char.*msg)..{.....printf(" |
| 15180 | 25 73 5c 6e 22 2c 20 6d 73 67 29 3b 0a 20 20 20 20 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 2f 2a 20 | %s\n",.msg);.....exit(1);.}../*. |
| 151a0 | 0a 20 2a 20 75 6e 69 78 5f 65 72 72 6f 72 20 2d 20 52 65 70 6f 72 74 20 61 20 55 6e 69 78 2d 73 | ..*.unix_error.-.Report.a.Unix-s |
| 151c0 | 74 79 6c 65 20 65 72 72 6f 72 0a 20 2a 2f 0a 76 6f 69 64 20 75 6e 69 78 5f 65 72 72 6f 72 28 63 | tyle.error..*/.void.unix_error(c |
| 151e0 | 68 61 72 20 2a 6d 73 67 29 20 0a 7b 0a 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 3a 20 25 73 5c | har.*msg)..{.....printf("%s:.%s\ |
| 15200 | 6e 22 2c 20 6d 73 67 2c 20 73 74 72 65 72 72 6f 72 28 65 72 72 6e 6f 29 29 3b 0a 20 20 20 20 65 | n",.msg,.strerror(errno));.....e |
| 15220 | 78 69 74 28 31 29 3b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 6d 61 6c 6c 6f 63 5f 65 72 72 6f 72 20 2d 20 | xit(1);.}../*..*.malloc_error.-. |
| 15240 | 52 65 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 | Report.an.error.returned.by.the. |
| 15260 | 6d 6d 5f 6d 61 6c 6c 6f 63 20 70 61 63 6b 61 67 65 0a 20 2a 2f 0a 76 6f 69 64 20 6d 61 6c 6c 6f | mm_malloc.package..*/.void.mallo |
| 15280 | 63 5f 65 72 72 6f 72 28 69 6e 74 20 74 72 61 63 65 6e 75 6d 2c 20 69 6e 74 20 6f 70 6e 75 6d 2c | c_error(int.tracenum,.int.opnum, |
| 152a0 | 20 63 68 61 72 20 2a 6d 73 67 29 0a 7b 0a 20 20 20 20 65 72 72 6f 72 73 2b 2b 3b 0a 20 20 20 20 | .char.*msg).{.....errors++;..... |
| 152c0 | 70 72 69 6e 74 66 28 22 45 52 52 4f 52 20 5b 74 72 61 63 65 20 25 64 2c 20 6c 69 6e 65 20 25 64 | printf("ERROR.[trace.%d,.line.%d |
| 152e0 | 5d 3a 20 25 73 5c 6e 22 2c 20 74 72 61 63 65 6e 75 6d 2c 20 4c 49 4e 45 4e 55 4d 28 6f 70 6e 75 | ]:.%s\n",.tracenum,.LINENUM(opnu |
| 15300 | 6d 29 2c 20 6d 73 67 29 3b 0a 7d 0a 0a 2f 2a 20 0a 20 2a 20 75 73 61 67 65 20 2d 20 45 78 70 6c | m),.msg);.}../*...*.usage.-.Expl |
| 15320 | 61 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 0a 20 | ain.the.command.line.arguments.. |
| 15340 | 2a 2f 0a 73 74 61 74 69 63 20 76 6f 69 64 20 75 73 61 67 65 28 76 6f 69 64 29 20 0a 7b 0a 20 20 | */.static.void.usage(void)..{... |
| 15360 | 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 55 73 61 67 65 3a 20 6d 64 72 69 76 65 | ..fprintf(stderr,."Usage:.mdrive |
| 15380 | 72 20 5b 2d 68 76 56 61 6c 5d 20 5b 2d 66 20 3c 66 69 6c 65 3e 5d 20 5b 2d 74 20 3c 64 69 72 3e | r.[-hvVal].[-f.<file>].[-t.<dir> |
| 153a0 | 5d 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4f 70 74 69 | ]\n");.....fprintf(stderr,."Opti |
| 153c0 | 6f 6e 73 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 74 | ons\n");.....fprintf(stderr,."\t |
| 153e0 | 2d 61 20 20 20 20 20 20 20 20 20 44 6f 6e 27 74 20 63 68 65 63 6b 20 74 68 65 20 74 65 61 6d 20 | -a.........Don't.check.the.team. |
| 15400 | 73 74 72 75 63 74 75 72 65 2e 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 | structure.\n");.....fprintf(stde |
| 15420 | 72 72 2c 20 22 5c 74 2d 66 20 3c 66 69 6c 65 3e 20 20 55 73 65 20 3c 66 69 6c 65 3e 20 61 73 20 | rr,."\t-f.<file>..Use.<file>.as. |
| 15440 | 74 68 65 20 74 72 61 63 65 20 66 69 6c 65 2e 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 | the.trace.file.\n");.....fprintf |
| 15460 | 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 67 20 20 20 20 20 20 20 20 20 47 65 6e 65 72 61 74 65 20 | (stderr,."\t-g.........Generate. |
| 15480 | 73 75 6d 6d 61 72 79 20 69 6e 66 6f 20 66 6f 72 20 61 75 74 6f 67 72 61 64 65 72 2e 5c 6e 22 29 | summary.info.for.autograder.\n") |
| 154a0 | 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 68 20 20 20 20 20 | ;.....fprintf(stderr,."\t-h..... |
| 154c0 | 20 20 20 20 50 72 69 6e 74 20 74 68 69 73 20 6d 65 73 73 61 67 65 2e 5c 6e 22 29 3b 0a 20 20 20 | ....Print.this.message.\n");.... |
| 154e0 | 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 6c 20 20 20 20 20 20 20 20 20 52 | .fprintf(stderr,."\t-l.........R |
| 15500 | 75 6e 20 6c 69 62 63 20 6d 61 6c 6c 6f 63 20 61 73 20 77 65 6c 6c 2e 5c 6e 22 29 3b 0a 20 20 20 | un.libc.malloc.as.well.\n");.... |
| 15520 | 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 74 20 3c 64 69 72 3e 20 20 20 44 | .fprintf(stderr,."\t-t.<dir>...D |
| 15540 | 69 72 65 63 74 6f 72 79 20 74 6f 20 66 69 6e 64 20 64 65 66 61 75 6c 74 20 74 72 61 63 65 73 2e | irectory.to.find.default.traces. |
| 15560 | 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 76 20 | \n");.....fprintf(stderr,."\t-v. |
| 15580 | 20 20 20 20 20 20 20 20 50 72 69 6e 74 20 70 65 72 2d 74 72 61 63 65 20 70 65 72 66 6f 72 6d 61 | ........Print.per-trace.performa |
| 155a0 | 6e 63 65 20 62 72 65 61 6b 64 6f 77 6e 73 2e 5c 6e 22 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 | nce.breakdowns.\n");.....fprintf |
| 155c0 | 28 73 74 64 65 72 72 2c 20 22 5c 74 2d 56 20 20 20 20 20 20 20 20 20 50 72 69 6e 74 20 61 64 64 | (stderr,."\t-V.........Print.add |
| 155e0 | 69 74 69 6f 6e 61 6c 20 64 65 62 75 67 20 69 6e 66 6f 2e 5c 6e 22 29 3b 0a 7d 0a 00 00 00 00 00 | itional.debug.info.\n");.}...... |
| 15600 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 73 68 6f 72 74 31 2d 62 61 6c 2e 72 65 70 | malloclab-handout/short1-bal.rep |
| 15620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 15680 | 30 30 30 30 31 33 31 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 36 30 30 31 00 20 30 00 00 00 | 0000131.12507032412.016001..0... |
| 156a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 156c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 156e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15700 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 15720 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 15740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 157a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 157c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 157e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15800 | 32 30 30 30 30 0a 36 0a 31 32 0a 31 0a 61 20 30 20 32 30 34 30 0a 61 20 31 20 32 30 34 30 0a 66 | 20000.6.12.1.a.0.2040.a.1.2040.f |
| 15820 | 20 31 0a 61 20 32 20 34 38 0a 61 20 33 20 34 30 37 32 0a 66 20 33 0a 61 20 34 20 34 30 37 32 0a | .1.a.2.48.a.3.4072.f.3.a.4.4072. |
| 15840 | 66 20 30 0a 66 20 32 0a 61 20 35 20 34 30 37 32 0a 66 20 34 0a 66 20 35 0a 00 00 00 00 00 00 00 | f.0.f.2.a.5.4072.f.4.f.5........ |
| 15860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 158a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 158c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 158e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 159a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 159c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 159e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15a00 | 6d 61 6c 6c 6f 63 6c 61 62 2d 68 61 6e 64 6f 75 74 2f 73 68 6f 72 74 32 2d 62 61 6c 2e 72 65 70 | malloclab-handout/short2-bal.rep |
| 15a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15a60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 36 36 32 36 00 30 30 30 30 31 34 34 00 30 30 30 30 | ....0000644.0006626.0000144.0000 |
| 15a80 | 30 30 30 30 31 33 31 00 31 32 35 30 37 30 33 32 34 31 32 00 30 31 36 30 30 32 00 20 30 00 00 00 | 0000131.12507032412.016002..0... |
| 15aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15b00 | 00 75 73 74 61 72 20 20 00 64 72 6f 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...droh................... |
| 15b20 | 00 00 00 00 00 00 00 00 00 75 73 65 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........users.................. |
| 15b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15c00 | 32 30 30 30 30 0a 36 0a 31 32 0a 31 0a 61 20 30 20 32 30 34 30 0a 61 20 31 20 34 30 31 30 0a 61 | 20000.6.12.1.a.0.2040.a.1.4010.a |
| 15c20 | 20 32 20 34 38 0a 61 20 33 20 34 30 37 32 0a 61 20 34 20 34 30 37 32 0a 61 20 35 20 34 30 37 32 | .2.48.a.3.4072.a.4.4072.a.5.4072 |
| 15c40 | 0a 66 20 30 0a 66 20 31 0a 66 20 32 0a 66 20 33 0a 66 20 34 0a 66 20 35 0a 00 00 00 00 00 00 00 | .f.0.f.1.f.2.f.3.f.4.f.5........ |
| 15c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 160a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 160c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 160e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 161a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 161c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 161e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 162a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 162c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 162e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 163a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 163c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 163e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 164a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 164c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 164e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 165a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 165c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 165e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 166a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 166c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 166e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 167a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 167c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 167e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |