./project/CasioA/Makefile
./project/LaserGame/Makefile
./project/ShortRel/Makefile
+./project/TraceFS/Makefile
])
echo done.
PortDiag \
CasioA \
LaserGame \
- ShortRel
+ ShortRel \
+ TraceFS
EXTRA_DIST+= \
Index.html.pl \
--- /dev/null
+#! /usr/bin/perl
+#
+# $Id$
+# Main page of 'My::Project::TraceFS'
+# Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; exactly version 2 of June 1991 is required
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+package project::TraceFS::Index;
+require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
+our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
+our $CVS_ID=q$Id$;
+use strict;
+use warnings;
+
+BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
+use My::Web;
+use My::Project;
+use project::TraceFS::ListItem;
+
+
+My::Project->init_project(
+ "__PACKAGE__"=>__PACKAGE__,
+ "ListItem"=>\@project::TraceFS::ListItem::ListItem,
+ );
+
+print '<table border="0"><tr><td align="center">'
+ .My::Web::img($W->{"top_dir"}."/project/captive/doc/ntdebug-windbg-boot","TraceFS Initialization")
+ .'</td></tr></table>'."\n";
+
+print '<table border="0"><tr><td align="center">'
+ .My::Web::img($W->{"top_dir"}."/project/captive/doc/dia/TraceFS","TraceFS Hooking")
+ .'</td></tr></table>'."\n";
+
+My::Web->footer();
--- /dev/null
+#! /usr/bin/perl
+#
+# $Id$
+# Definition of 'My::Project::TraceFS' for list.cgi.pl
+# Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; exactly version 2 of June 1991 is required
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+package project::TraceFS::ListItem;
+require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway
+our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
+our $CVS_ID=q$Id$;
+use strict;
+use warnings;
+
+use My::Web;
+
+
+our @ListItem=(
+ "name"=>"Trace Filesystem",
+ "priority"=>4,
+ "cvs"=>"priv/captive/src/TraceFS",
+ "link-Documentation"=>$W->{"top_dir"}."/project/captive/doc/CacheManager.html.pl#TraceFS",
+ "summary"=>"Microsoft Windows Kernel API Tracer",
+ "license"=>"GPL",
+ "maintenance"=>"ready",
+ "language"=>"C",
+ "description"=><<"HERE",
+<p>Project allows wrapping of Microsoft Windows Kernel API calls by the chosen
+kernel driver.</p>
+<p>Although TraceFS was up to now used only for tracing of Windows NT Cache
+Manager it can be easily used ever for any other NT kernel API tracing. You
+need to provide appropriate function wrappers in the main source file.
+Framework for thread synchronizations and debug tracing is provided to prevent
+mangling of messages while running by multiple threads at once.</p>
+HERE
+ );
+
+1;
--- /dev/null
+# $Id$
+# automake source for the Makefile of project/TraceFS/ subdir
+# Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; exactly version 2 of June 1991 is required
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+include $(top_srcdir)/Makefile-head.am
+
+EXTRA_DIST+= \
+ ListItem.pm \
+ Index.html.pl
<span class="productname">NT Cache Manager</span> it can be easily
used ever for any other NT kernel API tracing. You need to provide
appropriate function wrappers in the main source file
- @{[ captive_srcfile './src/TraceFS/TraceFS-W32/TraceFS.c' ]}
- and you must also export them in
+ @{[ captive_srcfile './src/TraceFS/TraceFS-W32/TraceFS.c' ]}.
+ Original system functions being wrapped should be called with their
+ original name. Your wrapping functions should have the first letter
+ of their name replaced by character
+ <span class="command">'T'</span> - wrapping of
+ <span class="function">CcInitializeCacheMap()</span> must be
+ done be your function
+ <span class="function">TcInitializeCacheMap()</span>.
+ Prototypes of both the wrapping and wrapped functions must be the same.
+ You must also export all the wrapped functions by
@{[ captive_srcfile './src/TraceFS/TraceFS-W32/TraceFS.def' ]}.
@{[ captive_srcfile './src/TraceFS/hookfs.pl' ]} has no hardcoded
function names – it will hook exactly the exported entries.</p>