diff options
Diffstat (limited to 'sys/cfs/cfs_fbsd.c')
-rw-r--r-- | sys/cfs/cfs_fbsd.c | 205 |
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) |