Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/fs/cd9660/cd9660_rrip.h
39536 views
1
/*-
2
* SPDX-License-Identifier: BSD-3-Clause
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 ([email protected]). The Rock Ridge Extension
9
* Support code is derived from software contributed to Berkeley
10
* by Atsushi Murai ([email protected]).
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
37
#ifndef _ISOFS_CD9660_CD9660_RRIP_H_
38
#define _ISOFS_CD9660_CD9660_RRIP_H_
39
40
typedef struct {
41
char type [ISODCL ( 0, 1)];
42
u_char length [ISODCL ( 2, 2)]; /* 711 */
43
u_char version [ISODCL ( 3, 3)];
44
} ISO_SUSP_HEADER;
45
46
typedef struct {
47
ISO_SUSP_HEADER h;
48
char mode [ISODCL ( 4, 11)]; /* 733 */
49
char links [ISODCL ( 12, 19)]; /* 733 */
50
char uid [ISODCL ( 20, 27)]; /* 733 */
51
char gid [ISODCL ( 28, 35)]; /* 733 */
52
} ISO_RRIP_ATTR;
53
54
typedef struct {
55
ISO_SUSP_HEADER h;
56
char dev_t_high [ISODCL ( 4, 11)]; /* 733 */
57
char dev_t_low [ISODCL ( 12, 19)]; /* 733 */
58
} ISO_RRIP_DEVICE;
59
60
#define ISO_SUSP_CFLAG_CONTINUE 0x01
61
#define ISO_SUSP_CFLAG_CURRENT 0x02
62
#define ISO_SUSP_CFLAG_PARENT 0x04
63
#define ISO_SUSP_CFLAG_ROOT 0x08
64
#define ISO_SUSP_CFLAG_VOLROOT 0x10
65
#define ISO_SUSP_CFLAG_HOST 0x20
66
67
typedef struct {
68
u_char cflag [ISODCL ( 1, 1)];
69
u_char clen [ISODCL ( 2, 2)];
70
u_char name [1]; /* XXX */
71
} ISO_RRIP_SLINK_COMPONENT;
72
#define ISO_RRIP_SLSIZ 2
73
74
typedef struct {
75
ISO_SUSP_HEADER h;
76
u_char flags [ISODCL ( 4, 4)];
77
u_char component [ISODCL ( 5, 5)];
78
} ISO_RRIP_SLINK;
79
80
typedef struct {
81
ISO_SUSP_HEADER h;
82
char flags [ISODCL ( 4, 4)];
83
} ISO_RRIP_ALTNAME;
84
85
typedef struct {
86
ISO_SUSP_HEADER h;
87
char dir_loc [ISODCL ( 4, 11)]; /* 733 */
88
} ISO_RRIP_CLINK;
89
90
typedef struct {
91
ISO_SUSP_HEADER h;
92
char dir_loc [ISODCL ( 4, 11)]; /* 733 */
93
} ISO_RRIP_PLINK;
94
95
typedef struct {
96
ISO_SUSP_HEADER h;
97
} ISO_RRIP_RELDIR;
98
99
#define ISO_SUSP_TSTAMP_FORM17 0x80
100
#define ISO_SUSP_TSTAMP_FORM7 0x00
101
#define ISO_SUSP_TSTAMP_CREAT 0x01
102
#define ISO_SUSP_TSTAMP_MODIFY 0x02
103
#define ISO_SUSP_TSTAMP_ACCESS 0x04
104
#define ISO_SUSP_TSTAMP_ATTR 0x08
105
#define ISO_SUSP_TSTAMP_BACKUP 0x10
106
#define ISO_SUSP_TSTAMP_EXPIRE 0x20
107
#define ISO_SUSP_TSTAMP_EFFECT 0x40
108
109
typedef struct {
110
ISO_SUSP_HEADER h;
111
u_char flags [ISODCL ( 4, 4)];
112
u_char time [ISODCL ( 5, 5)];
113
} ISO_RRIP_TSTAMP;
114
115
typedef struct {
116
ISO_SUSP_HEADER h;
117
u_char flags [ISODCL ( 4, 4)];
118
} ISO_RRIP_IDFLAG;
119
120
typedef struct {
121
ISO_SUSP_HEADER h;
122
char len_id [ISODCL ( 4, 4)];
123
char len_des [ISODCL ( 5, 5)];
124
char len_src [ISODCL ( 6, 6)];
125
char version [ISODCL ( 7, 7)];
126
} ISO_RRIP_EXTREF;
127
128
typedef struct {
129
ISO_SUSP_HEADER h;
130
char check [ISODCL ( 4, 5)];
131
char skip [ISODCL ( 6, 6)];
132
} ISO_RRIP_OFFSET;
133
134
typedef struct {
135
ISO_SUSP_HEADER h;
136
u_char location [ISODCL ( 4, 11)];
137
u_char offset [ISODCL ( 12, 19)];
138
u_char length [ISODCL ( 20, 27)];
139
} ISO_RRIP_CONT;
140
141
#endif /* _ISOFS_CD9660_CD9660_RRIP_H_ */
142
143