iso_data_source Struct Reference

#include <libisofs.h>


Detailed Description

Data source used by libisofs for reading an existing image.

It offers homogeneous read access to arbitrary blocks to different sources for images, such as .iso files, CD/DVD drives, etc...

To create a multisession image, libisofs needs a IsoDataSource, that the user must provide. The function iso_data_source_new_from_file() constructs an IsoDataSource that uses POSIX I/O functions to access data. You can use it with regular .iso images, and also with block devices that represent a drive.

Since:
0.6.2

Definition at line 231 of file libisofs.h.


Data Fields

int version
unsigned int refcount
 Reference count for the data source.
int(* open )(IsoDataSource *src)
 Opens the given source.
int(* close )(IsoDataSource *src)
 Close a given source, freeing all system resources previously grabbed in open().
int(* read_block )(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
 Read an arbitrary block (2048 bytes) of data from the source.
void(* free_data )(IsoDataSource *)
 Clean up the source specific data.
void * data
 Source specific data.

Field Documentation

Definition at line 235 of file libisofs.h.

Reference count for the data source.

Should be 1 when a new source is created. Don't access it directly, but with iso_data_source_ref() and iso_data_source_unref() functions.

Definition at line 242 of file libisofs.h.

Opens the given source.

You must open() the source before any attempt to read data from it. The open is the right place for grabbing the underlying resources.

Returns:
1 if success, < 0 on error

Close a given source, freeing all system resources previously grabbed in open().

Returns:
1 if success, < 0 on error

int(* iso_data_source::read_block)(IsoDataSource *src, uint32_t lba, uint8_t *buffer)

Read an arbitrary block (2048 bytes) of data from the source.

Parameters:
lba Block to be read.
buffer Buffer where the data will be written. It should have at least 2048 bytes.
Returns:
1 if success, < 0 on error

Clean up the source specific data.

Never call this directly, it is automatically called by iso_data_source_unref() when refcount reach 0.

Source specific data.

Definition at line 284 of file libisofs.h.


The documentation for this struct was generated from the following file:

Generated on Wed Aug 6 12:55:38 2008 for libisofs by  doxygen 1.5.6