libcdio  2.1.0
xa.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2003, 2004, 2005, 2006, 2008, 2012
3  Rocky Bernstein <rocky@gnu.org>
4  Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
5 
6  See also iso9660.h by Eric Youngdale (1993) and in cdrtools. These are
7 
8  Copyright 1993 Yggdrasil Computing, Incorporated
9  Copyright (c) 1999,2000 J. Schilling
10 
11  This program is free software: you can redistribute it and/or modify
12  it under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  This program is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  GNU General Public License for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with this program. If not, see <http://www.gnu.org/licenses/>.
23 */
32 
33 #ifndef CDIO_XA_H_
34 #define CDIO_XA_H_
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif /* __cplusplus */
39 
45  typedef enum {
47  XA_PERM_RSYS = 0x0001,
48  XA_PERM_XSYS = 0x0004,
50  XA_PERM_RUSR = 0x0010,
51  XA_PERM_XUSR = 0x0040,
53  XA_PERM_RGRP = 0x0100,
54  XA_PERM_XGRP = 0x0400,
56  XA_PERM_ROTH = 0x1000,
57  XA_PERM_XOTH = 0x4000,
59  XA_ATTR_MODE2FORM1 = (1 << 11),
60  XA_ATTR_MODE2FORM2 = (1 << 12),
61  XA_ATTR_INTERLEAVED = (1 << 13),
62  XA_ATTR_CDDA = (1 << 14),
63  XA_ATTR_DIRECTORY = (1 << 15),
64 
68 
73 
74 extern const char ISO_XA_MARKER_STRING[sizeof("CD-XA001")-1];
75 
76 #define ISO_XA_MARKER_STRING "CD-XA001"
77 
100 typedef struct iso9660_xa_s
101 {
102  uint16_t group_id;
103  uint16_t user_id;
104  uint16_t attributes;
105  char signature[2];
106  uint8_t filenum;
107  uint8_t reserved[5];
109 
110 
115 
144 const char *
145 iso9660_get_xa_attr_str (uint16_t xa_attr);
146 
153 iso9660_xa_t *
154 iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr,
155  uint8_t filenum);
156 
162 void
163 iso9660_xa_free (iso9660_xa_t *_xa);
164 
165 #ifdef __cplusplus
166 }
167 
173 extern xa_misc_enum_t debugger_xa_misc_enum;
174 
175 
176 #endif /* __cplusplus */
177 
178 #endif /* CDIO_XA_H_ */
179 
180 /*
181  * Local variables:
182  * c-file-style: "gnu"
183  * tab-width: 8
184  * indent-tabs-mode: nil
185  * End:
186  */
iso9660_xa_t * iso9660_xa_init(iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr, uint8_t filenum)
uint16_t attributes
Definition: xa.h:104
Definition: xa.h:60
Definition: xa.h:53
uint32_t posix_mode_t
Definition: posix.h:26
"Extended Architecture" according to the Philips Yellow Book.
Definition: xa.h:100
uint8_t filenum
Definition: xa.h:106
char signature[2]
Definition: xa.h:105
xa_misc_enum_t
Definition: xa.h:45
void iso9660_xa_free(iso9660_xa_t *_xa)
Definition: xa.h:50
Definition: xa.h:70
Definition: xa.h:56
Definition: xa.h:51
Definition: xa.h:57
Definition: xa.h:48
Definition: xa.h:69
uint16_t group_id
Definition: xa.h:102
Definition: xa.h:61
Definition: xa.h:47
Definition: xa.h:67
Definition: xa.h:54
Definition: xa.h:46
uint16_t user_id
Definition: xa.h:103
posix_mode_t iso9660_get_posix_filemode_from_xa(uint16_t i_perms)
Definition: xa.h:71
Definition: xa.h:63
uint8_t reserved[5]
Definition: xa.h:107
Definition: xa.h:65
Definition: xa.h:59
#define ISO_XA_MARKER_STRING
Definition: xa.h:76
struct iso9660_xa_s iso9660_xa_t
"Extended Architecture" according to the Philips Yellow Book.
#define GNUC_PACKED
Definition: types.h:151
Definition: xa.h:62
Definition: xa.h:66
const char * iso9660_get_xa_attr_str(uint16_t xa_attr)