Annotation of src/sys/fs/cd9660/cd9660_extern.h, Revision 1.22
1.22 ! pooka 1: /* $NetBSD: cd9660_extern.h,v 1.21 2007/07/12 19:35:32 dsl Exp $ */
1.1 jdolecek 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.
1.6 agc 20: * 3. Neither the name of the University nor the names of its contributors
1.1 jdolecek 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: */
1.17 christos 42: #ifndef _ISOFS_CD9660_CD9660_EXTERN_H_
43: #define _ISOFS_CD9660_CD9660_EXTERN_H_
1.1 jdolecek 44:
1.11 jdolecek 45: /*
46: * Sysctl values for the cd9660 filesystem.
47: */
48: #define CD9660_UTF8_JOLIET 1 /* UTF-8 encode Joliet file names */
49:
50: #define CD9660_NAMES { \
51: { 0, 0 }, \
52: { "utf8_joliet", CTLTYPE_INT }, \
53: }
54:
55:
1.1 jdolecek 56: /* CD-ROM Format type */
57: enum ISO_FTYPE { ISO_FTYPE_DEFAULT, ISO_FTYPE_9660, ISO_FTYPE_RRIP, ISO_FTYPE_ECMA };
58:
59: #ifndef ISOFSMNT_ROOT
60: #define ISOFSMNT_ROOT 0
61: #endif
62:
63: struct iso_mnt {
64: int im_flags;
65: int im_joliet_level;
66:
67: struct mount *im_mountp;
68: dev_t im_dev;
69: struct vnode *im_devvp;
70:
71: int logical_block_size;
72: int im_bshift;
73: int im_bmask;
1.13 perry 74:
1.1 jdolecek 75: int volume_space_size;
1.13 perry 76:
1.1 jdolecek 77: char root[ISODCL (157, 190)];
78: int root_extent;
79: int root_size;
80: enum ISO_FTYPE iso_ftype;
1.13 perry 81:
1.1 jdolecek 82: int rr_skip;
83: int rr_skip0;
84: };
85:
86: #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data))
87:
88: #define blkoff(imp, loc) ((loc) & (imp)->im_bmask)
89: #define lblktosize(imp, blk) ((blk) << (imp)->im_bshift)
90: #define lblkno(imp, loc) ((loc) >> (imp)->im_bshift)
91: #define blksize(imp, ip, lbn) ((imp)->logical_block_size)
92:
1.17 christos 93: #ifdef _KERNEL
94:
1.22 ! pooka 95: VFS_PROTOS(cd9660);
! 96:
1.17 christos 97: #include <sys/mallocvar.h>
98: MALLOC_DECLARE(M_ISOFSMNT);
99:
1.1 jdolecek 100: extern struct pool cd9660_node_pool;
1.11 jdolecek 101: extern int cd9660_utf8_joliet;
1.1 jdolecek 102:
1.10 atatat 103: #ifdef SYSCTL_SETUP_PROTO
104: SYSCTL_SETUP_PROTO(sysctl_vfs_cd9660_setup);
105: #endif /* SYSCTL_SETUP_PROTO */
106:
1.14 xtraeme 107: int cd9660_mountroot(void);
1.1 jdolecek 108:
1.14 xtraeme 109: extern int (**cd9660_vnodeop_p)(void *);
110: extern int (**cd9660_specop_p)(void *);
111: extern int (**cd9660_fifoop_p)(void *);
112:
113: int isochar(const u_char *, const u_char *, int, u_int16_t *);
114: int isofncmp(const u_char *, size_t, const u_char *, size_t, int);
115: void isofntrans(u_char *, int, u_char *, u_short *, int, int, int, int);
116: ino_t isodirino(struct iso_directory_record *, struct iso_mnt *);
1.17 christos 117: #endif /* _KERNEL */
118:
119: #endif /* _ISOFS_CD9660_CD9660_EXTERN_H_ */
CVSweb <webmaster@jp.NetBSD.org>