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)  

drive.h File Reference
#include "libburn.h"
#include "toc.h"
#include "structure.h"
#include <pthread.h>
Include dependency graph for drive.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  burn_disc_mode_demands
 

Macros

#define LEAD_IN   1
 
#define GAP   2
 
#define USER_DATA   3
 
#define LEAD_OUT   4
 
#define SYNC   5
 
#define SESSION_LEADOUT_ENTRY(d, s)   (d)->toc->session[(s)].leadout_entry
 
#define CURRENT_SESSION_START(d)
 
#define SESSION_END(d, s)    TOC_ENTRY_PLBA((d)->toc, SESSION_LEADOUT_ENTRY((d), (s)))
 
#define PREVIOUS_SESSION_END(d)    TOC_ENTRY_PLBA((d)->toc, SESSION_LEADOUT_ENTRY((d), (d)->currsession-1))
 
#define LAST_SESSION_END(d)
 

Functions

struct burn_driveburn_drive_register (struct burn_drive *)
 
int burn_drive_unregister (struct burn_drive *d)
 
unsigned int burn_drive_count (void)
 
int burn_drives_are_clear (int flag)
 
int burn_sector_length_write (struct burn_drive *d)
 
int burn_track_control (struct burn_drive *d, int)
 
void burn_write_empty_sector (int fd)
 
void burn_write_empty_subcode (int fd)
 
void burn_drive_free (struct burn_drive *d)
 
void burn_drive_free_all (void)
 
int burn_drive_scan_sync (struct burn_drive_info *drives[], unsigned int *n_drives, int flag)
 
void burn_disc_erase_sync (struct burn_drive *d, int fast)
 
int burn_drive_get_block_types (struct burn_drive *d, enum burn_write_types write_type)
 
int burn_drive_is_open (struct burn_drive *d)
 
int burn_drive_is_occupied (struct burn_drive *d)
 
int burn_drive_forget (struct burn_drive *d, int force)
 
int burn_drive_convert_fs_adr_sub (char *path, char adr[], int *rec_count)
 
int burn_setup_drive (struct burn_drive *d, char *fname)
 
struct burn_driveburn_drive_finish_enum (struct burn_drive *d)
 
int burn_drive_inquire_media (struct burn_drive *d)
 
int burn_drive_mark_unready (struct burn_drive *d, int flag)
 
int burn_speed_descriptor_new (struct burn_speed_descriptor **s, struct burn_speed_descriptor *prev, struct burn_speed_descriptor *next, int flag)
 
int burn_speed_descriptor_destroy (struct burn_speed_descriptor **s, int flag)
 
int burn_mdata_free_subs (struct scsi_mode_data *m)
 
void burn_disc_format_sync (struct burn_drive *d, off_t size, int flag)
 
int burn_disc_get_write_mode_demands (struct burn_disc *disc, struct burn_write_opts *opts, struct burn_disc_mode_demands *result, int flag)
 
int burn_drive__fd_from_special_adr (char *adr)
 
int burn_drive_find_by_thread_pid (struct burn_drive **d, pid_t pid, pthread_t tid)
 
int burn_drive_is_banned (char *device_address)
 
int burn_drive_whitelist_count (void)
 
char * burn_drive_whitelist_item (int idx, int flag)
 
int burn_drive_is_listed (char *path, struct burn_drive **found, int flag)
 
int burn_abort_5 (int patience, int(*pacifier_func)(void *handle, int patience, int elapsed), void *handle, int elapsed, int flag)
 
int burn_drive_send_default_page_05 (struct burn_drive *d, int flag)
 
int burn_feature_descr_new (struct burn_feature_descr **new, unsigned char *descr, int descr_len, int flag)
 
int burn_feature_descr_free (struct burn_feature_descr **new, int flag)
 
int burn_drive_has_feature (struct burn_drive *d, int feature_code, struct burn_feature_descr **descr, int flag)
 
int burn_drive_grab_stdio (struct burn_drive *d, int flag)
 

Macro Definition Documentation

◆ CURRENT_SESSION_START

#define CURRENT_SESSION_START (   d)
Value:
burn_msf_to_lba(d->toc->session[d->currsession].start_m, \
d->toc->session[d->currsession].start_s, \
d->toc->session[d->currsession].start_f)
int burn_msf_to_lba(int m, int s, int f)
Definition: sector.c:759

Definition at line 32 of file drive.h.

◆ GAP

#define GAP   2

Definition at line 25 of file drive.h.

◆ LAST_SESSION_END

#define LAST_SESSION_END (   d)
Value:
TOC_ENTRY_PLBA((d)->toc, \
SESSION_LEADOUT_ENTRY((d), (d)->toc->sessions-1))
#define SESSION_LEADOUT_ENTRY(d, s)
Definition: drive.h:30
#define TOC_ENTRY_PLBA(drive, entrynum)
Definition: toc.h:32

Definition at line 43 of file drive.h.

◆ LEAD_IN

#define LEAD_IN   1

Definition at line 24 of file drive.h.

◆ LEAD_OUT

#define LEAD_OUT   4

Definition at line 27 of file drive.h.

◆ PREVIOUS_SESSION_END

#define PREVIOUS_SESSION_END (   d)     TOC_ENTRY_PLBA((d)->toc, SESSION_LEADOUT_ENTRY((d), (d)->currsession-1))

Definition at line 40 of file drive.h.

◆ SESSION_END

#define SESSION_END (   d,
 
)     TOC_ENTRY_PLBA((d)->toc, SESSION_LEADOUT_ENTRY((d), (s)))

Definition at line 37 of file drive.h.

◆ SESSION_LEADOUT_ENTRY

#define SESSION_LEADOUT_ENTRY (   d,
 
)    (d)->toc->session[(s)].leadout_entry

Definition at line 30 of file drive.h.

◆ SYNC

#define SYNC   5

Definition at line 28 of file drive.h.

◆ USER_DATA

#define USER_DATA   3

Definition at line 26 of file drive.h.

Function Documentation

◆ burn_abort_5()

int burn_abort_5 ( int  patience,
int(*)(void *handle, int patience, int elapsed)  pacifier_func,
void *  handle,
int  elapsed,
int  flag 
)

◆ burn_disc_erase_sync()

◆ burn_disc_format_sync()

◆ burn_disc_get_write_mode_demands()

◆ burn_drive__fd_from_special_adr()

int burn_drive__fd_from_special_adr ( char *  adr)

◆ burn_drive_convert_fs_adr_sub()

int burn_drive_convert_fs_adr_sub ( char *  path,
char  adr[],
int *  rec_count 
)

Try to convert a given existing filesystem address into a persistent drive address.

Definition at line 2291 of file drive.c.

References burn_drive_adr_debug_msg(), BURN_DRIVE_ADR_LEN, burn_drive_find_devno(), burn_drive_find_scsi_equiv(), burn_drive_is_enumerable_adr(), and burn_drive_resolve_link().

Referenced by burn_drive_convert_fs_adr(), and burn_drive_resolve_link().

◆ burn_drive_count()

unsigned int burn_drive_count ( void  )

Definition at line 243 of file drive.c.

References drivetop.

Referenced by burn_drive_scan_sync(), and burn_drives_are_clear().

◆ burn_drive_find_by_thread_pid()

int burn_drive_find_by_thread_pid ( struct burn_drive **  d,
pid_t  pid,
pthread_t  tid 
)

Definition at line 3386 of file drive.c.

References drive_array, and drivetop.

Referenced by burn_builtin_abort_handler().

◆ burn_drive_finish_enum()

◆ burn_drive_forget()

int burn_drive_forget ( struct burn_drive d,
int  force 
)

◆ burn_drive_free()

◆ burn_drive_free_all()

void burn_drive_free_all ( void  )

Definition at line 155 of file drive.c.

References burn_drive_free(), drive_array, and drivetop.

Referenced by burn_drive_info_free(), burn_drive_scan_sync(), and burn_finish().

◆ burn_drive_get_block_types()

int burn_drive_get_block_types ( struct burn_drive d,
enum burn_write_types  write_type 
)

◆ burn_drive_grab_stdio()

◆ burn_drive_has_feature()

int burn_drive_has_feature ( struct burn_drive d,
int  feature_code,
struct burn_feature_descr **  descr,
int  flag 
)

◆ burn_drive_inquire_media()

◆ burn_drive_is_banned()

int burn_drive_is_banned ( char *  device_address)

Definition at line 1723 of file drive.c.

◆ burn_drive_is_listed()

int burn_drive_is_listed ( char *  path,
struct burn_drive **  found,
int  flag 
)

◆ burn_drive_is_occupied()

int burn_drive_is_occupied ( struct burn_drive d)

Inquires drive status in respect to degree of app usage.

Parameters
return-2 = drive is forgotten -1 = drive is closed (i.e. released explicitly) 0 = drive is open, not grabbed (after scan, before 1st grab) 1 = drive is grabbed but BURN_DRIVE_IDLE 2 = drive is grabbed, synchronous read/write interrupted 10 = drive is grabbing (BURN_DRIVE_GRABBING) 100 = drive is busy in cancelable state 1000 = drive is in non-cancelable state Expect a monotonous sequence of usage severity to emerge in future.

Definition at line 203 of file drive.c.

References BURN_DRIVE_GRABBING, BURN_DRIVE_IDLE, burn_drive_is_open(), BURN_DRIVE_READING, BURN_DRIVE_READING_SYNC, BURN_DRIVE_WRITING, BURN_DRIVE_WRITING_LEADIN, BURN_DRIVE_WRITING_LEADOUT, BURN_DRIVE_WRITING_PREGAP, BURN_DRIVE_WRITING_SYNC, burn_drive::busy, burn_drive::global_index, and burn_drive::released.

Referenced by burn_abort_5(), and burn_drive_forget().

◆ burn_drive_is_open()

int burn_drive_is_open ( struct burn_drive d)

◆ burn_drive_mark_unready()

◆ burn_drive_register()

◆ burn_drive_scan_sync()

int burn_drive_scan_sync ( struct burn_drive_info drives[],
unsigned int *  n_drives,
int  flag 
)

◆ burn_drive_send_default_page_05()

◆ burn_drive_unregister()

int burn_drive_unregister ( struct burn_drive d)

Definition at line 600 of file drive.c.

References burn_drive_free(), drivetop, and burn_drive::global_index.

Referenced by burn_drive_finish_enum().

◆ burn_drive_whitelist_count()

int burn_drive_whitelist_count ( void  )

Definition at line 1736 of file drive.c.

References enumeration_whitelist_top.

Referenced by single_enumerate().

◆ burn_drive_whitelist_item()

char* burn_drive_whitelist_item ( int  idx,
int  flag 
)

Definition at line 1741 of file drive.c.

References enumeration_whitelist, and enumeration_whitelist_top.

Referenced by single_enumerate().

◆ burn_drives_are_clear()

int burn_drives_are_clear ( int  flag)

Definition at line 810 of file drive.c.

References burn_drive_count(), drive_array, burn_drive::global_index, and burn_drive::released.

Referenced by burn_drive_scan(), and burn_finish().

◆ burn_feature_descr_free()

int burn_feature_descr_free ( struct burn_feature_descr **  new,
int  flag 
)

◆ burn_feature_descr_new()

int burn_feature_descr_new ( struct burn_feature_descr **  new,
unsigned char *  descr,
int  descr_len,
int  flag 
)

◆ burn_mdata_free_subs()

int burn_mdata_free_subs ( struct scsi_mode_data m)

◆ burn_sector_length_write()

int burn_sector_length_write ( struct burn_drive d)

◆ burn_setup_drive()

◆ burn_speed_descriptor_destroy()

int burn_speed_descriptor_destroy ( struct burn_speed_descriptor **  s,
int  flag 
)

◆ burn_speed_descriptor_new()

◆ burn_track_control()

int burn_track_control ( struct burn_drive d,
int   
)

◆ burn_write_empty_sector()

void burn_write_empty_sector ( int  fd)

◆ burn_write_empty_subcode()

void burn_write_empty_subcode ( int  fd)