libcdio
0.82
|
00001 /* 00002 $Id: udf.h,v 1.22 2008/03/25 15:59:09 karl Exp $ 00003 00004 Copyright (C) 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org> 00005 00006 This program is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00028 #ifndef UDF_H 00029 #define UDF_H 00030 00031 #include <cdio/cdio.h> 00032 #include <cdio/ecma_167.h> 00033 #include <cdio/posix.h> 00034 00035 typedef uint16_t partition_num_t; 00036 00038 typedef struct udf_s udf_t; 00039 typedef struct udf_file_s udf_file_t; 00040 typedef struct udf_dirent_s udf_dirent_t; 00041 00046 typedef enum { 00047 UDF_BLOCKSIZE = 2048 00048 } udf_enum1_t; 00049 00054 extern udf_enum1_t debug_udf_enum1; 00055 00056 #ifdef __cplusplus 00057 extern "C" { 00058 #endif /* __cplusplus */ 00059 00063 bool udf_close (udf_t *p_udf); 00064 00071 driver_return_code_t udf_read_sectors (const udf_t *p_udf, void *ptr, 00072 lsn_t i_start, long int i_blocks); 00073 00080 udf_t *udf_open (const char *psz_path); 00081 00086 int16_t udf_get_part_number(const udf_t *p_udf); 00087 00096 udf_dirent_t *udf_get_root (udf_t *p_udf, bool b_any_partition, 00097 partition_num_t i_partition); 00098 00105 int udf_get_volume_id(udf_t *p_udf, /*out*/ char *psz_volid, 00106 unsigned int i_volid); 00107 00117 int udf_get_volumeset_id(udf_t *p_udf, /*out*/ uint8_t *volsetid, 00118 unsigned int i_volsetid); 00119 00123 udf_dirent_t *udf_fopen(udf_dirent_t *p_udf_root, const char *psz_name); 00124 00162 char *udf_mode_string (mode_t i_mode, char *psz_str); 00163 00164 #ifdef __cplusplus 00165 } 00166 #endif /* __cplusplus */ 00167 00168 #include <cdio/udf_time.h> 00169 #include <cdio/udf_file.h> 00170 00171 #endif /*UDF_H*/