Initial content of libisoburn
This commit is contained in:
91
libisoburn/isoburn.h
Normal file
91
libisoburn/isoburn.h
Normal file
@ -0,0 +1,91 @@
|
||||
|
||||
#ifndef Isoburn_includeD
|
||||
#define Isoburn_includeD
|
||||
|
||||
|
||||
/* <<< as long as no inclusion of libisofs.h */
|
||||
struct volset;
|
||||
|
||||
/* for uint8_t */
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
struct isoburn {
|
||||
|
||||
|
||||
/* The libburn drive to which this isoburn object is related */
|
||||
/* Most isoburn calls will use a burn_drive as object handle */
|
||||
struct burn_drive *drive;
|
||||
|
||||
/* -1= inappropriate media state detected */
|
||||
/* 0= libburn multi-session media, resp. undecided yet */
|
||||
/* 1= random access media */
|
||||
/* 2= standard i/o file */
|
||||
int emulation_mode;
|
||||
|
||||
/* Although rarely used, libburn can operate on several */
|
||||
/* drives simultaneously. */
|
||||
/* >>> I propose to design isoburn as chain link of a list with its
|
||||
/* >>> start stored globally. */
|
||||
struct isoburn *prev;
|
||||
struct isoburn *next;
|
||||
|
||||
|
||||
/* --- My part --- */
|
||||
|
||||
/* Start address as given by image examination (bytes, not blocks) */
|
||||
off_t min_start_byte;
|
||||
|
||||
/* Aligned start address to be used for processing (counted in blocks) */
|
||||
int nwa;
|
||||
|
||||
|
||||
/* --- Vreixo's part --- */
|
||||
|
||||
/* The options for reading the old image. */
|
||||
/* target_ropts.size will contain the number of blocks of the image. */
|
||||
struct ecma119_read_opts *target_ropts;
|
||||
|
||||
/* Buffered ISO head from media (should that become part of ecma119_read_opts ?) */
|
||||
uint8_t target_iso_head[65536];
|
||||
|
||||
/* The filesystem structure of the old image from media. */
|
||||
struct volset *target_volset;
|
||||
|
||||
/* The output options of the current run of libisofs. */
|
||||
/* Element .overwrite eventually points to a buffered new head */
|
||||
/* with size fields describing the new size alone, not the */
|
||||
/* new combined size counted from block 0. */
|
||||
/* (This head is to be merged with above target_iso_head.) */
|
||||
struct ecma119_source_opts *new_wopts;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* Creation and disposal function */
|
||||
int isoburn_new(struct isoburn **objpt, int flag);
|
||||
int isoburn_destroy(struct isoburn **objpt, int flag);
|
||||
|
||||
/* Eventual readers for public attributes */
|
||||
/* ( put into separate .h file then ) */
|
||||
int isoburn_get_emulation_mode(struct isoburn *o, int *pt, int flag);
|
||||
int isoburn_get_target_volset(struct isoburn *o, struct volset **pt, int flag);
|
||||
|
||||
/* List management */
|
||||
int isoburn_get_prev(struct isoburn *o, struct isoburn **pt, int flag);
|
||||
int isoburn_get_next(struct isoburn *o, struct isoburn **pt, int flag);
|
||||
int isoburn_destroy_all(struct isoburn **objpt, int flag);
|
||||
int isoburn_link(struct isoburn *o, struct isoburn *link, int flag);
|
||||
int isoburn_count(struct isoburn *o, int flag);
|
||||
int isoburn_by_idx(struct isoburn *o, int idx, struct isoburn **pt, int flag);
|
||||
int isoburn_find_by_drive(struct isoburn **pt, struct burn_drive *d, int flag);
|
||||
|
||||
/* Non API inner interfaces */
|
||||
int isoburn_start_emulation(struct isoburn *o, int flag);
|
||||
int isoburn_new_rwopts(struct isoburn *o);
|
||||
int isoburn_free_rwopts(struct isoburn *o);
|
||||
int isoburn_invalidate_iso(struct isoburn *o, int flag);
|
||||
|
||||
#endif /* Isoburn_includeD */
|
||||
|
Reference in New Issue
Block a user