Annotation of sys/isofs/cd9660/cd9660_extern.h, Revision 1.1.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