root / lab4 / .minix-src / include / isofs / cd9660 / cd9660_extern.h @ 13
History | View | Annotate | Download (3.67 KB)
1 | 13 | up20180614 | /* $NetBSD: cd9660_extern.h,v 1.26 2013/06/23 07:28:36 dholland 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 | #ifndef _ISOFS_CD9660_CD9660_EXTERN_H_
|
||
43 | #define _ISOFS_CD9660_CD9660_EXTERN_H_
|
||
44 | |||
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 | |||
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;
|
||
74 | |||
75 | int volume_space_size;
|
||
76 | |||
77 | char root[ISODCL (157, 190)]; |
||
78 | int root_extent;
|
||
79 | int root_size;
|
||
80 | enum ISO_FTYPE iso_ftype;
|
||
81 | |||
82 | int rr_skip;
|
||
83 | int rr_skip0;
|
||
84 | }; |
||
85 | |||
86 | #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data)) |
||
87 | |||
88 | #define cd9660_blkoff(imp, loc) ((loc) & (imp)->im_bmask)
|
||
89 | #define cd9660_lblktosize(imp, blk) ((blk) << (imp)->im_bshift)
|
||
90 | #define cd9660_lblkno(imp, loc) ((loc) >> (imp)->im_bshift)
|
||
91 | #define cd9660_blksize(imp, ip, lbn) ((imp)->logical_block_size)
|
||
92 | |||
93 | #ifdef _KERNEL
|
||
94 | |||
95 | VFS_PROTOS(cd9660); |
||
96 | |||
97 | #include <sys/mallocvar.h> |
||
98 | MALLOC_DECLARE(M_ISOFSMNT); |
||
99 | |||
100 | extern struct pool cd9660_node_pool; |
||
101 | extern int cd9660_utf8_joliet; |
||
102 | |||
103 | int cd9660_mountroot(void); |
||
104 | |||
105 | extern int (**cd9660_vnodeop_p)(void *); |
||
106 | extern int (**cd9660_specop_p)(void *); |
||
107 | extern int (**cd9660_fifoop_p)(void *); |
||
108 | |||
109 | int isochar(const u_char *, const u_char *, int, u_int16_t *); |
||
110 | int isofncmp(const u_char *, size_t, const u_char *, size_t, int); |
||
111 | void isofntrans(const u_char *, int, u_char *, u_short *, int, int, int, int); |
||
112 | ino_t isodirino(struct iso_directory_record *, struct iso_mnt *); |
||
113 | #endif /* _KERNEL */ |
||
114 | |||
115 | #endif /* _ISOFS_CD9660_CD9660_EXTERN_H_ */ |