xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

rockridge_read.c File Reference
#include "libisofs.h"
#include "ecma119.h"
#include "util.h"
#include "rockridge.h"
#include "messages.h"
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for rockridge_read.c:

Go to the source code of this file.

Data Structures

struct  susp_iterator
 

Macros

#define ISO_SUSP_MAX_CE_BYTES   (1024 * 1024)
 

Functions

SuspIteratorsusp_iter_new (IsoDataSource *src, struct ecma119_dir_record *record, uint32_t fs_blocks, uint8_t len_skp, int msgid)
 
int susp_iter_next (SuspIterator *iter, struct susp_sys_user_entry **sue, int flag)
 
void susp_iter_free (SuspIterator *iter)
 
int read_rr_PX (struct susp_sys_user_entry *px, struct stat *st)
 
int read_rr_TF (struct susp_sys_user_entry *tf, struct stat *st)
 
int read_rr_NM (struct susp_sys_user_entry *nm, char **name, int *cont)
 
int read_rr_SL (struct susp_sys_user_entry *sl, char **dest, int *cont)
 
int read_rr_PN (struct susp_sys_user_entry *pn, struct stat *st)
 
int read_aaip_AA (struct susp_sys_user_entry *sue, unsigned char **aa_string, size_t *aa_size, size_t *aa_len, size_t *prev_field, int *is_done, int flag)
 
int read_aaip_AL (struct susp_sys_user_entry *sue, unsigned char **aa_string, size_t *aa_size, size_t *aa_len, size_t *prev_field, int *is_done, int flag)
 
int read_zisofs_ZF (struct susp_sys_user_entry *zf, uint8_t algorithm[2], uint8_t *header_size_div4, uint8_t *block_size_log2, uint64_t *uncompressed_size, int flag)
 

Macro Definition Documentation

◆ ISO_SUSP_MAX_CE_BYTES

#define ISO_SUSP_MAX_CE_BYTES   (1024 * 1024)

Definition at line 75 of file rockridge_read.c.

Function Documentation

◆ read_aaip_AA()

int read_aaip_AA ( struct susp_sys_user_entry sue,
unsigned char **  aa_string,
size_t *  aa_size,
size_t *  aa_len,
size_t *  prev_field,
int *  is_done,
int  flag 
)

Collects the AAIP field string from single AAIP fields. (see doc/susp_aaip_1_0.txt)

Parameters
aa_stringStorage location of the emerging string. Begin with *aa_string == NULL, or own malloc() storage.
aa_sizeCurrent allocated size of aa_string. Begin with *aa_size == 0, or own storage size.
aa_lenCurrent occupied size of aa_string. Begin with *aa_len == 0
prev_fieldReturns the index of start of the previous field in the string.
is_doneThe current completion state of the AAIP field string. Fields will be ignored as soon as it is 1. Begin with *is_done == 0
flagUnused yet. Submit 0.
Returns
1 on success, < 0 on error

Definition at line 493 of file rockridge_read.c.

References susp_sys_user_entry::AL, aaip_AL::comps, susp_sys_user_entry::data, aaip_AL::flags, ISO_OUT_OF_MEM, ISO_SUCCESS, ISO_WRONG_RR, susp_sys_user_entry::len_sue, and susp_sys_user_entry::version.

◆ read_aaip_AL()

int read_aaip_AL ( struct susp_sys_user_entry sue,
unsigned char **  aa_string,
size_t *  aa_size,
size_t *  aa_len,
size_t *  prev_field,
int *  is_done,
int  flag 
)

Collects the AAIP field string from single AL fields. (see doc/susp_aaip_2_0.txt)

Definition at line 567 of file rockridge_read.c.

References susp_sys_user_entry::AL, aaip_AL::comps, susp_sys_user_entry::data, aaip_AL::flags, ISO_OUT_OF_MEM, ISO_SUCCESS, ISO_WRONG_RR, susp_sys_user_entry::len_sue, and susp_sys_user_entry::version.

◆ read_rr_NM()

int read_rr_NM ( struct susp_sys_user_entry nm,
char **  name,
int *  cont 
)

Read a RR NM entry (RRIP, 4.1.4), and appends the name stored there to the given name. You can pass a pointer to NULL as name.

Returns
1 on success, < 0 on error

Definition at line 318 of file rockridge_read.c.

References susp_sys_user_entry::data, rr_NM::flags, ISO_NULL_POINTER, ISO_OUT_OF_MEM, ISO_SUCCESS, iso_util_strcopy(), ISO_WRONG_ARG_VALUE, ISO_WRONG_RR, susp_sys_user_entry::len_sue, rr_NM::name, susp_sys_user_entry::NM, and susp_sys_user_entry::sig.

◆ read_rr_PN()

int read_rr_PN ( struct susp_sys_user_entry pn,
struct stat *  st 
)

Fills a struct stat with the values of a Rock Ridge PN entry (RRIP, 4.1.2).

Returns
1 on success, < 0 on error

Definition at line 457 of file rockridge_read.c.

References susp_sys_user_entry::data, rr_PN::high, ISO_NULL_POINTER, iso_read_bb(), ISO_SUCCESS, ISO_WRONG_ARG_VALUE, ISO_WRONG_RR, susp_sys_user_entry::len_sue, rr_PN::low, susp_sys_user_entry::PN, and susp_sys_user_entry::sig.

◆ read_rr_PX()

int read_rr_PX ( struct susp_sys_user_entry px,
struct stat *  st 
)

Fills a struct stat with the values of a Rock Ridge PX entry (RRIP, 4.1.1).

Returns
1 on success, < 0 on error

Definition at line 190 of file rockridge_read.c.

References susp_sys_user_entry::data, rr_PX::gid, ISO_NULL_POINTER, iso_read_bb(), ISO_WRONG_ARG_VALUE, ISO_WRONG_RR, susp_sys_user_entry::len_sue, rr_PX::links, rr_PX::mode, susp_sys_user_entry::PX, rr_PX::serial, susp_sys_user_entry::sig, and rr_PX::uid.

◆ read_rr_SL()

int read_rr_SL ( struct susp_sys_user_entry sl,
char **  dest,
int *  cont 
)

Read a SL RR entry (RRIP, 4.1.3), checking if the destination continues.

Parameters
cont0 not continue, 1 continue, 2 continue component
Returns
1 on success, < 0 on error

Definition at line 368 of file rockridge_read.c.

References rr_SL::comps, susp_sys_user_entry::data, rr_SL::flags, ISO_NULL_POINTER, ISO_OUT_OF_MEM, ISO_SUCCESS, ISO_UNSUPPORTED_RR, iso_util_strcopy(), ISO_WRONG_ARG_VALUE, susp_sys_user_entry::len_sue, susp_sys_user_entry::sig, and susp_sys_user_entry::SL.

◆ read_rr_TF()

int read_rr_TF ( struct susp_sys_user_entry tf,
struct stat *  st 
)

Fills a struct stat with the values of a Rock Ridge TF entry (RRIP, 4.1.6)

Returns
1 on success, < 0 on error

Definition at line 223 of file rockridge_read.c.

References susp_sys_user_entry::data, rr_TF::flags, iso_datetime_read_17(), iso_datetime_read_7(), ISO_NULL_POINTER, ISO_SUCCESS, ISO_WRONG_ARG_VALUE, ISO_WRONG_RR, susp_sys_user_entry::len_sue, susp_sys_user_entry::sig, rr_TF::t_stamps, and susp_sys_user_entry::TF.

◆ read_zisofs_ZF()

int read_zisofs_ZF ( struct susp_sys_user_entry zf,
uint8_t  algorithm[2],
uint8_t *  header_size_div4,
uint8_t *  block_size_log2,
uint64_t *  uncompressed_size,
int  flag 
)

Reads the zisofs parameters from a ZF field (see doc/zisofs_format.txt and doc/zisofs2_format.txt).

Returns
1 on success, < 0 on error

Definition at line 626 of file rockridge_read.c.

References susp_sys_user_entry::data, ISO_NULL_POINTER, iso_read_bb(), iso_read_lsb64(), ISO_SUCCESS, ISO_WRONG_ARG_VALUE, ISO_WRONG_RR, susp_sys_user_entry::len_sue, zisofs_ZF::parameters, susp_sys_user_entry::sig, susp_sys_user_entry::version, and susp_sys_user_entry::ZF.

◆ susp_iter_free()

void susp_iter_free ( SuspIterator iter)

Free a given susp iterator.

Definition at line 178 of file rockridge_read.c.

References susp_iterator::buffer.

Referenced by read_root_susp_entries().

◆ susp_iter_new()

◆ susp_iter_next()

int susp_iter_next ( SuspIterator iter,
struct susp_sys_user_entry **  sue,
int  flag 
)

Get the next SUSP System User Entry using given iterator.

Parameters
suePointer to the next susp entry. It refers to an internal buffer and it's not guaranteed to be allocated after calling susp_iter_next() again. Thus, if you need to keep some entry you have to do a copy.
Returns
1 on success, 0 if no more entries, < 0 error

Definition at line 81 of file rockridge_read.c.

References susp_iterator::base, susp_CE::block, BLOCK_SIZE, susp_iterator::buffer, susp_sys_user_entry::CE, susp_iterator::ce_block, susp_iterator::ce_len, susp_iterator::ce_off, susp_sys_user_entry::data, DIV_UP, susp_iterator::fs_blocks, iso_msg_submit(), iso_read_bb(), ISO_SUCCESS, ISO_SUSP_MAX_CE_BYTES, ISO_SUSP_WRONG_CE_SIZE, ISO_UNSUPPORTED_SUSP, ISO_WRONG_RR, susp_CE::len, susp_sys_user_entry::len_sue, susp_iterator::msgid, susp_CE::offset, susp_iterator::pos, iso_data_source::read_block, susp_iterator::size, susp_iterator::src, susp_iter_next(), and SUSP_SIG.

Referenced by read_root_susp_entries(), and susp_iter_next().