Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Move the Delectable Test File System from share/examples/puf...
details: https://anonhg.NetBSD.org/src/rev/ce1331edd7a8
branches: trunk
changeset: 756085:ce1331edd7a8
user: pooka <pooka%NetBSD.org@localhost>
date: Tue Jul 06 14:16:44 2010 +0000
description:
Move the Delectable Test File System from share/examples/puffs/dtfs
to tests/fs/puffs/h_dtfs.
No functional change (apart from adjusting the Makefile for test builds).
diffstat:
share/examples/puffs/dtfs/Makefile | 12 -
share/examples/puffs/dtfs/README | 3 +
share/examples/puffs/dtfs/dtfs.c | 254 ---------------
share/examples/puffs/dtfs/dtfs.h | 125 -------
share/examples/puffs/dtfs/dtfs_subr.c | 340 ---------------------
share/examples/puffs/dtfs/dtfs_vfsops.c | 297 ------------------
share/examples/puffs/dtfs/dtfs_vnops.c | 518 --------------------------------
tests/fs/puffs/h_dtfs/Makefile | 11 +
tests/fs/puffs/h_dtfs/dtfs.c | 254 +++++++++++++++
tests/fs/puffs/h_dtfs/dtfs.h | 125 +++++++
tests/fs/puffs/h_dtfs/dtfs_subr.c | 340 +++++++++++++++++++++
tests/fs/puffs/h_dtfs/dtfs_vfsops.c | 297 ++++++++++++++++++
tests/fs/puffs/h_dtfs/dtfs_vnops.c | 518 ++++++++++++++++++++++++++++++++
13 files changed, 1548 insertions(+), 1546 deletions(-)
diffs (truncated from 3146 to 300 lines):
diff -r 64635becfacb -r ce1331edd7a8 share/examples/puffs/dtfs/Makefile
--- a/share/examples/puffs/dtfs/Makefile Tue Jul 06 14:10:26 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-# $NetBSD: Makefile,v 1.1 2006/10/23 00:44:53 pooka Exp $
-
-PROG= dtfs
-SRCS= dtfs.c dtfs_vfsops.c dtfs_vnops.c dtfs_subr.c
-LDADD+= -lpuffs -lutil
-DBG=-g -O0
-
-WARNS=2
-
-NOMAN= has gone before
-
-.include <bsd.prog.mk>
diff -r 64635becfacb -r ce1331edd7a8 share/examples/puffs/dtfs/README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/examples/puffs/dtfs/README Tue Jul 06 14:16:44 2010 +0000
@@ -0,0 +1,3 @@
+ $NetBSD: README,v 1.1 2010/07/06 14:16:45 pooka Exp $
+
+dtfs moved to src/tests/fs/puffs/h_dtfs
diff -r 64635becfacb -r ce1331edd7a8 share/examples/puffs/dtfs/dtfs.c
--- a/share/examples/puffs/dtfs/dtfs.c Tue Jul 06 14:10:26 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-/* $NetBSD: dtfs.c,v 1.42 2010/07/06 13:56:40 pooka Exp $ */
-
-/*
- * Copyright (c) 2006 Antti Kantee. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * Delectable Test File System: a simple in-memory file system which
- * demonstrates the use of puffs.
- * (a.k.a. Detrempe FS ...)
- */
-
-#include <sys/types.h>
-
-#include <err.h>
-#include <mntopts.h>
-#include <paths.h>
-#include <puffs.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "dtfs.h"
-
-#ifdef DEEP_ROOTED_CLUE
-#define FSNAME "detrempe"
-#else
-#define FSNAME "dt"
-#endif
-#define MAXREQMAGIC -37
-
-static struct puffs_usermount *gpu;
-static struct dtfs_mount gdtm;
-int dynamicfh;
-int straightflush;
-
-static void usage(void);
-
-static void
-usage()
-{
-
- fprintf(stderr, "usage: %s [-bsdftl] [-c hashbuckets] [-m maxreqsize] "
- "[-n typename]\n [-o mntopt] [-o puffsopt] [-p prot] "
- "[-r rootnodetype]\n detrempe /mountpoint\n", getprogname());
- exit(1);
-}
-
-static void
-wipe_the_sleep_out_of_my_eyes(int v)
-{
-
- gdtm.dtm_needwakeup++;
-}
-
-static void
-loopfun(struct puffs_usermount *pu)
-{
- struct dtfs_mount *dtm = puffs_getspecific(pu);
- struct dtfs_poll *dp;
-
- while (dtm->dtm_needwakeup) {
- dtm->dtm_needwakeup--;
- dp = LIST_FIRST(&dtm->dtm_pollent);
- if (dp == NULL)
- return;
-
- LIST_REMOVE(dp, dp_entries);
- puffs_cc_continue(dp->dp_pcc);
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- extern char *optarg;
- extern int optind;
- struct puffs_usermount *pu;
- struct puffs_pathobj *po_root;
- struct puffs_ops *pops;
- struct timespec ts;
- const char *typename;
- char *rtstr;
- mntoptparse_t mp;
- int pflags, detach, mntflags;
- int ch;
- int khashbuckets;
- int maxreqsize;
-
- setprogname(argv[0]);
-
- rtstr = NULL;
- detach = 1;
- mntflags = 0;
- khashbuckets = 256;
- pflags = PUFFS_KFLAG_IAONDEMAND;
- typename = FSNAME;
- maxreqsize = MAXREQMAGIC;
- gdtm.dtm_allowprot = VM_PROT_ALL;
- while ((ch = getopt(argc, argv, "bc:dfilm:n:o:p:r:st")) != -1) {
- switch (ch) {
- case 'b': /* build paths, for debugging the feature */
- pflags |= PUFFS_FLAG_BUILDPATH;
- break;
- case 'c':
- khashbuckets = atoi(optarg);
- break;
- case 'd':
- dynamicfh = 1;
- break;
- case 'f':
- pflags |= PUFFS_KFLAG_LOOKUP_FULLPNBUF;
- break;
- case 'i':
- pflags &= ~PUFFS_KFLAG_IAONDEMAND;
- break;
- case 'l':
- straightflush = 1;
- break;
- case 'm':
- maxreqsize = atoi(optarg);
- break;
- case 'n':
- typename = optarg;
- break;
- case 'o':
- mp = getmntopts(optarg, puffsmopts, &mntflags, &pflags);
- if (mp == NULL)
- err(1, "getmntopts");
- freemntopts(mp);
- break;
- case 'p':
- gdtm.dtm_allowprot = atoi(optarg);
- if ((gdtm.dtm_allowprot | VM_PROT_ALL) != VM_PROT_ALL)
- usage();
- break;
- case 'r':
- rtstr = optarg;
- break;
- case 's': /* stay on top */
- detach = 0;
- break;
- case 't':
- pflags |= PUFFS_KFLAG_WTCACHE;
- break;
- default:
- usage();
- /*NOTREACHED*/
- }
- }
- if (pflags & PUFFS_FLAG_OPDUMP)
- detach = 0;
- argc -= optind;
- argv += optind;
-
- if (argc != 2)
- usage();
-
- PUFFSOP_INIT(pops);
-
- PUFFSOP_SET(pops, dtfs, fs, statvfs);
- PUFFSOP_SET(pops, dtfs, fs, unmount);
- PUFFSOP_SETFSNOP(pops, sync);
- PUFFSOP_SET(pops, dtfs, fs, fhtonode);
- PUFFSOP_SET(pops, dtfs, fs, nodetofh);
-
- PUFFSOP_SET(pops, dtfs, node, lookup);
- PUFFSOP_SET(pops, dtfs, node, access);
- PUFFSOP_SET(pops, puffs_genfs, node, getattr);
- PUFFSOP_SET(pops, dtfs, node, setattr);
- PUFFSOP_SET(pops, dtfs, node, create);
- PUFFSOP_SET(pops, dtfs, node, remove);
- PUFFSOP_SET(pops, dtfs, node, readdir);
- PUFFSOP_SET(pops, dtfs, node, poll);
- PUFFSOP_SET(pops, dtfs, node, mmap);
- PUFFSOP_SET(pops, dtfs, node, mkdir);
- PUFFSOP_SET(pops, dtfs, node, rmdir);
- PUFFSOP_SET(pops, dtfs, node, rename);
- PUFFSOP_SET(pops, dtfs, node, read);
- PUFFSOP_SET(pops, dtfs, node, write);
- PUFFSOP_SET(pops, dtfs, node, link);
- PUFFSOP_SET(pops, dtfs, node, symlink);
- PUFFSOP_SET(pops, dtfs, node, readlink);
- PUFFSOP_SET(pops, dtfs, node, mknod);
- PUFFSOP_SET(pops, dtfs, node, inactive);
- PUFFSOP_SET(pops, dtfs, node, reclaim);
-
- srandom(time(NULL)); /* for random generation numbers */
-
- pu = puffs_init(pops, _PATH_PUFFS, typename, &gdtm, pflags);
- if (pu == NULL)
- err(1, "init");
- gpu = pu;
-
- puffs_setfhsize(pu, sizeof(struct dtfs_fid),
- PUFFS_FHFLAG_NFSV2 | PUFFS_FHFLAG_NFSV3
- | (dynamicfh ? PUFFS_FHFLAG_DYNAMIC : 0));
- puffs_setncookiehash(pu, khashbuckets);
-
- if (signal(SIGALRM, wipe_the_sleep_out_of_my_eyes) == SIG_ERR)
- warn("cannot set alarm sighandler");
-
- /* init */
- if (dtfs_domount(pu, rtstr) != 0)
- errx(1, "dtfs_domount failed");
-
- po_root = puffs_getrootpathobj(pu);
- po_root->po_path = argv[0];
- po_root->po_len = strlen(argv[0]);
-
- /* often enough for testing poll */
- ts.tv_sec = 1;
- ts.tv_nsec = 0;
- puffs_ml_setloopfn(pu, loopfun);
- puffs_ml_settimeout(pu, &ts);
-
- if (maxreqsize != MAXREQMAGIC)
- puffs_setmaxreqlen(pu, maxreqsize);
-
- puffs_set_errnotify(pu, puffs_kernerr_abort);
- if (detach)
- if (puffs_daemon(pu, 1, 1) == -1)
- err(1, "puffs_daemon");
-
- if (puffs_mount(pu, argv[1], mntflags, puffs_getroot(pu)) == -1)
- err(1, "mount");
- if (puffs_mainloop(pu) == -1)
- err(1, "mainloop");
-
- return 0;
-}
diff -r 64635becfacb -r ce1331edd7a8 share/examples/puffs/dtfs/dtfs.h
--- a/share/examples/puffs/dtfs/dtfs.h Tue Jul 06 14:10:26 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/* $NetBSD: dtfs.h,v 1.21 2007/09/27 12:03:31 pooka Exp $ */
-
-/*
- * Copyright (c) 2006 Antti Kantee. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
Home |
Main Index |
Thread Index |
Old Index