summaryrefslogtreecommitdiffstats
path: root/sys/cfs/cfs_fbsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cfs/cfs_fbsd.c')
-rw-r--r--sys/cfs/cfs_fbsd.c205
1 files changed, 0 insertions, 205 deletions
diff --git a/sys/cfs/cfs_fbsd.c b/sys/cfs/cfs_fbsd.c
deleted file mode 100644
index 4c49386..0000000
--- a/sys/cfs/cfs_fbsd.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- *
- * Coda: an Experimental Distributed File System
- * Release 3.1
- *
- * Copyright (c) 1987-1998 Carnegie Mellon University
- * All Rights Reserved
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation, and
- * that credit is given to Carnegie Mellon University in all documents
- * and publicity pertaining to direct or indirect use of this code or its
- * derivatives.
- *
- * CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
- * SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
- * FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
- * DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
- * RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
- * ANY DERIVATIVE WORK.
- *
- * Carnegie Mellon encourages users of this software to return any
- * improvements or extensions that they make, and to grant Carnegie
- * Mellon the rights to redistribute these changes without encumbrance.
- *
- * @(#) src/sys/cfs/cfs_fbsd.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $
- * $Id: cfs_fbsd.c,v 1.2 1998/09/02 19:09:53 rvb Exp $
- *
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/proc.h>
-#include <sys/malloc.h>
-#include <sys/fcntl.h>
-#include <sys/ucred.h>
-#include <sys/vnode.h>
-#include <sys/conf.h>
-
-#include <vm/vm.h>
-#include <vm/vnode_pager.h>
-
-#include <cfs/coda.h>
-#include <cfs/cnode.h>
-#include <cfs/cfs_vnodeops.h>
-
-#ifdef DEVFS
-#include <sys/devfsext.h>
-#endif
-
-/*
- From: "Jordan K. Hubbard" <jkh@time.cdrom.com>
- Subject: Re: New 3.0 SNAPshot CDROM about ready for production..
- To: "Robert.V.Baron" <rvb@GLUCK.CODA.CS.CMU.EDU>
- Date: Fri, 20 Feb 1998 15:57:01 -0800
-
- > Also I need a character device major number. (and might want to reserve
- > a block of 10 syscalls.)
-
- Just one char device number? No block devices? Very well, cdev 93 is yours!
-*/
-
-#define VC_DEV_NO 93
-
-/* Type of device methods. */
-extern d_open_t vc_nb_open;
-extern d_close_t vc_nb_close;
-extern d_read_t vc_nb_read;
-extern d_write_t vc_nb_write;
-extern d_ioctl_t vc_nb_ioctl;
-extern d_poll_t vc_nb_poll;
-
-static struct cdevsw vccdevsw =
-{
- vc_nb_open, vc_nb_close, vc_nb_read, vc_nb_write, /*93*/
- vc_nb_ioctl, nostop, nullreset, nodevtotty,
- vc_nb_poll, nommap, NULL, "Coda", NULL, -1
-};
-
-void vcattach __P((void));
-static dev_t vccdev;
-
-int vcdebug = 1;
-#define VCDEBUG if (vcdebug) printf
-
-void
-vcattach(void)
-{
- /*
- * In case we are an LKM, set up device switch.
- */
- if (0 == (vccdev = makedev(VC_DEV_NO, 0)))
- VCDEBUG("makedev returned null\n");
- else
- VCDEBUG("makedev OK.\n");
-
- cdevsw_add(&vccdev, &vccdevsw, NULL);
- VCDEBUG("coda: vccdevsw entry installed at %d.\n", major(vccdev));
-}
-
-static vc_devsw_installed = 0;
-static void vc_drvinit __P((void *unused));
-
-static void
-vc_drvinit(void *unused)
-{
- dev_t dev;
-
- if( ! vc_devsw_installed ) {
- dev = makedev(VC_DEV_NO, 0);
- cdevsw_add(&dev,&vccdevsw, NULL);
- vc_devsw_installed = 1;
- }
-}
-
-int
-coda_fbsd_getpages(v)
- void *v;
-{
- struct vop_getpages_args *ap = v;
- struct vnode *vp = ap->a_vp;
- struct cnode *cp = VTOC(vp);
- int ret = 0;
-
-#if 1
- /*??? a_offset */
- ret = vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count,
- ap->a_reqpage);
- return ret;
-#else
- {
- struct vnode *vp = ap->a_vp;
- struct cnode *cp = VTOC(vp);
- struct vnode *cfvp = cp->c_ovp;
- int opened_internally = 0;
- struct ucred *cred = (struct ucred *) 0;
- struct proc *p = curproc;
- int error = 0;
-
- if (IS_CTL_VP(vp)) {
- return(EINVAL);
- }
-
- /* Redirect the request to UFS. */
-
- if (cfvp == NULL) {
- opened_internally = 1;
-
- error = VOP_OPEN(vp, FREAD, cred, p);
-printf("coda_getp: Internally Opening %p\n", vp);
-
- if (error) {
- printf("coda_getpage: VOP_OPEN on container failed %d\n", error);
- return (error);
- }
- if (vp->v_type == VREG) {
- error = vfs_object_create(vp, p, cred, 1);
- if (error != 0) {
- printf("coda_getpage: vfs_object_create() returns %d\n", error);
- vput(vp);
- return(error);
- }
- }
-
- cfvp = cp->c_ovp;
- } else {
-printf("coda_getp: has container %p\n", cfvp);
- }
-
-printf("coda_fbsd_getpages: using container ");
-/*
- error = vnode_pager_generic_getpages(cfvp, ap->a_m, ap->a_count,
- ap->a_reqpage);
-*/
- error = VOP_GETPAGES(cfvp, ap->a_m, ap->a_count,
- ap->a_reqpage, ap->a_offset);
-printf("error = %d\n", error);
-
- /* Do an internal close if necessary. */
- if (opened_internally) {
- (void)VOP_CLOSE(vp, FREAD, cred, p);
- }
-
- return(error);
- }
-#endif
-}
-
-int
-coda_fbsd_putpages(v)
- void *v;
-{
- struct vop_putpages_args *ap = v;
-
- /*??? a_offset */
- return vnode_pager_generic_putpages(ap->a_vp, ap->a_m, ap->a_count,
- ap->a_sync, ap->a_rtvals);
-}
-
-
-SYSINIT(vccdev,SI_SUB_DRIVERS,SI_ORDER_MIDDLE+VC_DEV_NO,vc_drvinit,NULL)
OpenPOWER on IntegriCloud