Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / isofs / cd9660 / iso_rrip.h @ 14

History | View | Annotate | Download (3.5 KB)

1 13 up20180614
/*        $NetBSD: iso_rrip.h,v 1.4 2005/12/03 17:34:43 christos Exp $        */
2
3
/*-
4
 * Copyright (c) 1993, 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_rrip.h        8.2 (Berkeley) 1/23/94
37
 */
38
39
#ifndef _ISOFS_CD9660_ISO_RRIP_H_
40
#define _ISOFS_CD9660_ISO_RRIP_H_
41
42
/*
43
 *        Analyze function flag (similar to RR field bits)
44
 */
45
#define        ISO_SUSP_ATTR                0x0001
46
#define        ISO_SUSP_DEVICE                0x0002
47
#define        ISO_SUSP_SLINK                0x0004
48
#define        ISO_SUSP_ALTNAME        0x0008
49
#define        ISO_SUSP_CLINK                0x0010
50
#define        ISO_SUSP_PLINK                0x0020
51
#define        ISO_SUSP_RELDIR                0x0040
52
#define        ISO_SUSP_TSTAMP                0x0080
53
#define        ISO_SUSP_IDFLAG                0x0100
54
#define        ISO_SUSP_EXTREF                0x0200
55
#define        ISO_SUSP_CONT                0x0400
56
#define        ISO_SUSP_OFFSET                0x0800
57
#define        ISO_SUSP_STOP                0x1000
58
#define        ISO_SUSP_UNKNOWN        0x8000
59
60
typedef struct {
61
        struct iso_node        *inop;
62
        int                fields;                /* interesting fields in this analysis */
63
        daddr_t                iso_ce_blk;        /* block of continuation area */
64
        off_t                iso_ce_off;        /* offset of continuation area */
65
        int                iso_ce_len;        /* length of continuation area */
66
        struct iso_mnt        *imp;                /* mount structure */
67
        ino_t                *inump;                /* inode number pointer */
68
        char                *outbuf;        /* name/symbolic link output area */
69
        u_short                *outlen;        /* length of above */
70
        u_short                maxlen;                /* maximum length of above */
71
        int                cont;                /* continuation of above */
72
} ISO_RRIP_ANALYZE;
73
74
int cd9660_rrip_analyze(struct iso_directory_record *isodir,
75
                            struct iso_node *inop, struct iso_mnt *imp);
76
int cd9660_rrip_getname(struct iso_directory_record *isodir,
77
                            char *outbuf, u_short *outlen,
78
                            ino_t *inump, struct iso_mnt *imp);
79
int cd9660_rrip_getsymname(struct iso_directory_record *isodir,
80
                               char *outbuf, u_short *outlen,
81
                               struct iso_mnt *imp);
82
int cd9660_rrip_offset(struct iso_directory_record *isodir,
83
                           struct iso_mnt *imp);
84
85
#endif /* _ISOFS_CD9660_ISO_RRIP_H_ */