Re: DazukoFS for FreeBSD 4

John Ogness <[email protected]>
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
Hi Patrick,

OK, I have now added enough to the CVS code that you can play around 
with DazukoFS on FreeBSD 4 if you like. Here is the step-by-step.

*NOTE*: DazukoFS is in a very early development stage! Although this 
information is meant to satisfy Patrick's hunger, anyone is welcome to 
play around with it. Just please be aware that both the Dazuko and FiST 
projects have been "slapped together" as a first step for integration.


1. Get the latest CVS version of Dazuko:

$ env CVS_RSH="ssh" cvs -z3 \
-d:ext:[email protected]:/cvsroot/dazuko \
co dazuko

(Note: the diff file I provided assumes that the Dazuko source is in 
/tmp/dazuko)


2.  Configure for FiST support, build, and insert:

$ cd dazuko
$ ./configure --enable-fist
$ make
$ kldload ./dazuko.ko


3. Get the latest copy of fistgen from filesystems.org:

$ wget ftp://ftp.filesystems.org/pub/fistgen/fistgen-0.1.1.tar.gz


4. Extract and set up DazukoFS

$ tar xzvf fistgen-0.1.1.tar.gz
$ cd fistgen-0.1.1
$ ./configure
$ make
$ ./fistgen dazukofs.fist

(Note: dazukofs.fist is attached to this email)


5. Patch the generated DazukoFS source code:

$ cd out/FreeBSD-4.10-STABLE/dazukofs
$ patch -p0 < patch-fist-dazuko-freebsd.diff

(Note: patch-fist-dazuko-freebsd.diff is attached to this email)


6. Build and insert dazukofs.ko:

$ make
$ kldload ./dazukofs.ko


7. Create a couple dummy directories for experimenting:

$ mkdir /tmp/dazukomnt
$ mkdir /tmp/dazukomnt.real


8. Mount the directories:

# ./mount_dazukofs -t dazukofs /tmp/dazukomnt.real /tmp/dazukomnt


9. Start the Dazuko example program:

# cd /tmp/dazuko/example_c
# make
# ./example /tmp/dazukomnt


Now you can play in the /tmp/dazukomnt directory and the ON_OPEN events 
should be displayed by the running example program. Currently *only* 
ON_OPEN vnode ops are being hooked.

When you are finished, make sure you remove everything in reverse order:

# umount /tmp/dazukomnt
# kldunload dazukofs
# kldunload dazuko

I hope this helps you out. Please remember that this is in *VERY* early 
development stages! I am looking forward to feedback.

John Ogness

-- 
Dazuko Maintainer

_______________________________________________
Dazuko-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dazuko-devel
patch-fist-dazuko-freebsd.diff (text/plain, 1.1 KB)
--- Makefile	Tue Sep  7 22:32:28 2004
+++ ../dazukofs.good/Makefile	Tue Sep  7 21:40:04 2004
@@ -4,7 +4,7 @@
 OPT_DBG=-Werror -Wno-unused
 OPT_DEF=-D_KERNEL -DKLD_MODULE -DFISTGEN
 OPT_INC=-I. -I$(SYS_SRC)
-CFLAGS=$(OPT_DEBUG) $(OPT_DEF) $(OPT_DBG) $(OPT_INC)
+CFLAGS=$(OPT_DEBUG) $(OPT_DEF) $(OPT_DBG) $(OPT_INC) -I/tmp/dazuko
 UCFLAGS=$(OPT_DEBUG) -DFISTGEN $(OPT_INC)
 
 SYS_SRC=/sys
--- vnode.c	Tue Sep  7 22:32:28 2004
+++ ../dazukofs.good/vnode.c	Tue Sep  7 22:25:06 2004
@@ -221,6 +221,9 @@
 #include <dazukofs.h>
 #endif
 
+#include "dazuko_platform.h"
+#include "dazuko_events.h"
+
 static int dazukofs_bug_bypass = 0;   /* for debugging: enables bypass printf'ing */
 SYSCTL_INT(_debug, OID_AUTO, dazukofs_bug_bypass, CTLFLAG_RW, &dazukofs_bug_bypass, 0, "");
 
@@ -338,7 +341,13 @@
    * with the modified argument structure.
    */
   if (vps_p[0] && *vps_p[0])
+  {
+
+if(descp->vdesc_offset == VOFFSET(vop_open)
+	fist_dazuko_sys_generic(DAZUKO_ON_OPEN, curproc, *(vps_p[0]), 1);
+
     error = VCALL(*(vps_p[0]), descp->vdesc_offset, ap);
+  }
   else {
     printf("dazukofs_bypass: no map for %s\n", descp->vdesc_name);
     error = EINVAL;
dazukofs.fist (text/plain, 128 B)
mntstyle overlay;
debug off;
%%
%%
/* no extra routines are needed */


/*
 * Local variables:
 * c-basic-offset: 4
 * End:
 */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.