00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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
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, char *psz_volid,
00106 unsigned int i_volid);
00107
00117 int udf_get_volumeset_id(udf_t *p_udf, 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
00167
00168 #include <cdio/udf_time.h>
00169 #include <cdio/udf_file.h>
00170
00171 #endif