libcdio 2.1.0
iso9660.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2003-2008, 2012-2013, 2017
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).
7
8 Copyright 1993 Yggdrasil Computing, Incorporated
9
10 This program is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
22*/
33
34#ifndef CDIO_ISO9660_H_
35#define CDIO_ISO9660_H_
36
37#include <time.h>
38
39#include <cdio/cdio.h>
40#include <cdio/ds.h>
41#include <cdio/posix.h>
42
49typedef uint8_t iso711_t;
50typedef int8_t iso712_t;
51typedef uint16_t iso721_t;
52typedef uint16_t iso722_t;
53typedef uint32_t iso723_t;
54typedef uint32_t iso731_t;
55typedef uint32_t iso732_t;
56typedef uint64_t iso733_t;
58typedef char achar_t;
59typedef char dchar_t;
61#ifndef EMPTY_ARRAY_SIZE
62#define EMPTY_ARRAY_SIZE 0
63#endif
64
65#include <cdio/types.h>
66#include <cdio/xa.h>
67
68#ifdef ISODCL
69#undef ISODCL
70#endif
71/* This part borrowed from the bsd386 isofs */
72#define ISODCL(from, to) ((to) - (from) + 1)
73
74#define MIN_TRACK_SIZE 4*75
75#define MIN_ISO_SIZE MIN_TRACK_SIZE
76
99
118
127
128
148#define ISO_MAX_PUBLISHER_ID 128
149
151#define ISO_MAX_APPLICATION_ID 128
152
154#define ISO_MAX_VOLUME_ID 32
155
157#define ISO_MAX_VOLUMESET_ID 128
158
162extern const char ISO_STANDARD_ID[sizeof("CD001")-1];
163
164#define ISO_STANDARD_ID "CD001"
165
166#ifdef __cplusplus
167extern "C" {
168#endif /* __cplusplus */
169
176
178
195
197
208 char lt_year [ISODCL( 1, 4)];
211 char lt_month [ISODCL( 5, 6)];
215 char lt_day [ISODCL( 7, 8)];
216 char lt_hour [ISODCL( 9, 10)];
217 char lt_minute [ISODCL( 11, 12)];
218 char lt_second [ISODCL( 13, 14)];
219 char lt_hsecond [ISODCL( 15, 16)];
227
231
232#include <cdio/rock.h>
233
287
390
392
504
506
508
514
520
530struct iso9660_stat_s { /* big endian!! */
531
534 struct tm tm;
537 uint32_t size;
538 uint32_t secsize;
540 enum { _STAT_FILE = 1, _STAT_DIR = 2 } type;
541 bool b_xa;
543};
544
547typedef uint8_t iso_extension_mask_t;
548
561
562
563#define ISO_EXTENSION_ALL 0xFF
564#define ISO_EXTENSION_NONE 0x00
565#define ISO_EXTENSION_JOLIET \
566 (ISO_EXTENSION_JOLIET_LEVEL1 | \
567 ISO_EXTENSION_JOLIET_LEVEL2 | \
568 ISO_EXTENSION_JOLIET_LEVEL3 )
569
570
572typedef struct _iso9660_s iso9660_t;
573
584 bool iso9660_close (iso9660_t * p_iso);
585
586
597 iso9660_t *iso9660_open (const char *psz_path /*flags, mode */);
598
606 iso9660_t *iso9660_open_ext (const char *psz_path,
607 iso_extension_mask_t iso_extension_mask);
608
623 iso9660_t *iso9660_open_fuzzy (const char *psz_path /*flags, mode */,
624 uint16_t i_fuzz);
625
635 iso9660_t *iso9660_open_fuzzy_ext (const char *psz_path,
636 iso_extension_mask_t iso_extension_mask,
637 uint16_t i_fuzz
638 /*flags, mode */);
639
647 iso_extension_mask_t iso_extension_mask,
648 uint16_t i_fuzz);
649
666 long int iso9660_iso_seek_read (const iso9660_t *p_iso, /*out*/ void *ptr,
667 lsn_t start, long int i_size);
668
673 bool iso9660_fs_read_pvd ( const CdIo_t *p_cdio,
674 /*out*/ iso9660_pvd_t *p_pvd );
675
680 bool iso9660_ifs_read_pvd (const iso9660_t *p_iso,
681 /*out*/ iso9660_pvd_t *p_pvd);
682
689 iso_extension_mask_t iso_extension_mask);
690
697 iso_extension_mask_t iso_extension_mask);
698
699
700/*====================================================
701 Time conversion
702 ====================================================*/
703
708 void iso9660_set_dtime (const struct tm *tm,
709 /*out*/ iso9660_dtime_t *idr_date);
710
711
717 void iso9660_set_dtime_with_timezone (const struct tm *p_tm,
718 int timezone,
719 /*out*/ iso9660_dtime_t *p_idr_date);
720
724 void iso9660_set_ltime (const struct tm *_tm,
725 /*out*/ iso9660_ltime_t *p_pvd_date);
726
730 void iso9660_set_ltime_with_timezone (const struct tm *_tm,
731 int timezone,
732 /*out*/ iso9660_ltime_t *p_pvd_date);
733
742 bool iso9660_get_dtime (const iso9660_dtime_t *idr_date, bool b_localtime,
743 /*out*/ struct tm *tm);
744
745
750 bool iso9660_get_ltime (const iso9660_ltime_t *p_ldate,
751 /*out*/ struct tm *p_tm);
752
753 /*====================================================
754 Character Classification and String Manipulation
755 ====================================================*/
761 bool iso9660_is_dchar (int c);
762
768 bool iso9660_is_achar (int c);
769
781 int iso9660_name_translate(const char *psz_oldname,
782 /*out*/ char *psz_newname);
783
799 int iso9660_name_translate_ext(const char *psz_oldname, char *psz_newname,
800 uint8_t i_joliet_level);
801
813 char *iso9660_strncpy_pad(char dst[], const char src[], size_t len,
814 enum strncpy_pad_check _check);
815
816 /*=====================================================================
817 File and Directory Names
818 ======================================================================*/
819
830 bool iso9660_dirname_valid_p (const char psz_path[]);
831
838 char *iso9660_pathname_isofy (const char psz_path[], uint16_t i_version);
839
851 bool iso9660_pathname_valid_p (const char psz_path[]);
852
853/*=====================================================================
854 directory tree
855======================================================================*/
856
857void
858iso9660_dir_init_new (void *dir, uint32_t self, uint32_t ssize,
859 uint32_t parent, uint32_t psize,
860 const time_t *dir_time);
861
862void
863iso9660_dir_init_new_su (void *dir, uint32_t self, uint32_t ssize,
864 const void *ssu_data, unsigned int ssu_size,
865 uint32_t parent, uint32_t psize,
866 const void *psu_data, unsigned int psu_size,
867 const time_t *dir_time);
868
869void
870iso9660_dir_add_entry_su (void *dir, const char filename[], uint32_t extent,
871 uint32_t size, uint8_t file_flags,
872 const void *su_data,
873 unsigned int su_size, const time_t *entry_time);
874
875unsigned int
876iso9660_dir_calc_record_size (unsigned int namelen, unsigned int su_len);
877
887#define iso9660_fs_find_lsn iso9660_find_fs_lsn
889
890
908 /*out*/ char **ppsz_full_filename);
909
922
923
941 lsn_t i_lsn,
942 /*out*/ char **ppsz_path);
943
951
972iso9660_stat_t *iso9660_fs_stat (CdIo_t *p_cdio, const char psz_path[]);
973
974
989 const char psz_path[]);
999iso9660_stat_t *iso9660_ifs_stat (iso9660_t *p_iso, const char psz_path[]);
1000
1001
1013 const char psz_path[]);
1014
1015
1024
1025
1034
1035
1036
1041
1042
1047
1048
1060CdioList_t * iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[]);
1061
1073CdioList_t * iso9660_ifs_readdir (iso9660_t *p_iso, const char psz_path[]);
1074
1086
1099 /*out*/ cdio_utf8_t **p_psz_app_id);
1100
1105
1107
1108#ifdef FIXME
1109uint8_t iso9660_get_dir_size(const iso9660_dir_t *p_idr);
1110
1111lsn_t iso9660_get_dir_extent(const iso9660_dir_t *p_idr);
1112#endif
1113
1120 char * iso9660_dir_to_name (const iso9660_dir_t *p_iso9660_dir);
1121
1125 mode_t iso9660_get_posix_filemode(const iso9660_stat_t *p_iso_dirent);
1126
1132
1138 /*out*/ cdio_utf8_t **p_psz_preparer_id);
1139
1145
1151 /*out*/ cdio_utf8_t **p_psz_publisher_id);
1152
1154
1155 const char * iso9660_get_pvd_id(const iso9660_pvd_t *p_pvd);
1156
1158
1160
1165
1171
1186 bool_3way_t iso9660_have_rr(iso9660_t *p_iso, uint64_t u_file_limit);
1187
1193 /*out*/ cdio_utf8_t **p_psz_system_id);
1194
1195
1200
1206
1212 /*out*/ cdio_utf8_t **p_psz_volume_id);
1213
1219
1225 /*out*/ cdio_utf8_t **p_psz_volumeset_id);
1226
1227 /* pathtable */
1228
1230 void iso9660_pathtable_init (void *pt);
1231
1232 unsigned int iso9660_pathtable_get_size (const void *pt);
1233
1234 uint16_t iso9660_pathtable_l_add_entry (void *pt, const char name[],
1235 uint32_t extent, uint16_t parent);
1236
1237 uint16_t iso9660_pathtable_m_add_entry (void *pt, const char name[],
1238 uint32_t extent, uint16_t parent);
1239
1244 void iso9660_set_pvd (void *pd, const char volume_id[],
1245 const char application_id[],
1246 const char publisher_id[], const char preparer_id[],
1247 uint32_t iso_size, const void *root_dir,
1248 uint32_t path_table_l_extent,
1249 uint32_t path_table_m_extent,
1250 uint32_t path_table_size, const time_t *pvd_time);
1251
1252 void iso9660_set_evd (void *pd);
1253
1257 bool iso9660_ifs_is_xa (const iso9660_t * p_iso);
1258
1259
1260#ifndef DO_NOT_WANT_COMPATIBILITY
1262#define iso9660_isdchar iso9660_is_dchar
1263#define iso9660_isachar iso9660_is_achar
1264#endif /*DO_NOT_WANT_COMPATIBILITY*/
1265
1266#ifdef __cplusplus
1267}
1268#endif /* __cplusplus */
1269
1270#undef ISODCL
1271#endif /* CDIO_ISO9660_H_ */
1272
1273/*
1274 * Local variables:
1275 * c-file-style: "gnu"
1276 * tab-width: 8
1277 * indent-tabs-mode: nil
1278 * End:
1279 */
The top-level header for libcdio: the CD Input and Control library. Applications include this for any...
struct _CdIo CdIo_t
Definition cdio.h:47
The top-level header for list-related data structures.
struct _CdioList CdioList_t
Definition ds.h:33
uint64_t iso733_t
Definition iso9660.h:56
uint8_t iso_extension_mask_t
Definition iso9660.h:547
enum iso_extension_enum_s iso_extension_enums
iso9660_t * iso9660_open_fuzzy(const char *psz_path, uint16_t i_fuzz)
enum iso_vd_enum_s iso_vd_enums
#define iso9660_fs_find_lsn
Definition iso9660.h:887
CdioList_t * iso9660_fs_readdir(CdIo_t *p_cdio, const char psz_path[])
iso9660_stat_t * iso9660_fs_stat(CdIo_t *p_cdio, const char psz_path[])
void iso9660_stat_free(iso9660_stat_t *p_stat)
bool iso9660_ifs_get_preparer_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_preparer_id)
bool iso9660_ifs_get_system_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_system_id)
PRAGMA_BEGIN_PACKED struct iso9660_dtime_s GNUC_PACKED
iso9660_t * iso9660_open_fuzzy_ext(const char *psz_path, iso_extension_mask_t iso_extension_mask, uint16_t i_fuzz)
uint8_t iso9660_get_pvd_type(const iso9660_pvd_t *p_pvd)
char * iso9660_get_system_id(const iso9660_pvd_t *p_pvd)
enum iso_flag_enum_s iso_flag_enums
void iso9660_set_dtime_with_timezone(const struct tm *p_tm, int timezone, iso9660_dtime_t *p_idr_date)
char achar_t
Definition iso9660.h:58
iso_extension_enum_s
Definition iso9660.h:554
@ ISO_EXTENSION_JOLIET_LEVEL3
Definition iso9660.h:557
@ ISO_EXTENSION_JOLIET_LEVEL2
Definition iso9660.h:556
@ ISO_EXTENSION_ROCK_RIDGE
Definition iso9660.h:558
@ ISO_EXTENSION_HIGH_SIERRA
Definition iso9660.h:559
@ ISO_EXTENSION_JOLIET_LEVEL1
Definition iso9660.h:555
const char * iso9660_get_pvd_id(const iso9660_pvd_t *p_pvd)
uint16_t iso9660_pathtable_m_add_entry(void *pt, const char name[], uint32_t extent, uint16_t parent)
#define ISO_MAX_VOLUMESET_ID
Maximum number of characters in a volume-set id.
Definition iso9660.h:157
iso9660_stat_t * iso9660_ifs_find_lsn_with_path(iso9660_t *p_iso, lsn_t i_lsn, char **ppsz_path)
struct _iso9660_s iso9660_t
Definition iso9660.h:572
char * iso9660_get_preparer_id(const iso9660_pvd_t *p_pvd)
uint16_t iso721_t
Definition iso9660.h:51
char * iso9660_dir_to_name(const iso9660_dir_t *p_iso9660_dir)
bool iso9660_ifs_get_volumeset_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_volumeset_id)
uint8_t iso9660_ifs_get_joliet_level(iso9660_t *p_iso)
uint32_t iso723_t
Definition iso9660.h:53
iso9660_stat_t * iso9660_ifs_stat(iso9660_t *p_iso, const char psz_path[])
bool iso9660_ifs_read_pvd(const iso9660_t *p_iso, iso9660_pvd_t *p_pvd)
bool iso9660_fs_read_superblock(CdIo_t *p_cdio, iso_extension_mask_t iso_extension_mask)
int iso9660_get_pvd_version(const iso9660_pvd_t *pvd)
bool iso9660_ifs_read_superblock(iso9660_t *p_iso, iso_extension_mask_t iso_extension_mask)
bool iso9660_dirname_valid_p(const char psz_path[])
void iso9660_pathtable_init(void *pt)
bool iso9660_ifs_fuzzy_read_superblock(iso9660_t *p_iso, iso_extension_mask_t iso_extension_mask, uint16_t i_fuzz)
#define ISO_MAX_PUBLISHER_ID
Maximum number of characters in a publisher id.
Definition iso9660.h:148
bool iso9660_fs_read_pvd(const CdIo_t *p_cdio, iso9660_pvd_t *p_pvd)
void iso9660_set_dtime(const struct tm *tm, iso9660_dtime_t *idr_date)
uint8_t iso711_t
ISO 9660 Integer and Character types.
Definition iso9660.h:49
enum strncpy_pad_check strncpy_pad_check_t
lsn_t iso9660_get_root_lsn(const iso9660_pvd_t *p_pvd)
int iso9660_get_pvd_block_size(const iso9660_pvd_t *p_pvd)
void iso9660_filelist_free(CdioISO9660FileList_t *p_filelist)
mode_t iso9660_get_posix_filemode(const iso9660_stat_t *p_iso_dirent)
int iso9660_name_translate_ext(const char *psz_oldname, char *psz_newname, uint8_t i_joliet_level)
iso9660_stat_t * iso9660_fs_find_lsn_with_path(CdIo_t *p_cdio, lsn_t i_lsn, char **ppsz_full_filename)
bool iso9660_ifs_get_application_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_app_id)
iso_vd_enum_s
Definition iso9660.h:120
@ ISO_VD_BOOT_RECORD
Definition iso9660.h:121
@ ISO_VD_PRIMARY
Definition iso9660.h:122
@ ISO_VD_PARITION
Definition iso9660.h:124
@ ISO_VD_SUPPLEMENTARY
Definition iso9660.h:123
@ ISO_VD_END
Definition iso9660.h:125
bool iso9660_get_ltime(const iso9660_ltime_t *p_ldate, struct tm *p_tm)
uint8_t iso9660_get_dir_len(const iso9660_dir_t *p_idr)
void iso9660_set_ltime(const struct tm *_tm, iso9660_ltime_t *p_pvd_date)
unsigned int iso9660_pathtable_get_size(const void *pt)
#define ISO_STANDARD_ID
Definition iso9660.h:164
void iso9660_dir_init_new(void *dir, uint32_t self, uint32_t ssize, uint32_t parent, uint32_t psize, const time_t *dir_time)
char * iso9660_strncpy_pad(char dst[], const char src[], size_t len, enum strncpy_pad_check _check)
unsigned int iso9660_dir_calc_record_size(unsigned int namelen, unsigned int su_len)
void iso9660_dirlist_free(CdioISO9660DirList_t *p_filelist)
#define ISODCL(from, to)
Definition iso9660.h:72
int iso9660_name_translate(const char *psz_oldname, char *psz_newname)
bool iso9660_ifs_get_volume_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_volume_id)
CdioList_t CdioISO9660DirList_t
A data type for a list of ISO9660 statbuf drectory pointer returned from the variious Cdio iso9660 re...
Definition iso9660.h:519
bool iso9660_get_dtime(const iso9660_dtime_t *idr_date, bool b_localtime, struct tm *tm)
enum iso_enum1_s iso_enums1
long int iso9660_iso_seek_read(const iso9660_t *p_iso, void *ptr, lsn_t start, long int i_size)
uint32_t iso732_t
Definition iso9660.h:55
char * iso9660_get_application_id(iso9660_pvd_t *p_pvd)
iso_enum1_s
Definition iso9660.h:83
@ ISO_BLOCKSIZE
Definition iso9660.h:96
@ LEN_ISONAME
Definition iso9660.h:86
@ ISO_PVD_SECTOR
Definition iso9660.h:84
@ ISO_MAX_PREPARER_ID
Definition iso9660.h:92
@ ISO_EVD_SECTOR
Definition iso9660.h:85
@ MAX_ISOPATHNAME
Definition iso9660.h:94
@ ISO_MAX_SYSTEM_ID
Definition iso9660.h:88
@ MAX_ISONAME
Definition iso9660.h:90
char * iso9660_pathname_isofy(const char psz_path[], uint16_t i_version)
char * iso9660_get_publisher_id(const iso9660_pvd_t *p_pvd)
CdioList_t * iso9660_ifs_readdir(iso9660_t *p_iso, const char psz_path[])
int iso9660_get_pvd_space_size(const iso9660_pvd_t *p_pvd)
iso9660_stat_t * iso9660_ifs_find_lsn(iso9660_t *p_iso, lsn_t i_lsn)
void iso9660_set_pvd(void *pd, const char volume_id[], const char application_id[], const char publisher_id[], const char preparer_id[], uint32_t iso_size, const void *root_dir, uint32_t path_table_l_extent, uint32_t path_table_m_extent, uint32_t path_table_size, const time_t *pvd_time)
strncpy_pad_check
Definition iso9660.h:170
@ ISO9660_NOCHECK
Definition iso9660.h:171
@ ISO9660_7BIT
Definition iso9660.h:172
@ ISO9660_DCHARS
Definition iso9660.h:174
@ ISO9660_ACHARS
Definition iso9660.h:173
bool iso9660_close(iso9660_t *p_iso)
void iso9660_dir_add_entry_su(void *dir, const char filename[], uint32_t extent, uint32_t size, uint8_t file_flags, const void *su_data, unsigned int su_size, const time_t *entry_time)
bool iso9660_is_achar(int c)
void iso9660_set_evd(void *pd)
uint16_t iso722_t
Definition iso9660.h:52
void iso9660_dir_init_new_su(void *dir, uint32_t self, uint32_t ssize, const void *ssu_data, unsigned int ssu_size, uint32_t parent, uint32_t psize, const void *psu_data, unsigned int psu_size, const time_t *dir_time)
bool iso9660_ifs_is_xa(const iso9660_t *p_iso)
bool iso9660_ifs_get_publisher_id(iso9660_t *p_iso, cdio_utf8_t **p_psz_publisher_id)
#define ISO_MAX_VOLUME_ID
Maximum number of characters in a volume id.
Definition iso9660.h:154
CdioISO9660DirList_t * iso9660_dirlist_new(void)
iso9660_stat_t * iso9660_ifs_stat_translate(iso9660_t *p_iso, const char psz_path[])
char * iso9660_get_volume_id(const iso9660_pvd_t *p_pvd)
uint16_t iso9660_pathtable_l_add_entry(void *pt, const char name[], uint32_t extent, uint16_t parent)
CdioISO9660FileList_t * iso9660_filelist_new(void)
bool iso9660_pathname_valid_p(const char psz_path[])
void iso9660_set_ltime_with_timezone(const struct tm *_tm, int timezone, iso9660_ltime_t *p_pvd_date)
char * iso9660_get_volumeset_id(const iso9660_pvd_t *p_pvd)
char dchar_t
Definition iso9660.h:59
#define EMPTY_ARRAY_SIZE
Definition iso9660.h:62
bool_3way_t iso9660_have_rr(iso9660_t *p_iso, uint64_t u_file_limit)
iso9660_t * iso9660_open_ext(const char *psz_path, iso_extension_mask_t iso_extension_mask)
uint32_t iso731_t
Definition iso9660.h:54
bool iso9660_is_dchar(int c)
iso_flag_enum_s
Definition iso9660.h:107
@ ISO_RECORD
Definition iso9660.h:112
@ ISO_FILE
Definition iso9660.h:108
@ ISO_DRESERVED1
Definition iso9660.h:114
@ ISO_MULTIEXTENT
Definition iso9660.h:116
@ ISO_ASSOCIATED
Definition iso9660.h:111
@ ISO_EXISTENCE
Definition iso9660.h:109
@ ISO_DRESERVED2
Definition iso9660.h:115
@ ISO_DIRECTORY
Definition iso9660.h:110
@ ISO_PROTECTION
Definition iso9660.h:113
iso9660_t * iso9660_open(const char *psz_path)
iso9660_stat_t * iso9660_fs_stat_translate(CdIo_t *p_cdio, const char psz_path[])
#define ISO_MAX_APPLICATION_ID
Maximum number of characters in an application id.
Definition iso9660.h:151
PRAGMA_END_PACKED typedef CdioList_t CdioISO9660FileList_t
A data type for a list of ISO9660 statbuf file pointers returned from the various Cdio iso9660 readdi...
Definition iso9660.h:513
int8_t iso712_t
Definition iso9660.h:50
various POSIX definitions.
Things related to the Rock Ridge Interchange Protocol (RRIP)
Format of an ISO-9660 directory record.
Definition iso9660.h:248
char str[1]
Definition iso9660.h:284
iso711_t file_unit_size
Definition iso9660.h:261
union iso9660_dir_s::@11 filename
iso711_t len
Definition iso9660.h:283
uint8_t file_flags
Definition iso9660.h:258
iso733_t size
Definition iso9660.h:254
iso723_t volume_sequence_number
Definition iso9660.h:269
iso711_t length
Definition iso9660.h:249
iso711_t interleave_gap
Definition iso9660.h:265
iso733_t extent
Definition iso9660.h:252
iso711_t xa_length
Definition iso9660.h:250
iso9660_dtime_t recording_time
Definition iso9660.h:257
ISO-9660 shorter-format time structure. See ECMA 9.1.5.
Definition iso9660.h:184
iso711_t dt_day
Definition iso9660.h:188
iso711_t dt_month
Definition iso9660.h:186
iso712_t dt_gmtoff
Definition iso9660.h:192
iso711_t dt_year
Definition iso9660.h:185
iso711_t dt_second
Definition iso9660.h:191
iso711_t dt_minute
Definition iso9660.h:190
iso711_t dt_hour
Definition iso9660.h:189
ISO-9660 longer-format time structure.
Definition iso9660.h:207
iso712_t lt_gmtoff
Definition iso9660.h:222
char lt_year[ISODCL(1, 4)]
Definition iso9660.h:208
char lt_second[ISODCL(13, 14)]
Definition iso9660.h:218
char lt_day[ISODCL(7, 8)]
Definition iso9660.h:215
char lt_hour[ISODCL(9, 10)]
Definition iso9660.h:216
char lt_minute[ISODCL(11, 12)]
Definition iso9660.h:217
char lt_month[ISODCL(5, 6)]
Definition iso9660.h:211
char lt_hsecond[ISODCL(15, 16)]
Definition iso9660.h:219
ISO-9660 Primary Volume Descriptor.
Definition iso9660.h:291
iso711_t type
Definition iso9660.h:292
dchar_t volume_set_id[ISO_MAX_VOLUMESET_ID]
Definition iso9660.h:321
iso723_t logical_block_size
Definition iso9660.h:305
iso731_t type_l_path_table
Definition iso9660.h:307
iso9660_ltime_t expiration_date
Definition iso9660.h:377
achar_t system_id[ISO_MAX_SYSTEM_ID]
Definition iso9660.h:297
dchar_t abstract_file_id[37]
Definition iso9660.h:366
uint8_t unused3[32]
Definition iso9660.h:302
iso9660_dir_t root_directory_record
Definition iso9660.h:315
char unused1[1]
Definition iso9660.h:296
char application_data[512]
Definition iso9660.h:386
dchar_t copyright_file_id[37]
Definition iso9660.h:359
iso9660_ltime_t modification_date
Definition iso9660.h:373
achar_t application_id[ISO_MAX_APPLICATION_ID]
Definition iso9660.h:347
iso711_t file_structure_version
Definition iso9660.h:384
uint8_t unused4[1]
Definition iso9660.h:385
dchar_t volume_id[ISO_MAX_VOLUME_ID]
Definition iso9660.h:298
achar_t publisher_id[ISO_MAX_PUBLISHER_ID]
Definition iso9660.h:325
iso723_t volume_set_size
Definition iso9660.h:303
iso731_t opt_type_l_path_table
Definition iso9660.h:309
iso711_t version
Definition iso9660.h:295
iso9660_ltime_t effective_date
Definition iso9660.h:380
iso732_t type_m_path_table
Definition iso9660.h:311
uint8_t unused2[8]
Definition iso9660.h:299
iso733_t path_table_size
Definition iso9660.h:306
achar_t preparer_id[ISO_MAX_PREPARER_ID]
Definition iso9660.h:336
iso723_t volume_sequence_number
Definition iso9660.h:304
iso9660_ltime_t creation_date
Definition iso9660.h:370
char root_directory_filename
Definition iso9660.h:318
dchar_t bibliographic_file_id[37]
Definition iso9660.h:368
iso733_t volume_space_size
Definition iso9660.h:300
iso732_t opt_type_m_path_table
Definition iso9660.h:313
uint8_t unused5[653]
Definition iso9660.h:388
Unix stat-like version of iso9660_dir.
Definition iso9660.h:530
uint32_t size
Definition iso9660.h:537
char filename[EMPTY_ARRAY_SIZE]
Definition iso9660.h:542
struct tm tm
Definition iso9660.h:534
uint32_t secsize
Definition iso9660.h:538
bool b_xa
Definition iso9660.h:541
@ _STAT_DIR
Definition iso9660.h:540
@ _STAT_FILE
Definition iso9660.h:540
enum iso9660_stat_s::@12 type
iso9660_xa_t xa
Definition iso9660.h:539
iso_rock_statbuf_t rr
Definition iso9660.h:532
lsn_t lsn
Definition iso9660.h:536
ISO-9660 Supplementary Volume Descriptor.
Definition iso9660.h:400
iso731_t type_l_path_table
Definition iso9660.h:420
iso731_t opt_type_l_path_table
Definition iso9660.h:422
char application_data[512]
Definition iso9660.h:500
dchar_t copyright_file_id[37]
Definition iso9660.h:473
achar_t application_id[ISO_MAX_APPLICATION_ID]
Definition iso9660.h:461
iso711_t version
Definition iso9660.h:405
char flags
Definition iso9660.h:406
achar_t system_id[ISO_MAX_SYSTEM_ID]
Definition iso9660.h:407
uint8_t unused5[653]
Definition iso9660.h:502
dchar_t bibliographic_file_id[37]
Definition iso9660.h:482
iso9660_ltime_t effective_date
Definition iso9660.h:494
dchar_t volume_id[ISO_MAX_VOLUME_ID]
Definition iso9660.h:409
char escape_sequences[32]
Definition iso9660.h:414
uint8_t unused4[1]
Definition iso9660.h:499
achar_t publisher_id[ISO_MAX_PUBLISHER_ID]
Definition iso9660.h:437
iso723_t volume_set_size
Definition iso9660.h:415
dchar_t volume_set_id[ISO_MAX_VOLUMESET_ID]
Definition iso9660.h:435
iso733_t path_table_size
Definition iso9660.h:418
achar_t preparer_id[ISO_MAX_PREPARER_ID]
Definition iso9660.h:449
iso9660_ltime_t creation_date
Definition iso9660.h:484
char unused2[8]
Definition iso9660.h:411
iso723_t logical_block_size
Definition iso9660.h:417
iso733_t volume_space_size
Definition iso9660.h:412
iso9660_ltime_t expiration_date
Definition iso9660.h:491
iso732_t type_m_path_table
Definition iso9660.h:425
char root_directory_filename
Definition iso9660.h:432
iso711_t file_structure_version
Definition iso9660.h:498
iso711_t type
Definition iso9660.h:401
dchar_t abstract_file_id[37]
Definition iso9660.h:480
iso9660_ltime_t modification_date
Definition iso9660.h:487
iso723_t volume_sequence_number
Definition iso9660.h:416
iso9660_dir_t root_directory_record
Definition iso9660.h:430
iso732_t opt_type_m_path_table
Definition iso9660.h:427
"Extended Architecture" according to the Philips Yellow Book.
Definition xa.h:101
Definition rock.h:282
Common type definitions used pervasively in libcdio.
bool_3way_t
Definition types.h:236
char cdio_utf8_t
UTF-8 char definition.
Definition types.h:234
#define PRAGMA_BEGIN_PACKED
Definition types.h:168
#define PRAGMA_END_PACKED
Definition types.h:169
int32_t lsn_t
Definition types.h:266
Things related to the ISO-9660 XA (Extended Attributes) format.

Generated for libcdio by doxygen 1.11.0