2007-10-01  Michael Meeks  <michael.meeks@novell.com>

	* Version 0.0.1

	* Makefile.am, fsview.cs -> FSViewMain.cs - to avoid
	case-sensitivity dependence.

	* disksim-3.0/valid/Makefile.am: bin Makefile.old from
	EXTRA_DIST.

2007-09-24  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs: handle empty <blks></blks> nodes for
	directories.

	* FSView.cs: fix crash with no overview.

	* Makefile.am: build blockdump.

	* blockdump.c (dump_item): fix segv on !blocks.
	(read_link): null *blocks, output unknown iblk as "" not "?"

2007-09-24  Jan Kara  <jack@suse.cz>

	* blockdump.c: add new generic file-system dumping goodness
	using ioctls to get block bitmap data.

2007-09-14  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs (OnExposeEvent): fix selection
	bounds calcuation issue.

	* Main.cs (iogrind): default to 'simple.parv' -
	better, more accurate etc.

	* FSView.cs: use the right allocation for zooming.

2007-09-13  Michael Meeks  <michael.meeks@novell.com>

	* configure.ac: check for gtk-sharp-2.0 (which we use)
	instead (thanks Lubos).

	* doc/disksim.txt: split notes/moans out into here.

	* FSView.cs, Simulator.cs: add 'Sequence' SimBlk events
	to show eg. opens that would otherwise disappear due to
	readahead effects etc. - helps make the trace more
	comprehensible.

	* disksim-3.0/src/interface.c: make debug conditional
	on DISKSIM_DEBUG.

	* DiskSim.cs (Wait): wait until all callbacks
	completed rather than I/O reported done: most
	odd, this gives (apparently) better results than
	queueing overlapping(?) reads.

	* DiskModel.cs (TestRequest),
	* Main.cs (DoReadTest): add --readtest to help
	validate DiskSim models.

	* ext2subset.cs, FSData.cs: remove unnecessary child
	copying - smaller & less broken result.

2007-09-12  Michael Meeks  <michael.meeks@novell.com>

	* configure.ac: add fsview helper wrapper etc.

	* Makefile.am, fsview.cs: add to allow simple
	file-system viewing.

2007-09-11  Michael Meeks  <michael.meeks@novell.com>

	* Makefile.am (DISKSIMLIBDIR): fix path to .libs/

	* disksim-3.0/*/Makefile.am: switch to LTLIBRARIES
	to avoid -fPIC problems on x86_64.

	* disksim-3.0/libparam/bitvector.h,
	* disksim-3.0/libddbg/libddbg.h: include string.h to
	hush undeclared memcpy warnings.

	* disksim-3.0/libddbg/ddbg_assert.c (ddbg_assert_fail),
	(ddbg_assert_msg): constipate to reduce warning load.

2007-09-11  Radek Doulik  <rodo@novell.com>

	* configure.in, disksim-3.0/*: autotool-ize.

2007-09-07  Radek Doulik  <rodo@novell.com>

	* disksim-3.0/libparam/util.c (lp_add_param): fix
	broken bzero breaking 64bit builds.

2007-09-07  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/valid/simple.parv:
	Bulk sector transfer time - discover & remove the snake in
	the grass.

	* *.cs: bin obsolete & incorrect 'TimeSpan' code.

	* Utils.cs (PrettyTime): improve.

	* disksim-3.0/valid/simple.parv: add more surfaces to get
	the required capacity, rather than (apparently) blowing up
	things by increasing cylinder count or blocks-per-track.

	* disksim-3.0/src/modules/logorg.modspec: allow
	Strip unit to be 0, as specified in the docs.

	* disksim-3.0/valid/simple.parv: reduce Segment size to
	avoid extraordinary read oddness.

	* disksim-3.0/src/interface.c
	(idisksim_get_blk_count): init blks to 0, count simple
	disk blocks too.

	* disksim-3.0/valid/simple.parv: more tweaking.
	reduce Bulk sector transfer time, reduce Rotation speed
	to 5400RPM (laptop disk).

	* Utils.cs (PrettyTime): don't switch to truncated
	seconds so soon.

	* FSView.cs: add time 'delta' column.

	* README: add environment notes for hackers.

	* Main.cs: switch to 'mindless.parv' for now, it works.

2007-09-06  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/valid/mindless.parv: add very simple,
	misleading original disk model as backup.

	* test/openSUSE-Beta2.xml.gz: add.

	* disksim-3.0/valid/simple.parv: cut fat.

	* disksim-3.0/src/disksim_loadparams.c (disksim_loadparams):
	initialize deviceinfo here, rather than in the stats load,
	conditional 'Stats' lookup.

	* disksim-3.0/src/disksim_stat.c (stat_update, stat_initialize),
	(stat_reset): don't setup and print statistics if there is no
	associated file.

	* disksim-3.0/src/modules/global.modspec: make
	"Stat definition file" optional.

2007-09-03  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs (MoveToBlock, TreeSelectionChange): show
	the selection as you extend it, if part is not visible.

	* FSView.cs (ClipToScreen, RenderScribble): fix cairo 
	(rounding related?) nasties, urgh.

	* FSView.cs: start of ScribbleView.

	* TraceData.cs: move Stack onto 'Process' - to handle
	multiple thread stacks properly.

	* TraceData.cs (Pop): warn if more frames get popped than
	pushed (uh?)

	* FSView.cs (OnExposeEvent): render overall selection
	boundary on overview.

	* PageCache.cs (BIO): expand io chunks to 64k units,
	radically alters profiles.

2007-08-30  Michael Meeks  <michael.meeks@novell.com>

	* GUtils.cs (BackTraceView): impl.
	
	* GUtils.cs (MouseOverHelper): impl.
	* AddrView.cs: start to use it.

	* disksim-3.0/valid/simple.parv: add - really simple model.
	* Main.cs: default to it.

	* disksim-3.0/src/interface.c (get_blk_count),
	* DiskSim.cs (CheckMaxSector),
	* Simulator.cs (Simulator): ensure our disk is >=
	size of our fsmodel.

2007-08-22  Michael Meeks  <michael.meeks@novell.com>

	* TraceData.cs: BlockRw: lengths are not hex [!]

	* FSView.cs: implement click-to-select in the drawing area,
	add a label with some file details.

	* GUtils.cs (AddButton): split to here.

	* FSData.cs: accelerate & simplify MaxBlock accounting to
	share with the directory & validate accounting.

	* FSView.cs: re-work rendering entirely, bin the
	dodgy scrolled window, simplify various calculations,
	code cleanups etc. Nudge scrolling now works.

2007-08-21  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs: render the selection (if < 10% of the
	file-system span) on the overview.

	* tests/*: refresh from OpenSUSE Beta1.

2007-08-21  Michael Meeks  <michael.meeks@novell.com>
	
	* FSModel.cs, Simulator.cs, TraceData.cs:
	update MapEvent parsing & simulation to account for
	offset: FIXME - still requires work for fixing
	overlapping maps.
	
	* ext2dump.c (blocks_as_string): un-break the
	collation of adjacent blocks, we were missing the
	ends of short runs.

	* ext2dump.c (main): parse arguments more sanely &
	add help. (subtree_filter_fn): re-work so that we can
	filter paths & extract single directories or elements
	and their parents.

	* FSData.cs (File.GetPath): fix root handling.

	* FSModel.cs, Simulator.cs, TraceData.cs: add 'Seek:'
	parsing & simulation, as well as ReadDEnts.

2007-08-14  Michael Meeks  <michael.meeks@novell.com>

	* doc/kernel.txt: add notes.

2007-08-13  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs (FSRenderer.ClearBackground): fix, only
	re-render the bit we care about.
	(MoveToSelection): make it move to the data-blocks,
	not the inode (usually miles away).

	* *.cs: s/CairoHelper/Gdk.CairoHelper/: to not trample
	on (newer) Pango.CairoHelper: thanks to Chris Mason.

2007-08-10  Michael Meeks  <michael.meeks@novell.com>

	* tests/gentests.pl: re-write from .sh - and improve.

2007-08-09  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs, FSView.cs (Block.IsINode -> IsIndirect):
	more accurate naming.

	* Back to good behavior.

2007-08-08  Michael Meeks  <michael.meeks@novell.com>

	* FSModel.cs (MMapRead): avoid a double page-size scaling
	ruining all mmap accounting.

	* Simulator.cs (SimMap): initialize & lookup 'File' via
	the FSModel - should really do this from a handle instead
	but ...

2007-08-08  Michael Meeks  <michael.meeks@novell.com>

	* FSModel.cs: re-implement mmap bits

	* Simulator.cs (simulatePageTouch): get real mmap offset.

2007-08-08  Michael Meeks  <michael.meeks@novell.com>

	* DiskSim.cs (DiskSim): setup the sector size.
	* DiskModel.cs, Simulator.cs: rationalize sector sizing etc.

	* disksim-3.0/src/interface.c: switch to per
	sector/block accounting and add (idisksim_get_blk_size).

	* MainWindow.cs: whack FS-view at end again.x

	* FSMode.cs: impl. stat.

	* FSModel.cs: start to model file / block mappings &
	real read/write bits.

2007-08-07  Michael Meeks  <michael.meeks@novell.com>

	* tests/openSUSE-Alpha7.xml.gz: sample file-system.

	* tests/gentests.sh: helper script to generate some
	test output.

	* tests: dung out, move tiny tests into tests/addrview

	* GUtils.cs, Utils.cs, Makefile.am: split out GUI utils.

2007-08-07  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs: restore 'special' files correctly, get
	root size right.

	* ext2subset.in, configure.ac: add wrapper.

	* tests/smallext2.xml.gz, Makefile.am: compress, upd.

	* FSData.cs: use gzip compression for filesystem traces.

2007-08-07  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs (File, Symlink): fix non-reading of Target
	for link with indirect block. (ReadBlocks): fix inode
	mis-identification silly.
	(WriteFile): fix xml generation. ext2subset should
	work now - modulo 'special' files.

	* ext2subset.cs: Implement path walking & copying fun.

	* FSPath.cs: split out path resolution.

2007-08-06  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs: make File & sub-classes copy-able, start
	doing

	* ext2subset.cs, Makefile.am: add 1st cut at fs sub-setter.

	* FSData.cs (FSData, CopyFrom, WriteFile): impl.

	* FSModel.cs (FSModel.Open): calm down warnings.

	* FSData.cs (File.GetPath): impl. canonical 'true'
	path fetch.

	* Simulator.cs (SimProcess): look up filename from
	handle.

2007-08-03  Michael Meeks  <michael.meeks@novell.com>

	* doc/notes.txt, README: cleanup a bit
	* doc/oldnotes.txt: add for less structured bits.

	* Simulator.cs (SimulationData.CalcTime): catch badly
	behaved events.

	* DiskModel.cs (IORequest): don't set EndTime to -1
	until we dispatch the I/O request.

2007-08-03  Michael Meeks  <michael.meeks@novell.com>

	* TraceData.cs: parse 'thread:' and 'cwd:'

	* FSModel.cs (FSModel.Chdir): impl.

	* tests/gedit-ws.prf: update to new format.

	* FSModel.cs (FSModel): upd. path traversal, binning
	inode checks.

	* FSData.cs (Directory): ignore 'special' files.
	(File): extract 'Size' information.
	(Directory.Lookup): hard-code . & ..

	* Tag: BEFORE_NEW_FD_SYNTAX

	* ext2dump.c (dump_dir_ent): don't dump '.' and '..'
	entries: just noise.
	(dump_item): dump size attribute, for seek-end etc.
	(dump_dir_ent): EXT2_FT_ types are not a bit-mask.

2007-08-03  Michael Meeks  <michael.meeks@novell.com>

	* DiskSim.cs: calm down debug: finally, we have disk
	simulation ! [ though not on 64bit ... ].

	* Simulator.cs (CurrentTimeAsDouble): add bits here
	to get the precision disksim needs (should we shift fixed
	point in times ? or switch to double everywhere?).

	* DiskSim.cs: fix misc handle related issues.

	* FSModel.cs: tweaks to make block numbers sane.

	* Makefile.am: re-switch to stamp-disksim.

	* Main.cs: use --disksim arg.

	* Simulator.cs: pass profile argument.

	* DiskSim.cs: make the beasty compile.

2007-08-03  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs (RenderFile): color block spans, so we
	can see the order of blocks in a file.

	* DiskSim.cs: disable for now.

	* DiskModel.cs (TestTakeTime): axe, problematic.

	* doc/notes.txt: add bits for Federico.

2007-08-02  Michael Meeks  <michael.meeks@novell.com>

	* DiskModel.cs: re-factor in preparation for a DiskSim
	model

2007-08-02  Michael Meeks  <michael.meeks@novell.com>

	* DiskSim.cs, disksim-3.0/src/interface.c
	(idisksim_request_new): switch API to unsigned int blkno.

	* Makefile.am: install disksim data into path, set the
	path for test, demo etc.

	* iogrind.in: set DISKSIM_PATH in wrapper.

	* disksim-3.0/libparam/util.c (lp_fopen): fix
	to use 'fname' arg. not global lp_filename (doh)

	* disksim-3.0/diskmodel/Makefile (clean):
	rm *.d too.

	* Makefile (stamp-disksim): rename to this to
	help completion.

2007-08-02  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/diskmodel/Makefile,
	* disksim-3.0/libparam/Makefile,
	* disksim-3.0/libddbg/Makefile,
	* disksim-3.0/.paths: add & used DISKSIM_CFLAGS
	(-fPIC) for x86_64.

	* disksim-3.0/src/Makefile, fix deps.

	* autogen.sh: libtoolize earlier.

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/src/modules/global.modspec,
	* disksim-3.0/diskmodel/mech_g1_load.c,
	* disksim-3.0/src/disksim_loadparams.c,
	* disksim-3.0/libparam/libparam.lex,
	* disksim-3.0/src/raw_layout.c: use lp_fopen.

	* disksim-3.0/libparam/util.c (lp_fopen): impl.
	helper to look harder for disk models.

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/src/interface.[ch]: working interface.

	* disksim-3.0/src/checklib.c: trivial test code.

	* disksim-3.0/src/interface.c: implement; still
	crashing.

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* DiskSim.cs: add initial DiskSim library wrapper,
	even appears to work 1st time [!] ...

	* Makefile.am: add disksimtest

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* Makefile.am: build disksim, and only once.

	* configure.ac: check for gmcs & mono, build:
	* iogrind.in: wrapper script.

	* configure.ac, Makefile.am: correctly detect
	ext2fs-devel presence, and don't build ext2dump
	if not present.

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* autogen.sh, configure.ac, NEWS, AUTHORS: add.

	* Makefile -> Makefile.am: rename.

	* start of auto-tool fun.

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* disksim-3.0/src/checklib.c: link helper.

	* disksim-3.0/src/interface.[ch]: start of a more
	sane interface.

	* disksim-3.0/src/Makefile: create 'libdisksim.so'

2007-08-01  Michael Meeks  <michael.meeks@novell.com>

	* Tag: DISKSIM_3_0_CLEANED

	* disksim-3.0/: add .git-ignore files & cleanup.

	* disksim-3.0: apply "build on modern Linux" patch.

	* Tag: DISKSIM_3_0_BASE

	* disksim-3.0/IOGRIND-README: explain what crud we
	removed to shrink it to 3Mb from 16.

	* disksim-3.0: commit up-stream disksim.

2007-07-31  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs (FSRender.DrawSpan): render filenames in
	blocks.

	* FSView.cs: render selection, and fix adjustment / view
	following.

	* FSView.cs (FSRender.RenderFile): prune render space
	based on clip region - huge speed win for the main view.

	* FSData.cs (File.MinMaxCalc, File.AccumulMinMax),
	(Directory.AccumulMinMax, Directory): store block bounds
	for directories.

2007-07-31  Michael Meeks  <michael.meeks@novell.com>
	
	* FSView.cs (Recalc): correct borders.
	(FSOverview.UpdateViewPos, FSView.MoveToSelection),
	(FSView.ScrolledVertically): move the window to make the
	1st selection visible & show the visible area as a blue
	alpha cursor on the overview.

	* FSView.cs (TreeIdleRowExpand): impl. async tree
	building: makes it load quickly finally.

	* FSView.cs (RenderStack): impl. async rendering.

	* FSView.cs (FSView): render the main pane with the
	FSRenderer too.

	* FSView.cs (FSColorModel): rationalise colors.

2007-07-31  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs: render FSOverview widget nicely.
	
	* FSData.cs (ReadBlocks): get MaxBlock accounting right.

	* FSView.cs: add FSOverview widget.

	* Tag: BEFORE_FSVIEW_SIMPLIFY

	* MainWindow.cs: delay instantiation of notebook contents
	until selected to avoid FSView treeview population performance
	issues.

	* FSView.cs: improve coloring & add selection.

	* FSView.cs: add a tree-view for the filesystem

2007-07-30  Michael Meeks  <michael.meeks@novell.com>

	* FSView.cs: color each file the same color as it's parent
	directory; data still looks meaningless though.

2007-07-27  Michael Meeks  <michael.meeks@novell.com>

	* FSModel.cs (LookupName): hack around bug resolving '.' and
	'..' - these guys have only an 'inode' ptr, and no blocks in
	the XML dump.

	* FSView.cs: beef up clipping - faster, rendering only what
	needs rendering; still too slow though.

	* FSView.cs (SetupClipping): start of clipping to accelerate.

	* FSView.cs: Implement a block-level view of the filesystem

	* MainWindow.cs: hook it in.

2007-07-27  Michael Meeks  <michael.meeks@novell.com>

	* Makefile: switch to using a filesystem dump for
	'make test', and add a 'make demo' rule & document it 
	in README. Fix dependencies to avoid re-building when
	unnecessary.

	* FSModel.cs (FSModel): implement LookupName and FollowLink,
	adding inode / directory read costs. Call LookupName in 'Open'

2007-07-26  Michael Meeks  <michael.meeks@novell.com>

	* README: update.

	* Simulator.cs (SetDefunct, Defunct): fix silly breaking
	time calculation.

	* FSModel.cs: re-work to use the diskmodel and events.

	* Simulator.cs: push new timing model through.

2007-07-26  Michael Meeks  <michael.meeks@novell.com>

	* Simulator.cs: get 1st async. processed event split
	out, and working the 'test' event ;-)

	* DiskModel.cs (Wait, TestTakeTime): impl.

	* tests/remap.prf, tests/twomaps.prf, tests/minimal.prf,
	* tests/overlap.prf: add minimal 'fn' tags.

	* Simulator.cs: split most of the logic out into
	'SimProcess', add threading goodness to allow simpler
	synchronous code to be written to model latency even
	with many processes.

	* TraceData.cs: move all inner classes into 'Trace'
	namespace to save naming hassle.

	* TraceData.cs: re-factor, adding TraceProcess.

2007-07-25  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs (ReadBlocks): optimise, was ~20% of parse
	time here. (Directory): sensible default for List size.

2007-07-24  Michael Meeks  <michael.meeks@novell.com>

	* Utils.cs (ReadHex): accelerate - bin a ton of allocation,
	and implement this ourself to avoid the '0x' prefix substring.

	* FSData.cs: add StatusFileStream, add threaded loading and
	progess bar while model is being loaded (if it's big enough).

	* FSModel.cs: get an FSData model, move link / name lookup
	here.

	* FSData.cs: use an 'FS' namespace instead of nested classes.

	* FSData.cs (Block): create
	(File::ReadBlocks): impl.
	(FSData::MaxBlock): pass fsd around & account for max block.

2007-07-20  Michael Meeks  <michael.meeks@novell.com>

	* FSData.cs: 1st attempt at pull parsing filesystem
	layout data.

	* Utils.cs (ReadHex): move it here.

	* Main.cs: parse --fsmodel= and create an FSData
	object.

	* ext2dump.c (block_account_func, blocks_as_string): 
	record inode blocks as negative block numbers & dump
	them as we go.

	* tests/nautilus.prf: add.

	* Makefile, ext2dump.c: rename to this.

2007-07-19  Michael Meeks  <michael.meeks@novell.com>

	* ext2fs.c (block_account_func): don't double count
	inode indirection blocks (etc.)

	* tests/smallext2.fs: grow a little & add long & short symlinks.

	* ext2fs.c: Major re-work of filesystem
	dumping / output, read symlinks etc.
	
	* tests/smallext2.fs: add test image
	* tests/smallext2.xml: add test image dump

	* ext2fs.c: dump all the block ids ...

	* AddrView.cs: Render the working set: urgh ... more thought needed.

	* TraceData.cs: parse working set data.

	* tests/gedit-ws.prf: first trace with working set data.

2007-07-18  Michael Meeks  <michael.meeks@novell.com>

	* ext2fs.c: dump file and directory data image of a disk as XML.

2007-07-17  Federico Mena Quintero  <federico@novell.com>

	* Histogram.cs (Histogram.Histogram): Add EventMask.PointerMotionMask.
	(Histogram.DrawAreaMotionNotifyEventCallback): Prelight the node
	under the pointer.
	(Histogram.Prelight): New utility function.
	(HistogramRenderer.HistogramRenderer): Keep track of the
	prelighted rectangle.
	(HistogramRenderer.VisitRegion): Also draw the rectangle in black
	if it is prelighted.

2007-07-17  Federico Mena Quintero  <federico@novell.com>

	* BaseView.cs (BaseView.OnSizeAllocated): Make the treeview 1/4 of
	our width.

	* AddrView.cs (SimulatorView.DrawMaps): Make the font size bigger
	for the demo.
	(SimulatorView.DrawAreaRealizedCallback): Don't draw the visible

2007-07-17  Federico Mena Quintero  <federico@novell.com>

	* AddrView.cs (SimulatorView.DrawMaps): Make the font size bigger
	for the demo.
	(SimulatorView.DrawAreaRealizedCallback): Don't draw the visible
	content buffer here...
	(SimulatorView.DrawAreaMappedCallback): ... but do it here
	instead.  We need the window to be mapped to be able to create the
	pixmap.

	* Layout.cs (Layout.SetupEventPalette): Use solid black for the
	events so they show up nice and contrasty in the demo's projector.

2007-07-16  Michael Meeks  <michael.meeks@novell.com>

	* ext2fs.c: initial wrapper of io class.

	* BaseView.cs (VBox): expand root by default.

	* ext2fs.c (dump_dir): dump the root directory of an image.

	* Makefile, ext2fs.c: start of ext2fs dumping API.

2007-07-12  Michael Meeks  <michael.meeks@novell.com>

	* BaseView.cs (GotoNode): set the label to the current item:
	needs polish / a new display accessor for 'Node' (or implementing)
	in a sub-class. (BaseView) - don't try to make labels bold with
	pango attributes: grizly crash.

	* Histogram.cs: switch border back to 2, for more chunky
	look & easier selection. Propagate 'HistogramSettings' throug
	the code.
	(ShrinkBorder): don't allow border subtraction to create negative
	areas & break rendering badly.

2007-07-11  Federico Mena Quintero  <federico@novell.com>

	* Histogram.cs (HistogramRenderer.CreatePangoLayout): Binding for
	pango_cairo_create_layout().
	(HistogramRenderer.ShowPangoLayout): Binding for
	pango_cairo_show_layout().
	(HistogramRenderer.DrawTextFit): Use pangocairo.

2007-07-11  Federico Mena Quintero  <federico@novell.com>

	* Histogram.cs (HistogramLayout.Partition): Round to the nearest
	integer coordinate so we don't have subpixel rectangles.
	(HistogramLayout.ShrinkBorder): Shrink by 1 units, not 3 (1 unit
	for the top/left bevel, 1 unit for the bottom/right bevel).
	(HistogramRenderer.VisitRegion): Draw the bevels in a cleaner way.

	* Utils.cs (Utils.SpreadColor): Simplify; use just RGB vales and
	don't convert to HSV in the middle.

2007-07-11  Michael Meeks  <michael.meeks@novell.com>

	* Simulator.cs (Simulator::simulateIOEvent): emit read,
	readahead, write, stat etc. events.
	* TraceData.cs: parse those events too.
	* FSModel.cs: stub read/stat events etc.

	* FileView.cs (FileColorModel::GetColor): calm down debug.

	* Simulator.cs (FindFile): normalize names - removing '//' etc.
	* Utils.cs (PathNormaliz): via this.

2007-07-10  Federico Mena Quintero  <federico@novell.com>

	* BaseView.cs (BaseView.nameColumn):  Make this a member; it was
	just a local variable in InitTreeView().
	(BaseView.ExpandToPath): Ensure that the actual cell renderer for
	the name is visible; this helps with very deep traces whose
	function names get pushed too far to the right.

	* TraceData.cs (Stack.Frame.DisplayName): New property getter;
	returns a name suitable for display in the treeview.
	"/foo/bar/baz/lib/libfoo.so:func_name" gets a display name of
	"func_name - libfoo.so" for legibility.

	* StackView.cs (StackNode.TreeElemName): Use frame.Detail.DisplayName
	instead of the plain Name.

2007-07-10  Michael Meeks  <michael.meeks@novell.com>

	* Simulator.cs (simulateIOEvent): start of explicit IO simulation.

	* FSModel.cs (FSModel): add FSModel ...

	* Simulator.cs, *.cs: yet more re-factoring - split out a
	'SimFile' from SimMap and operate on that: now we can start
	simulating explicit File I/O too...

	* *.cs: rename TraceData.MemEvent -> MapEvent to make it more
	comprehensible & consistent.
	Rename SimMapEvent -> SimMap: not really an event, update all
	call sites / clean member names.

	* Simulator.cs: major re-factor to improve consistency.

	* Histogram.cs (DrawTextFit): really centre the strings.

	* TraceData.cs: re-vamp parsing, adding quoting, parse more
	valgrind events.
	(TraceData): intern filenames.

	* TraceData.cs (LineParser): impl

	* Makefile (crash): rename test.* to scratch.*

2007-07-09  Michael Meeks  <michael.meeks@novell.com>

	* BaseView.cs (BaseView::OnRowActivated, OnCursorChanged):
	implement matching selection & double-click to zoom.

2007-07-07  Michael Meeks  <michael.meeks@novell.com>

	* BaseView.cs (RowSelected): allow selection in the TreeView
	to update the selection.
	* Histogram.cs (Node::IsAncestor, CommonParent): ergonomics.

	* TraceData.cs (TraceData): add "MI:" event parsing back.

	* test.cs: add bug report sample.

	* Histogram.cs (Node::NonEmptyParent): implement to
	make going 'Up' pleasant.

	* BaseView.cs: add navigation up/back/forward.

	* AddrView.cs, MainWindow.cs: clean warnings up.

	* *.cs: cleanup event connection delegate construction syntax.

2007-07-06  Michael Meeks  <michael.meeks@novell.com>

	* Histogram.cs (ButtonPressEventCallback, Select): split
	zoom functionality out into parent in
	* BaseView.cs (HistSelectionEvent): here.

	* Histogram.cs (ConstructSample): bin, obsolete.
	(HistogramLayout::LayoutItem): - elide 0 weight items,
	to avoid distorting the result.

	* Histogram.cs (DrawTextFit): only render a label if it fits.
	add a 'ShortLabel' variant & implement it.

	* BaseView.cs (AddToTree): cleanup tree-view node
	  naming.

	* Makefile: clean ups.

	* tests/ls-stack.prf: update ls.prf instead,
	* tests/gedit.prf: add rudimentary stack information.

	* doc/notes.txt: add notes on e2image bits.

2007-07-05  Michael Meeks  <michael.meeks@novell.com>

	* StackView.cs: first cut at a per-function breakdown.

	* BaseView.cs: factor shared bits out from
	* FileView.cs: here.

	* Simulator.cs (FindFrame, AccumulateFrame): start
	accumulating data by stack frames.

	* TraceData.cs: read stack frames & build stack tree...
	(TraceData): associate stack frame data with each event.

2007-05-29  Michael Meeks  <michael.meeks@novell.com>

	* FileView.cs, Histogram.cs: re-factor color bits out to
	own interface, and color based on file type.

2007-05-15  Michael Meeks  <michael.meeks@novell.com>

	* Histogram.cs: allow border selections.

	* Histogram.cs: only re-draw selection, on selection or
	partial expose to accelerate, increase region border size,

	* FileView.cs: render file access as a tree.

2007-05-14  Michael Meeks  <michael.meeks@novell.com>

	* tests/ls.prf: add more detail to chew on later.

	* FileView.cs: add time vs. space visualisation.

2007-05-14  Michael Meeks  <michael.meeks@novell.com>

	* FileView.cs: create.

	* AddrView.cs: remove histogram hack.

	* MainWindow.cs: chop out of Main.cs, create several tabs.

2007-05-12  Michael Meeks  <michael.meeks@novell.com>

	* Histogram.cs: use an IHistNode interface.

2007-05-11  Michael Meeks  <michael.meeks@novell.com>

	* Utils.cs (Palette): chop this out to share.

	* View.cs, Histogram.cs: update palette bits.

2007-05-10  Michael Meeks  <michael.meeks@novell.com>

	* Histogram.cs (HistogramRenderer::VisitRegion): render selection.

	* Histogram.cs (HistogramLayout): split the layout out into this.
	(HistogramRenderer): sub-class to do the drawing
	(HistogramHitTest): sub-class to do hit testing.
	(Histogram): re-work & beautfiy, add selection bits.

	* Histogram.cs (DrawChildren): fix uber-silly.
	(HistogramWindow): switch this to a DrawingArea in a window

	* View.cs: remove various hacks.

	* Histogram.cs: start of stack trace histogram code.

2007-05-09  Federico Mena Quintero  <federico@novell.com>

	Use an offscreen pixmap to hold the rendered data; this makes the
	cursor fast (and subsequent exposes as well).

	* View.cs (SimulatorView.visibleContent): New pixmap field, used
	to keep a rendered version of the visible area.  This decouples
	cursor drawing from content drawing.
	(SimulatorView.SetEmptyCursor): New helper function; moved the
	code from DrawAreaRealizedCallback() to here.
	(SimulatorView.DrawAreaRealizedCallback): Use SetEmptyCursor().
	Create the visibleContent pixmap.
	(SimulatorView.RenderVisibleContent): Replacement for
	DrawAreaExposeEventCallback().  This is where we actually render the
	visible contents into the visibleContent pixmap.
	(SimulatorView.DrawAreaExposeEventCallback): Draw from the
	visibleContent pixmap, and draw the cursor separately.
	(SimulatorView.FillClippedRectangle): Do not take in a clip
	region now that we draw to an offscreen pixmap; simply clip to it.
	(SimulatorView.DrawMaps): Do not take in an event; we don't clip
	to a region anymore.
	(SimulatorView.DrawEvents): Likewise.

2007-05-09  Michael Meeks  <michael.meeks@novell.com>

	* tests/ls.prf: start of I/O events.

	* Main.cs (printData): print avg. I/O B/W etc.

	* Utils.cs (PrettyBytes, PrettyBW): impl.

2007-05-09  Michael Meeks  <michael.meeks@novell.com>

	* View.cs (MouseoverEventCallback): re-instate.
	(SetStatusPosition): update & beautify.

	* Layout.cs (GetMapAt): fix.
	(PosSpan::ToString) - add helper

2007-05-09  Michael Meeks  <michael.meeks@novell.com>

	* *.cs: expunged all '_'s - still need incremental
	fixing of public member names to be Pascal named.

	* *.cs: substantial re-work to comply with naming
	conventions

	* README: links to naming bits.

2007-05-09  Michael Meeks  <michael.meeks@novell.com>

	* merge Federico's changes & commit.

2007-05-05  Michael Meeks  <michael.meeks@novell.com>

	* commit.

2007-05-04  Michael Meeks  <michael.meeks@novell.com>

	* AddrLayout.cs: sort by percentage used.

	* Main.cs (printData): add sort.

	* Utils.cs (CompareDoubles): add.

2007-05-03  Federico Mena Quintero  <federico@novell.com>

	Make drawing faster (especially the cursor!) by using more precise
	clipping regions when drawing.

	* View.cs (SimulatorView.fill_clipped_rectangle): Take a
	Gdk.Region instead of a Gdk.Rectangle for the clip area.  This
	lets us use a fine-grained EventExpose.Region instead of a fat
	bounding box.
	(SimulatorView.draw_maps): Pass the ev.Region to fill_clipped_rectangle().
	(SimulatorView.draw_events): Likewise.

2007-05-03  Federico Mena Quintero  <federico@novell.com>

	* View.cs (ViewScrollable.OnSetScrollAdjustments): Placeholder
	method to make GtkScrolledWindow think we are scrollable.
	(SimulatorView.cursor_x, cursor_y, cursor_active): New fields to
	maintain the cursor position.
	(SimulatorView.create_draw_area): Connect to EnterNotifyEvent and
	LeaveNotifyEvent to maintain a cursor_active flag.
	(SimulatorView.draw_area_enter_notify_event_cb): New callback.
	(SimulatorView.draw_area_leave_notify_event_cb): New callback.
	(SimulatorView.draw_area_motion_event_cb): Update the cursor
	position.
	(SimulatorView.draw_area_expose_event_cb): Draw the cursor.
	(SimulatorView.update_scrollbar_values): Don't print the
	adjustment values anymore.
	(SimulatorView.drwa_area_realized_cb): Set the mouse cursor to an
	empty image.  Wow, we need to make the drawing faster!
	(SimulatorView.draw_text_centered): Removed.
	(ViewScrollable.ViewScrollable): Add EnterNotifyMask and
	LeaveNotifyMask to the event mask.

2007-05-03  Michael Meeks  <michael.meeks@novell.com>

	* View.cs: add view_as_bands & check button to toggle

	* Layout.cs: add banded view setting

	* AddrLayout.cs: add BandLayout

2007-05-02  Federico Mena Quintero  <federico@novell.com>

	* Layout.cs (Layout.Layout): Take in a LayoutSettings structure,
	which contains only the current zoom factors for now.
	(Layout.layout_maps): Store coordinates in the "maps" array scaled
	to the zoom factor, and maintain the view ranges.
	(Layout.layout_events): Likewise.
	(Layout.address_range): Renamed from Layout.address.
	(Layout.time_range): Renamed from Layout.time.
	(Layout.view_address_range, Layout.view_time_range): New field to
	store the size of the scaled view (i.e. roughly (address_range,
	time_range) * zoom_factors).
	(Layout.setup_map_palette): Use just 20 colors within the hue
	spectrum, instead of num_maps colors.  This makes bars easier to
	distinguish.

	* View.cs (ViewScrollable.ViewScrollable): Add ScrollMask to the
	event mask to pick up events from the scroll wheel.
	(SimulatorView): Removed the "transform" and "inverse_transform" fields.
	(SimulatorView.SetScale): Renamed from Scale().  Create the layout
	here using the new scale factor, update the scrollbars, and queue
	a redraw of the draw_area (not a resize).  Also, take "anchor"
	parameters to keep the view centered on the zoom point.
	(SimulatorView.updating_scrollbars): New flag.
	(SimulatorView.update_scrollbar_values): New method.
	(SimulatorView.SimulatorView): Don't create the layout here; wait
	until we get a size allocation.
	(SimulatorView.create_fit_widget): Subtract the
	xthickness/ythickness from the final dimensions so that we fit
	exactly within the allocated area.
	(SimulatorView.draw_area_size_allocated_cb): Likewise.  Also, keep
	the zoom mode when the window size changes.
	(SimulatorView.draw_area_expose_event_cb): Use helper functions to
	draw the maps/events.
	(SimulatorView.Rect): Utility struct to do intersection of
	rectangles with long coordinates.
	(SimulatorView.fill_clipped_rectangle): New helper function; draws
	a rectangle clipped to a certain area.
	(SimulatorView.draw_maps): New helper function; moved the code
	over from draw_area_expose_event_cb().
	(SimulatorView.draw_events): New helper function; moved the code
	over from draw_area_expose_event_cb().
	(SimulatorView.create_vm_widgets): Change the zoom-button
	callbacks to take the current zoom factor into account.
	(SimulatorView.create_tm_widgets): Likewise.
	(SimulatorView.VM_ZOOM_MULTIPLIER,
	SimulatorView.TM_ZOOM_MULTIPLIER): Use a more reasonable value to
	avoid "losing your place".

2007-05-03  Michael Meeks  <michael.meeks@novell.com>

	* Simulator.cs, Main.cs: accumulate per-map accounts of
	time consumed, and print in --console mode.

	* DiskModel.cs: fix silly wrt. contiguous block access.

	* View.cs: add pop-down timeout.

	* Add status bar, and tracking of position, start of
	  mouse-over popups for events.

2007-05-02  Michael Meeks  <michael.meeks@novell.com>

	* Main.cs: move from View.cs, add console & multi-file mode.
	  handle quitting properly when windows closed.

	* tests/README: document

	* tests/ls.prf: add.
	
	* tests/gedit.prf: update.

	* notes.txt: add notes.
	* tests/*.prf: corner case, constructed test cases.

2007-05-01  Federico Mena Quintero  <federico@novell.com>

	* *.cs: Added an Emacs header to set the tab width.

2007-05-02  Michael Meeks  <michael.meeks@novell.com>

	* Layout.cs: move to AddrLayout.cs
	* View.cs: move Layout -> Layout.cs, clean etc.

2007-05-02  Michael Meeks  <michael.meeks@novell.com>

	* re-attempt merge.

2007-05-01  Michael Meeks  <michael.meeks@novell.com>

	* Merge genericfoo to HEAD.

2007-04-30  Michael Meeks  <michael.meeks@novell.com>

	* import bits

