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