The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/cd9660/cd9660_extern.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: cd9660_extern.h,v 1.7.2.1 2004/05/23 10:45:11 tron Exp $       */
    2 
    3 /*-
    4  * Copyright (c) 1994
    5  *      The Regents of the University of California.  All rights reserved.
    6  *
    7  * This code is derived from software contributed to Berkeley
    8  * by Pace Willisson (pace@blitz.com).  The Rock Ridge Extension
    9  * Support code is derived from software contributed to Berkeley
   10  * by Atsushi Murai (amurai@spec.co.jp).
   11  *
   12  * Redistribution and use in source and binary forms, with or without
   13  * modification, are permitted provided that the following conditions
   14  * are met:
   15  * 1. Redistributions of source code must retain the above copyright
   16  *    notice, this list of conditions and the following disclaimer.
   17  * 2. Redistributions in binary form must reproduce the above copyright
   18  *    notice, this list of conditions and the following disclaimer in the
   19  *    documentation and/or other materials provided with the distribution.
   20  * 3. Neither the name of the University nor the names of its contributors
   21  *    may be used to endorse or promote products derived from this software
   22  *    without specific prior written permission.
   23  *
   24  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   25  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   27  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   30  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   32  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   33  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   34  * SUCH DAMAGE.
   35  *
   36  *      @(#)iso.h       8.4 (Berkeley) 12/5/94
   37  */
   38 
   39 /*
   40  * Definitions used in the kernel for cd9660 file system support.
   41  */
   42 
   43 #include <sys/mallocvar.h>
   44 MALLOC_DECLARE(M_ISOFSMNT);
   45 
   46 /* CD-ROM Format type */
   47 enum ISO_FTYPE  { ISO_FTYPE_DEFAULT, ISO_FTYPE_9660, ISO_FTYPE_RRIP, ISO_FTYPE_ECMA };
   48 
   49 #ifndef ISOFSMNT_ROOT
   50 #define ISOFSMNT_ROOT   0
   51 #endif
   52 
   53 struct iso_mnt {
   54         int im_flags;
   55         int im_joliet_level;
   56 
   57         struct mount *im_mountp;
   58         dev_t im_dev;
   59         struct vnode *im_devvp;
   60 
   61         int logical_block_size;
   62         int im_bshift;
   63         int im_bmask;
   64         
   65         int volume_space_size;
   66         struct netexport im_export;
   67         
   68         char root[ISODCL (157, 190)];
   69         int root_extent;
   70         int root_size;
   71         enum ISO_FTYPE  iso_ftype;
   72         
   73         int rr_skip;
   74         int rr_skip0;
   75 };
   76 
   77 #define VFSTOISOFS(mp)  ((struct iso_mnt *)((mp)->mnt_data))
   78 
   79 #define blkoff(imp, loc)        ((loc) & (imp)->im_bmask)
   80 #define lblktosize(imp, blk)    ((blk) << (imp)->im_bshift)
   81 #define lblkno(imp, loc)        ((loc) >> (imp)->im_bshift)
   82 #define blksize(imp, ip, lbn)   ((imp)->logical_block_size)
   83 
   84 extern struct pool cd9660_node_pool;
   85 
   86 int cd9660_mount __P((struct mount *,
   87             const char *, void *, struct nameidata *, struct proc *));
   88 int cd9660_start __P((struct mount *, int, struct proc *));
   89 int cd9660_unmount __P((struct mount *, int, struct proc *));
   90 int cd9660_root __P((struct mount *, struct vnode **));
   91 int cd9660_quotactl __P((struct mount *, int, uid_t, caddr_t, struct proc *));
   92 int cd9660_statfs __P((struct mount *, struct statfs *, struct proc *));
   93 int cd9660_sync __P((struct mount *, int, struct ucred *, struct proc *));
   94 int cd9660_vget __P((struct mount *, ino_t, struct vnode **));
   95 int cd9660_fhtovp __P((struct mount *, struct fid *, struct vnode **));
   96 int cd9660_check_export __P((struct mount *, struct mbuf *, int *,
   97             struct ucred **));
   98 int cd9660_vptofh __P((struct vnode *, struct fid *));
   99 void cd9660_init __P((void));
  100 void cd9660_reinit __P((void));
  101 void cd9660_done __P((void));
  102 
  103 #ifdef SYSCTL_SETUP_PROTO
  104 SYSCTL_SETUP_PROTO(sysctl_vfs_cd9660_setup);
  105 #endif /* SYSCTL_SETUP_PROTO */
  106 
  107 int cd9660_mountroot __P((void)); 
  108 
  109 extern int (**cd9660_vnodeop_p) __P((void *));
  110 extern int (**cd9660_specop_p) __P((void *));
  111 extern int (**cd9660_fifoop_p) __P((void *));
  112 
  113 int isochar __P((const u_char *, const u_char *, int, u_char *));
  114 int isofncmp __P((const u_char *, int, const u_char *, int, int));
  115 void isofntrans __P((u_char *, int, u_char *, u_short *, int, int, int, int));
  116 ino_t isodirino __P((struct iso_directory_record *, struct iso_mnt *));

Cache object: affab3bdaf72591e39e5d1d917a572e8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.