libisoburn  1.5.4
About: libisoburn is a frontend for the libraries libburn and libisofs which enables creation and expansion of ISO-9660 filesystems on all media and file types supported by libburn. It implements the API and command interpreter of program xorriso, and installs this program as small dynamically linked binary. xorriso is suitable for incremental data backup and for production of bootable ISO 9660 images. A statically linked version is available as GNU xorriso.
  Fossies Dox: libisoburn-1.5.4.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

base_obj.c File Reference
#include <ctype.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include <pthread.h>
#include "xorriso.h"
#include "xorriso_private.h"
#include "base_obj.h"
#include "lib_mgt.h"
Include dependency graph for base_obj.c:

Go to the source code of this file.

Macros

#define Xorriso_rc_nuM   4
 The list of startup file names. More...
 

Functions

void Xorriso__version (int *major, int *minor, int *micro)
 Obtain the three release version numbers of the library. More...
 
int Xorriso__is_compatible (int major, int minor, int micro, int flag)
 Check whether all features of header file xorriso.h from the given major.minor.micro revision triple can be delivered by the library version which is performing this call. More...
 
char * Xorriso__get_patch_level_text (int flag)
 
int Xorriso_new (struct XorrisO **xorriso, char *progname, int flag)
 
int Xorriso_destroy_re (struct XorrisO *m, int flag)
 
int Xorriso_destroy (struct XorrisO **xorriso, int flag)
 
int Xorriso_destroy_node_array (struct XorrisO *xorriso, int flag)
 
int Xorriso_destroy_hln_array (struct XorrisO *xorriso, int flag)
 
int Xorriso_destroy_di_array (struct XorrisO *xorriso, int flag)
 
int Xorriso_new_node_array (struct XorrisO *xorriso, off_t mem_limit, int addon_nodes, int flag)
 
int Xorriso_new_hln_array (struct XorrisO *xorriso, off_t mem_limit, int flag)
 
int Xorriso__preset_signal_behavior (int behavior, int flag)
 
int Xorriso__get_signal_behavior (int flag)
 

Variables

static int Xorriso_signal_behavioR = 1
 
static char Xorriso_sys_rc_nameS [4][80]
 

Macro Definition Documentation

◆ Xorriso_rc_nuM

#define Xorriso_rc_nuM   4

The list of startup file names.

Definition at line 90 of file base_obj.c.

Function Documentation

◆ Xorriso__get_patch_level_text()

char* Xorriso__get_patch_level_text ( int  flag)

Definition at line 83 of file base_obj.c.

84 {
86 }
#define Xorriso_program_patch_leveL
If needed: Something like ".pl01" to indicate a bug fix.
Definition: xorriso.h:83

References Xorriso_program_patch_leveL.

◆ Xorriso__get_signal_behavior()

int Xorriso__get_signal_behavior ( int  flag)

Definition at line 799 of file base_obj.c.

800 {
801  return(Xorriso_signal_behavioR);
802 }
static int Xorriso_signal_behavioR
Definition: base_obj.c:61

References Xorriso_signal_behavioR.

Referenced by Xorriso_option_signal_handling(), Xorriso_set_signal_handling(), and Xorriso_status().

◆ Xorriso__is_compatible()

int Xorriso__is_compatible ( int  major,
int  minor,
int  micro,
int  flag 
)

Check whether all features of header file xorriso.h from the given major.minor.micro revision triple can be delivered by the library version which is performing this call.

if (! Xorriso__is_compatible(Xorriso_header_version_majoR, Xorriso_header_version_minoR, Xorriso_header_version_micrO, 0)) ...refuse to start the program with this dynamic library version...

Since
0.5.8
Parameters
majorobtained at build time
minorobtained at build time
microobtained at build time
flagBitfield for control purposes. Unused yet. Submit 0.
Returns
1= library can work for caller 0= library is not usable in some aspects. Caller must restrict itself to an earlier API version or must not use this library at all.

Definition at line 72 of file base_obj.c.

73 {
74  int own_major, own_minor, own_micro;
75 
76  Xorriso__version(&own_major, &own_minor, &own_micro);
77  return(own_major > major ||
78  (own_major == major && (own_minor > minor ||
79  (own_minor == minor && own_micro >= micro))));
80 }
void Xorriso__version(int *major, int *minor, int *micro)
Obtain the three release version numbers of the library.
Definition: base_obj.c:64

References Xorriso__version().

Referenced by check_compatibility().

◆ Xorriso__preset_signal_behavior()

int Xorriso__preset_signal_behavior ( int  behavior,
int  flag 
)

Definition at line 790 of file base_obj.c.

791 {
792  if(behavior < 0 || behavior > 3)
793  return(0);
794  Xorriso_signal_behavioR= behavior;
795  return(1);
796 }

References Xorriso_signal_behavioR.

Referenced by Xorriso_option_signal_handling().

◆ Xorriso__version()

void Xorriso__version ( int *  major,
int *  minor,
int *  micro 
)

Obtain the three release version numbers of the library.

These are the numbers encountered by the application when linking with libisoburn, i.e. possibly not before run time. Better do not base the fundamental compatibility decision of an application on these numbers. For a reliable check use Xorriso__is_compatible().

Since
0.5.8
Parameters
majorThe maturity version (0 for now, as we are still learning)
minorThe development goal version.
microThe development step version. This has an additional meaning:
         Pare numbers indicate a version with frozen API. I.e. you can
         rely on the same set of features to be present in all
         published releases with that major.minor.micro combination.
         Features of a pare release will stay available and ABI
         compatible as long as the SONAME of libisoburn stays "1".
         Currently there are no plans to ever change the SONAME.

         Odd numbers indicate that API upgrades are in progress.
         I.e. new features might be already present or they might
         be still missing. Newly introduced features may be changed
         incompatibly or even be revoked before release of a pare
         version.
         So micro revisions {1,3,5,7,9} should never be used for
         dynamic linking unless the proper library match can be
         guaranteed by external circumstances.
Returns
1 success, <=0 might in future become an error indication

Definition at line 64 of file base_obj.c.

65 {
69 }
#define Xorriso_header_version_minoR
Definition: xorriso.h:76
#define Xorriso_header_version_micrO
Definition: xorriso.h:77
#define Xorriso_header_version_majoR
These three release version numbers tell the revision of this header file and of the API which it des...
Definition: xorriso.h:75

References Xorriso_header_version_majoR, Xorriso_header_version_micrO, and Xorriso_header_version_minoR.

Referenced by check_compatibility(), main(), and Xorriso__is_compatible().

◆ Xorriso_destroy()

int Xorriso_destroy ( struct XorrisO **  xorriso,
int  flag 
)

Definition at line 592 of file base_obj.c.

593 {
594  struct XorrisO *m;
595  int i;
596 
597  m= *xorriso;
598  if(m==NULL)
599  return(0);
600 
601  /* Give up drives and image to unref all connected xorriso objects */
602  Xorriso_give_up_drive(m, 3);
603 
604  if(m->in_charset!=NULL)
605  free(m->in_charset);
606  if(m->out_charset!=NULL)
607  free(m->out_charset);
610  Xorriso_destroy_re(m,0);
622 
623 #ifdef Xorriso_with_libjtE
624  if(m->libjte_handle)
625  libjte_destroy(&(m->libjte_handle));
626 #endif
627 
630  for(i= 0; i < Xorriso_max_appended_partitionS; i++)
631  if(m->appended_partitions[i] != NULL)
632  free(m->appended_partitions[i]);
633 
634  Xorriso_detach_libraries(m, flag&1);
635 
637  pthread_mutex_destroy(&(m->lib_msg_queue_lock));
639  pthread_mutex_destroy(&(m->result_msglists_lock));
641  pthread_mutex_destroy(&(m->write_to_channel_lock));
643  pthread_mutex_destroy(&(m->problem_status_lock));
644  if(m->msg_watcher_lock_ini)
645  pthread_mutex_destroy(&(m->msg_watcher_lock));
646  if(m->msgw_fetch_lock_ini)
647  pthread_mutex_destroy(&(m->msgw_fetch_lock));
648  Xorriso_sieve_dispose(m, 0);
649 
650  free((char *) m);
651  *xorriso= NULL;
652  return(1);
653 }
int Exclusions_destroy(struct ExclusionS **o, int flag)
Definition: aux_objects.c:710
int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag)
Destroy all list items which are directly or indirectly connected to the given link item.
Definition: aux_objects.c:591
int Xorriso_destroy_node_array(struct XorrisO *xorriso, int flag)
Definition: base_obj.c:656
int Xorriso_destroy_re(struct XorrisO *m, int flag)
Definition: base_obj.c:563
int Xorriso_destroy_di_array(struct XorrisO *xorriso, int flag)
Definition: base_obj.c:699
int Xorriso_destroy_hln_array(struct XorrisO *xorriso, int flag)
Definition: base_obj.c:675
int Checkmediajob_destroy(struct CheckmediajoB **o, int flag)
Definition: check_media.c:604
int Sectorbitmap_destroy(struct SectorbitmaP **o, int flag)
Definition: check_media.c:276
int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
Definition: drive_mgt.c:762
int Xorriso_destroy_all_extf(struct XorrisO *xorriso, int flag)
Definition: filters.c:158
int Xorriso_detach_libraries(struct XorrisO *xorriso, int flag)
Definition: lib_mgt.c:258
struct ExclusionS * joliet_hidings
pthread_mutex_t result_msglists_lock
pthread_mutex_t msg_watcher_lock
int result_msglists_lock_ini
struct ExclusionS * disk_exclusions
int problem_status_lock_ini
char * out_charset
int lib_msg_queue_lock_ini
int msg_watcher_lock_ini
struct ExclusionS * iso_rr_hidings
struct SectorbitmaP * in_sector_map
char * appended_partitions[8]
struct ExclusionS * hfsplus_hidings
int write_to_channel_lock_ini
pthread_mutex_t problem_status_lock
char * in_charset
int msgw_fetch_lock_ini
pthread_mutex_t lib_msg_queue_lock
struct Xorriso_lsT * drive_blacklist
pthread_mutex_t write_to_channel_lock
struct Xorriso_lsT * jigdo_values
struct Xorriso_lsT * jigdo_params
struct Xorriso_lsT * drive_whitelist
struct CheckmediajoB * check_media_default
struct Xorriso_lsT * drive_greylist
pthread_mutex_t msgw_fetch_lock
int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag)
Dispose all filter rules.
Definition: text_io.c:1892
#define Xorriso_max_appended_partitionS

References XorrisO::appended_partitions, XorrisO::check_media_default, Checkmediajob_destroy(), XorrisO::disk_exclusions, XorrisO::drive_blacklist, XorrisO::drive_greylist, XorrisO::drive_whitelist, Exclusions_destroy(), XorrisO::hfsplus_hidings, XorrisO::in_charset, XorrisO::in_sector_map, XorrisO::iso_rr_hidings, XorrisO::jigdo_params, XorrisO::jigdo_values, XorrisO::joliet_hidings, XorrisO::lib_msg_queue_lock, XorrisO::lib_msg_queue_lock_ini, XorrisO::msg_watcher_lock, XorrisO::msg_watcher_lock_ini, XorrisO::msgw_fetch_lock, XorrisO::msgw_fetch_lock_ini, XorrisO::out_charset, XorrisO::problem_status_lock, XorrisO::problem_status_lock_ini, XorrisO::result_msglists_lock, XorrisO::result_msglists_lock_ini, Sectorbitmap_destroy(), XorrisO::write_to_channel_lock, XorrisO::write_to_channel_lock_ini, Xorriso_destroy_all_extf(), Xorriso_destroy_di_array(), Xorriso_destroy_hln_array(), Xorriso_destroy_node_array(), Xorriso_destroy_re(), Xorriso_detach_libraries(), Xorriso_give_up_drive(), Xorriso_lst_destroy_all(), Xorriso_max_appended_partitionS, and Xorriso_sieve_dispose().

Referenced by main(), Xorriso_execv(), and Xorriso_new().

◆ Xorriso_destroy_di_array()

int Xorriso_destroy_di_array ( struct XorrisO xorriso,
int  flag 
)

Definition at line 699 of file base_obj.c.

700 {
701  int i;
702 
703  if(xorriso->di_array != NULL) {
704  for(i= 0; i < xorriso->di_count; i++)
705  if(xorriso->di_array[i] != NULL)
706  iso_node_unref((IsoNode *) xorriso->di_array[i]);
707  free(xorriso->di_array);
708  xorriso->di_array= NULL;
709  }
710  if(xorriso->di_do_widen != NULL) {
711  free(xorriso->di_do_widen);
712  xorriso->di_do_widen= NULL;
713  }
714  Xorriso_lst_destroy_all(&(xorriso->di_disk_paths), 0);
715  Xorriso_lst_destroy_all(&(xorriso->di_iso_paths), 0);
716  xorriso->di_count= 0;
717 
718 #ifdef NIX
719  /* <<< */
720  fprintf(stderr, "xorriso_DEBUG: get_di_count= %lu\n",
721  Xorriso_get_di_counteR);
722 #endif /* NIX */
723 
724  return(1);
725 }
struct Xorriso_lsT * di_disk_paths
struct Xorriso_lsT * di_iso_paths
void ** di_array
char * di_do_widen

References XorrisO::di_array, XorrisO::di_count, XorrisO::di_disk_paths, XorrisO::di_do_widen, XorrisO::di_iso_paths, and Xorriso_lst_destroy_all().

Referenced by Xorriso_aquire_drive(), Xorriso_create_empty_iso(), Xorriso_destroy(), Xorriso_detach_libraries(), Xorriso_finish_hl_update(), and Xorriso_give_up_drive().

◆ Xorriso_destroy_hln_array()

int Xorriso_destroy_hln_array ( struct XorrisO xorriso,
int  flag 
)

Definition at line 675 of file base_obj.c.

676 {
677  int i;
678 
679 
680  if(xorriso->hln_array != NULL && !(flag & 1)) {
681  for(i= 0; i < xorriso->hln_count; i++)
682  iso_node_unref((IsoNode *) xorriso->hln_array[i]);
683  free(xorriso->hln_array);
684  xorriso->hln_array= NULL;
685  xorriso->hln_count= 0;
686  }
687  if(xorriso->hln_targets != NULL) {
688  for(i= 0; i < xorriso->hln_count; i++)
689  if(xorriso->hln_targets[i] != NULL)
690  free(xorriso->hln_targets[i]);
691  free(xorriso->hln_targets);
692  xorriso->hln_targets= NULL;
693  }
694  xorriso->node_targets_availmem= 0;
695  return(1);
696 }
void ** hln_array
void ** hln_targets
off_t node_targets_availmem

References XorrisO::hln_array, XorrisO::hln_count, XorrisO::hln_targets, and XorrisO::node_targets_availmem.

Referenced by Xorriso_aquire_drive(), Xorriso_create_empty_iso(), Xorriso_destroy(), Xorriso_detach_libraries(), Xorriso_give_up_drive(), Xorriso_make_hln_array(), Xorriso_new_hln_array(), and Xorriso_option_hardlinks().

◆ Xorriso_destroy_node_array()

int Xorriso_destroy_node_array ( struct XorrisO xorriso,
int  flag 
)

Definition at line 656 of file base_obj.c.

657 {
658  int i;
659 
660  if(xorriso->node_array != NULL) {
661  for(i= 0; i < xorriso->node_counter; i++)
662  iso_node_unref((IsoNode *) xorriso->node_array[i]);
663  free(xorriso->node_array);
664  }
665  xorriso->node_array= NULL;
666  xorriso->node_counter= xorriso->node_array_size= 0;
669  return(1);
670 }
struct Xorriso_lsT * node_img_prefixes
struct Xorriso_lsT * node_disk_prefixes
void ** node_array
int node_counter
int node_array_size

References XorrisO::node_array, XorrisO::node_array_size, XorrisO::node_counter, XorrisO::node_disk_prefixes, XorrisO::node_img_prefixes, and Xorriso_lst_destroy_all().

Referenced by Xorriso_all_node_array(), Xorriso_destroy(), Xorriso_findi_sorted(), Xorriso_option_extract(), Xorriso_option_map_l(), and Xorriso_restore_sorted().

◆ Xorriso_destroy_re()

int Xorriso_destroy_re ( struct XorrisO m,
int  flag 
)

Definition at line 563 of file base_obj.c.

564 {
565  int i;
566 
567  if(m->re!=NULL) {
568  for(i=0;i<m->re_fill;i++) {
569  if(m->re_constants!=NULL)
570  if(m->re_constants[i]!=NULL)
571  continue; /* ,->re[i] was never subject to regcomp() */
572  regfree(&(m->re[i]));
573  }
574  free((char *) m->re);
575  m->re= NULL;
576  }
577 
578  if(m->re_constants!=NULL) {
579  for(i=0;i<m->re_fill;i++)
580  if(m->re_constants[i]!=NULL)
581  free(m->re_constants[i]);
582  free((char *) m->re_constants);
583  m->re_constants= NULL;
584  }
585  m->re_count= 0;
586  m->re_fill= 0;
587  return(1);
588 }
regex_t * re
char ** re_constants

References XorrisO::re, XorrisO::re_constants, XorrisO::re_count, and XorrisO::re_fill.

Referenced by Xorriso_destroy(), and Xorriso_prepare_regex().

◆ Xorriso_new()

int Xorriso_new ( struct XorrisO **  xorriso,
char *  progname,
int  flag 
)

Definition at line 100 of file base_obj.c.

101 {
102  int i, ret;
103  struct XorrisO *m;
104  char *leafname= NULL;
105 
106  leafname= TSOB_FELD(char, SfileadrL);
107  if(leafname == NULL)
108  return(-1);
109  *xorriso= m= TSOB_FELD(struct XorrisO,1);
110  if(m==NULL) {
111  free(leafname);
112  return(-1);
113  }
114 
115  /* Base initialization by actions which must not fail */
116 
117  m->libs_are_started= 0;
118  strncpy(m->progname,progname,sizeof(m->progname)-1);
119  m->progname[sizeof(m->progname)-1]= 0;
120  if(getcwd(m->initial_wdx,sizeof(m->initial_wdx)-1)==NULL)
121  m->initial_wdx[0]= 0;
122  m->no_rc= 0;
123  m->argument_emulation= 0;
124 
126  for(i=0;i<m->rc_filename_count-1;i++)
127  strcpy(m->rc_filenames[i],Xorriso_sys_rc_nameS[i]);
128  m->rc_filenames[m->rc_filename_count-1][0]= 0;
129  m->arrange_args= 0;
130  m->mkisofsrc_done= 0;
131 
132  m->wdi[0]= 0;
133  strcpy(m->wdx, m->initial_wdx);
134  m->did_something_useful= 0;
135  m->add_plainly= 0;
136  m->split_size= 0;
137  strcpy(m->list_delimiter, "--");
138  m->ino_behavior= 1 | 2 | 4 | 32; /* off:no_lsl_count */
139  m->iso_level= 3;
140  m->iso_level_is_default= 1;
141  m->do_joliet= 0;
142  m->do_hfsplus= 0;
143  m->do_fat= 0;
144  m->do_rockridge= 1;
145  m->do_iso1999= 0;
146  m->ecma119_map= 1;
147  m->joliet_map= 1;
148  m->do_aaip= 0;
149  m->do_md5= 64;
150  m->no_emul_toc= 0;
151  m->do_old_empty= 0;
152  m->scdbackup_tag_name[0]= 0;
153  m->scdbackup_tag_time[0]= 0;
154  m->scdbackup_tag_written[0]= 0;
155  m->scdbackup_tag_listname[0]= 0;
156  m->relax_compliance= 0;
157  m->allow_dir_id_ext_dflt= 1;
158  m->rr_reloc_dir[0]= 0;
159  m->rr_reloc_flags= 1;
160  m->untranslated_name_len= 0;
161  m->do_follow_pattern= 1;
162  m->do_follow_param= 0;
163  m->do_follow_links= 0;
164  m->follow_link_limit= 100;
166  m->resolve_link_rec_limit= 100;
167  m->do_follow_concat= 0;
168  m->do_follow_mount= 1;
169  m->do_global_uid= 0;
170  m->global_uid= 0;
171  m->isofs_size= 0;
172  m->isofs_has_what= 0;
173  m->tree_loaded= 0;
174  m->rr_loaded= 0;
175  strcpy(m->volid, "ISOIMAGE");
176  m->volid_default= 1;
177  m->loaded_volid[0]= 0;
178  m->assert_volid[0]= 0;
179  m->assert_volid_sev[0]= 0;
180  m->preparer_id[0]= 0;
181  m->publisher[0]= 0;
182  m->application_id[0]= 0;
183  m->system_id[0]= 0;
184  m->volset_id[0]= 0;
185  m->copyright_file[0]= 0;
186  m->biblio_file[0]= 0;
187  m->abstract_file[0]= 0;
188  strcpy(m->application_use, " ");
189  m->session_logfile[0]= 0;
190  m->session_lba= -1;
191  m->session_blocks= 0;
192  m->do_global_gid= 0;
193  m->global_gid= 0;
194  m->do_global_mode= 0;
195  m->global_dir_mode= 0555;
196  m->global_file_mode= 0444;
197  m->do_tao= 0;
198  m->filters= NULL;
199  m->filter_list_closed= 0;
200  m->zlib_level_default= m->zlib_level= 6;
202  m->zisofs_by_magic= 0;
203  m->zisofs_v2_enabled= 0;
210  -1.0;
212  m->do_overwrite= 2;
213  m->do_reassure= 0;
214  m->drive_blacklist= NULL;
215  m->drive_greylist= NULL;
216  m->drive_whitelist= NULL;
217  m->toc_emulation_flag= 0;
218  m->image_start_mode= 0;
219  m->image_start_value[0]= 0;
220  m->displacement= 0;
221  m->displacement_sign= 0;
222  m->read_fs= 0;
223  m->drives_exclusive= 1;
224  m->drives_access= 1;
225  m->linux_scsi_dev_family= 0;
226  m->early_stdio_test= 0;
227  m->cache_num_tiles= 0;
228  m->cache_tile_blocks= 0;
229  m->cache_default= 1 | 2;
230  m->do_calm_drive= 1;
231  m->indev[0]= 0;
232  m->in_drive_handle= NULL;
233  m->in_volset_handle= NULL;
234  m->in_charset= NULL;
235  m->isofs_st_out= time(0) - 1;
236  m->indev_is_exclusive= 1;
237  m->indev_access= 1;
238  m->indev_off_adr[0]= 0;
239  m->isofs_st_in= 0;
240  m->volset_change_pending= 0;
241  m->no_volset_present= 0;
242  m->in_sector_map= NULL;
243  m->check_media_default= NULL;
245  m->outdev[0]= 0;
246  m->out_drive_handle= NULL;
247  m->out_charset= NULL;
248  m->dev_fd_1= -1;
249  m->outdev_is_exclusive= 1;
250  m->outdev_access= 1;
251  m->outdev_off_adr[0]= 0;
252  m->grow_blindly_msc2= -1;
253  m->ban_stdio_write= 0;
254  m->do_dummy= 0;
255  m->do_close= 0;
256  m->auto_close= 0;
257  m->write_speed= 0; /* max */
258  m->read_speed= -2; /* do not set */
259  m->read_speed_force= 0;
260  m->read_speed_corr= 250000; /* look back at most 0.25 seconds with _force */
261  m->fs= 4*512; /* 4 MiB */
262  m->padding= 300*1024;
264  m->alignment= 0;
265  m->do_stream_recording= 0;
266  m->dvd_obs= 0;
267  m->modesty_on_drive= 0;
268  m->min_buffer_usec= 5000;
269  m->max_buffer_usec= 25000;
270  m->buffer_timeout_sec= 120;
271  m->min_buffer_percent= 90;
272  m->max_buffer_percent= 95;
273  m->use_immed_bit= 0;
274  m->use_immed_bit_default= 0;
275  m->stdio_sync= 0;
276  m->stdio_sync_is_default= 1;
277  m->keep_boot_image= 0;
278  m->boot_image_cat_path[0]= 0;
279  m->boot_image_cat_hidden= 0;
280  m->boot_count= 0;
281  m->boot_platform_id= 0x00; /* El Torito Boot Catalog Platform ID: 0 = 80x86 */
282  m->patch_isolinux_image= 0;
283  m->boot_image_bin_path[0]= 0;
284  m->boot_image_bin_form[0]= 0;
285  m->boot_image_emul= 0;
286  m->boot_emul_default= 1;
287  m->boot_image_load_size= 4 * 512; /* hearsay out of libisofs/demo/iso.c */
288  m->boot_img_size_default= 1;
289  m->boot_img_full_size= 0;
290  memset(m->boot_id_string, 0, sizeof(m->boot_id_string));
291  memset(m->boot_selection_crit, 0, sizeof(m->boot_selection_crit));
292 
293 #ifdef Xorriso_with_isohybriD
294  m->boot_image_isohybrid= 1;
295 #else
296  m->boot_image_isohybrid= 0;
297 #endif
298 
299  m->boot_efi_default= 0;
300  m->system_area_disk_path[0]= 0;
302  m->system_area_options= 0;
303  m->patch_system_area= 0;
304  m->partition_offset= 0;
307  m->prep_partition[0]= 0;
308  m->efi_boot_partition[0]= 0;
309  for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
310  m->appended_partitions[i]= NULL;
311  m->appended_part_types[i]= 0;
312  memset(m->appended_part_type_guids[i], 0, 16);
313  m->appended_part_gpt_flags[i]= 0;
314  }
315  m->appended_as_gpt= 0;
316  m->appended_as_apm= 0;
317  m->part_like_isohybrid= 0;
318  m->iso_mbr_part_type= -1;
319  memset(m->iso_gpt_type_guid, 0, 16);
320  m->iso_mbr_part_flag= 0;
321  memset(m->gpt_guid, 0, 16);
322  m->gpt_guid_mode= 0;
323  m->ascii_disc_label[0]= 0;
324  m->grub2_sparc_core[0]= 0;
325  memset(m->hfsp_serial_number, 0, 8);
326  m->hfsp_block_size= 0;
327  m->apm_block_size= 0;
328  m->vol_creation_time= 0;
329  m->vol_modification_time= 0;
330  m->vol_expiration_time= 0;
331  m->vol_effective_time= 0;
332  m->vol_uuid[0]= 0;
333  m->all_file_dates[0]= 0;
334  m->do_override_now_time= 0;
335  m->now_time_override= 0;
336 
337 #ifdef Xorriso_with_libjtE
338  m->libjte_handle= NULL;
339 #endif
340 
341  m->jigdo_params= NULL;
342  m->jigdo_values= NULL;
343  m->libjte_params_given= 0;
344  m->loaded_boot_bin_lba= 0;
345  m->loaded_boot_cat_path[0]= 0;
346  m->allow_graft_points= 0;
347  m->allow_restore= 0;
348  m->do_concat_split= 1;
349  m->do_auto_chmod= 0;
350  m->do_restore_sort_lba= 0;
351  m->do_strict_acl= 0;
352  m->dialog= 0;
353  m->buffered_dialog= NULL;
354  m->bsl_interpretation= 0;
355  m->sh_style_result= 0;
356  m->search_mode= 0;
357  m->structured_search= 1;
358  m->do_iso_rr_pattern= 1;
359  m->do_disk_pattern= 2;
360  m->temp_mem_limit= 16*1024*1024;
362  m->file_name_limit= 255;
363  m->disk_exclusions= NULL;
364  m->iso_rr_hidings= NULL;
365  m->joliet_hidings= NULL;
366  m->hfsplus_hidings= NULL;
367  m->disk_excl_mode= 1;
368  m->use_stdin= 0;
369  m->tolerate_stdin_eof= 0;
370  m->result_page_length= 0;
371  m->result_page_width= 80;
372  m->mark_text[0]= 0;
373  m->packet_output= 0;
374  for(i=0; i<4; i++) {
375  m->logfile[i][0]= 0;
376  m->logfile_fp[i]= NULL;
377  }
378  m->pktlog_fp= NULL;
379  m->stderr_fp= NULL;
380  for(i= 0; i < Xorriso_max_outlist_stacK; i++) {
381  m->result_msglists[i]= NULL;
382  m->info_msglists[i]= NULL;
383  m->msglist_flags[i]= 0;
384  }
388  m->msg_watcher_lock_ini= 0;
389  m->msg_watcher_state= 0;
390  m->msgw_result_handler= NULL;
391  m->msgw_result_handle= NULL;
392  m->msgw_info_handler= NULL;
393  m->msgw_info_handle= NULL;
394  m->msgw_stack_handle= -1;
395  m->msgw_msg_pending= 0;
396  m->msgw_fetch_lock_ini= 0;
397  m->msg_sieve= NULL;
398  m->msg_sieve_disabled= 0;
399  m->msglist_stackfill= 0;
401  m->scsi_log= 0;
402  strcpy(m->report_about_text, "UPDATE");
405  strcpy(m->abort_on_text,"FAILURE");
407  m->abort_on_is_default= 1;
408  m->problem_status= 0;
410  m->problem_status_text[0]= 0;
411  m->errfile_log[0]= 0;
412  m->errfile_mode= 0;
413  m->errfile_fp= NULL;
414 
415  m->img_read_error_mode= 1; /* abort faulty image reading with FAILURE */
416  m->extract_error_mode= 1; /* keep extracted files after read error */
417  strcpy(m->return_with_text, "SORRY");
419  m->return_with_value= 32;
422  m->re= NULL;
423  /* >>> ??? how to initialize m->match[0] ? */
424  m->re_constants= NULL;
425  m->re_count= 0;
426  m->re_fill= 0;
427  m->reg_expr[0]= 0;
428  m->run_state= 0;
429  m->is_dialog= 0;
430  m->bar_is_fresh= 0;
431  m->pending_option[0]= 0;
432  m->request_to_abort= 0;
433  m->request_not_to_ask= 0;
434  m->idle_time= 0.0;
435  m->re_failed_at= -1;
436  m->prepended_wd= 0;
437  m->insert_count= 0;
438  m->insert_bytes= 0;
439  m->error_count= 0;
441  m->pacifier_style= 0;
442  m->pacifier_interval= 1.0;
443  m->pacifier_count= 0;
444  m->pacifier_prev_count= 0;
445  m->pacifier_total= 0;
446  m->pacifier_byte_count= 0;
447  m->pacifier_fifo= NULL;
448  m->start_time= 0.0;
449  m->last_update_time= 0.0;
450  m->find_compare_result= 1;
451  m->find_check_md5_result= 0;
452  m->last_abort_file_time= 0.0;
453 
454  m->node_counter= 0;
455  m->node_array_size= 0;
456  m->node_array= NULL;
457  m->node_disk_prefixes= NULL;
458  m->node_img_prefixes= NULL;
459 
460  m->hln_count= 0;
461  m->hln_array= NULL;
462  m->hln_targets= NULL;
463  m->hln_change_pending= 0;
464  m->di_do_widen= NULL;
465  m->di_disk_paths= NULL;
466  m->di_iso_paths= NULL;
467 
468  m->node_targets_availmem= 0;
469 
470  m->di_count= 0;
471  m->di_array= NULL;
472 
473  m->perm_stack= NULL;
474 
475  m->update_flags= 0;
476 
477  m->show_hfs_cmd_flag= 0;
478  m->show_hfs_cmd_count= 0;
479  m->show_hfs_cmds= NULL;
480 
481  m->sparse_min_gap= 0;
482 
483  m->result_line[0]= 0;
484  m->result_line_counter= 0;
485  m->result_page_counter= 0;
486  m->result_open_line_len= 0;
487 
488  m->info_text[0]= 0;
489 
490 
491  /* Here begin actions which might fail */
492 
493  ret= Sfile_leafname(progname, leafname, 0);
494  if(ret<=0)
495  goto failure;
496  if(strcmp(leafname, "osirrox")==0) {
497  m->allow_restore= 1;
498  m->drives_exclusive= 0;
499  m->drives_access= 0;
500  } else if(strcmp(leafname, "xorrisofs")==0 || strcmp(leafname, "genisofs")==0 ||
501  strcmp(leafname, "mkisofs")==0 || strcmp(leafname, "genisoimage")==0) {
502  m->argument_emulation= 1;
503  m->pacifier_style= 1;
504  Xorriso_protect_stdout(*xorriso, 0);
505  } else if(strcmp(leafname, "xorrecord")==0 || strcmp(leafname, "wodim")==0 ||
506  strcmp(leafname, "cdrecord")==0 || strcmp(leafname, "cdrskin")==0) {
507  m->argument_emulation= 2;
508  m->pacifier_style= 2;
509  }
510  ret= Exclusions_new(&(m->disk_exclusions), 0);
511  if(ret<=0)
512  goto failure;
513  ret= Exclusions_new(&(m->iso_rr_hidings), 0);
514  if(ret<=0)
515  goto failure;
516  ret= Exclusions_new(&(m->joliet_hidings), 0);
517  if(ret<=0)
518  goto failure;
519  ret= Exclusions_new(&(m->hfsplus_hidings), 0);
520  if(ret<=0)
521  goto failure;
522  Xorriso_relax_compliance(m, "default", 0);
523  ret= Xorriso_lst_new(&(m->drive_greylist), "/dev", m->drive_greylist, 1);
524  if(ret <= 0)
525  goto failure;
526  Xorriso_preparer_string(m, m->preparer_id, 1); /* avoids library calls */
527  ret= pthread_mutex_init(&(m->lib_msg_queue_lock), NULL);
528  if(ret != 0)
529  goto failure;
531  ret= pthread_mutex_init(&(m->result_msglists_lock), NULL);
532  if(ret != 0)
533  goto failure;
535  ret= pthread_mutex_init(&(m->write_to_channel_lock), NULL);
536  if(ret != 0)
537  goto failure;
539  ret= pthread_mutex_init(&(m->problem_status_lock), NULL);
540  if(ret != 0)
541  goto failure;
543  ret= pthread_mutex_init(&(m->msg_watcher_lock), NULL);
544  if(ret != 0)
545  goto failure;
546  m->msg_watcher_lock_ini= 1;
547  ret= pthread_mutex_init(&(m->msgw_fetch_lock), NULL);
548  if(ret != 0)
549  goto failure;
550  m->msgw_fetch_lock_ini= 1;
551 
552  if(leafname != NULL)
553  free(leafname);
554  return(1);
555 failure:;
556  Xorriso_destroy(xorriso, 0);
557  if(leafname != NULL)
558  free(leafname);
559  return(-1);
560 }
int Xorriso_lst_new(struct Xorriso_lsT **lstring, char *text, struct Xorriso_lsT *link, int flag)
Create a new list item with a 0-terminated text as content.
Definition: aux_objects.c:557
int Exclusions_new(struct ExclusionS **o, int flag)
Definition: aux_objects.c:695
static char Xorriso_sys_rc_nameS[4][80]
Definition: base_obj.c:92
#define Xorriso_rc_nuM
The list of startup file names.
Definition: base_obj.c:90
int Xorriso_destroy(struct XorrisO **xorriso, int flag)
Definition: base_obj.c:592
#define Xorriso_read_quality_invaliD
Definition: check_media.h:89
#define SfileadrL
int Xorriso__text_to_sev(char *severity_name, int *severity_number, int flag)
Definition: lib_mgt.c:387
int Xorriso_preparer_string(struct XorrisO *xorriso, char xorriso_id[129], int flag)
Definition: lib_mgt.c:683
int Sfile_leafname(char *path, char leafname[4096], int flag)
Definition: sfile.c:116
#define TSOB_FELD(typ, count)
Definition: sfile.h:15
double insert_bytes
int iso_mbr_part_type
int system_area_options
char publisher[129]
unsigned char boot_id_string[29]
char volset_id[129]
int do_strict_acl
int part_like_isohybrid
int apm_block_size
char list_delimiter[81]
int zisofs_v2_enabled
off_t pacifier_count
int do_follow_mount
int zisofs_by_magic
int libs_are_started
int do_old_empty
int do_iso_rr_pattern
int msglist_stackfill
uid_t global_uid
int boot_image_cat_hidden
int do_disk_pattern
off_t file_size_limit
FILE * errfile_fp
int pacifier_style
int64_t zisofs_block_number_target
char boot_image_bin_form[16]
int result_page_width
uint8_t appended_part_gpt_flags[8]
int do_global_mode
int linux_scsi_dev_family
int outdev_is_exclusive
FILE * pktlog_fp
mode_t global_file_mode
time_t now_time_override
void * pacifier_fifo
int mkisofsrc_done
double start_time
struct Xorriso_msg_sievE * msg_sieve
int displacement_sign
int do_padding_by_libisofs
char preparer_id[129]
int do_rockridge
int session_blocks
mode_t global_dir_mode
int modesty_on_drive
char boot_image_cat_path[4096]
int zisofs_block_size_default
int read_speed_force
int allow_graft_points
int bsl_interpretation
int resolve_link_rec_count
double error_count
int errfile_mode
int partition_heads_per_cyl
int allow_restore
char efi_boot_partition[4096]
int keep_boot_image
int structured_search
uint32_t isofs_size
off_t sparse_min_gap
char errfile_log[4096]
char progname[4096]
struct PermiteM * perm_stack
char problem_status_text[20]
char abstract_file[38]
int library_msg_direct_print
int zisofs_v2_block_size_default
char indev_off_adr[4096]
struct Xorriso_lsT * filters
int do_follow_pattern
off_t split_size
uint8_t gpt_guid[16]
int boot_platform_id
time_t isofs_st_out
char indev[4096]
int arrange_args
int show_hfs_cmd_count
uint64_t zisofs_max_file_blocks
int boot_image_emul
off_t pacifier_byte_count
int early_stdio_test
int do_follow_links
int do_calm_drive
int appended_as_gpt
int isofs_has_what
int img_read_error_mode
int appended_as_apm
time_t vol_effective_time
int rr_reloc_flags
int re_failed_at
int cache_tile_blocks
int untranslated_name_len
int boot_efi_default
char scdbackup_tag_listname[4096]
int find_check_md5_result
char eternal_problem_status_text[20]
int use_immed_bit
char system_id[33]
int ban_stdio_write
int ino_behavior
uint64_t zisofs_max_total_blocks
char all_file_dates[80]
int status_history_max
int do_overwrite
time_t vol_creation_time
char reg_expr[2 *4096]
int stdio_sync_is_default
int image_start_mode
int zisofs_block_size
int cache_num_tiles
int drives_access
int min_buffer_percent
int prepended_wd
char volid[33]
int boot_img_full_size
char result_line[10 *4096]
int result_page_counter
int volset_change_pending
int sh_style_result
char loaded_boot_cat_path[4096]
int boot_emul_default
int abort_on_severity
int no_volset_present
char scdbackup_tag_written[512]
FILE * stderr_fp
int filter_list_closed
uint8_t hfsp_serial_number[8]
char prep_partition[4096]
gid_t global_gid
struct Xorriso_lsT * info_msglists[Xorriso_max_outlist_stacK]
unsigned char boot_selection_crit[21]
int do_auto_chmod
int drives_exclusive
int bar_is_fresh
int cache_default
int do_restore_sort_lba
char info_text[10 *4096]
uint8_t appended_part_type_guids[8][16]
int do_follow_concat
int max_buffer_usec
char ascii_disc_label[129]
int rc_filename_count
double insert_count
char system_area_disk_path[4096]
uint32_t partition_offset
int msgw_msg_pending
int grow_blindly_msc2
int do_concat_split
char vol_uuid[17]
int iso_mbr_part_flag
int result_page_length
uint32_t displacement
int boot_img_size_default
char logfile[4][4096]
int min_buffer_usec
double zisofs_bpt_discard_free_ratio
uint8_t iso_gpt_type_guid[16]
int file_name_limit
char abort_on_text[20]
int show_hfs_cmd_flag
int buffer_timeout_sec
int patch_system_area
char rr_reloc_dir[256]
double pacifier_interval
int do_override_now_time
int do_global_gid
int request_to_abort
int follow_link_limit
int(* msgw_result_handler)(void *handle, char *text)
int libjte_params_given
int eternal_problem_status
int tolerate_stdin_eof
char scdbackup_tag_name[81]
char ** show_hfs_cmds
int hfsp_block_size
int volid_default
int argument_emulation
off_t pacifier_prev_count
struct Xorriso_lsT * buffered_dialog
int request_not_to_ask
void * in_volset_handle
int partition_secs_per_head
void * msgw_info_handle
int iso_level_is_default
char image_start_value[81]
int update_flags
int system_area_clear_loaded
int do_global_uid
char scdbackup_tag_time[19]
int msg_watcher_state
time_t vol_modification_time
int launch_frontend_banned
int outdev_access
char return_with_text[20]
int hln_change_pending
int max_buffer_percent
char boot_image_bin_path[4096]
int extract_error_mode
void * out_drive_handle
char session_logfile[4096]
uint64_t zisofs_max_total_blocks_default
time_t isofs_st_in
char loaded_volid[33]
int return_with_value
int zlib_level_default
off_t boot_image_load_size
int return_with_severity
char assert_volid[4096]
char initial_wdx[4096]
int check_media_bad_limit
int disk_excl_mode
int resolve_link_rec_limit
int report_about_severity
char wdx[4096]
int zisofs_susp_z2
void * in_drive_handle
int packet_output
char outdev[4096]
char copyright_file[38]
int find_compare_result
int indev_access
struct Xorriso_lsT * result_msglists[Xorriso_max_outlist_stacK]
char application_use[4096]
char application_id[129]
char mark_text[4096]
double last_update_time
char report_about_text[20]
int result_line_counter
int do_follow_param
int temp_mem_limit
int zisofs_v2_block_size
int relax_compliance
char assert_volid_sev[80]
void * msgw_result_handle
char grub2_sparc_core[4096]
char rc_filenames[4][4096]
List of startupfiles.
int msglist_flags[Xorriso_max_outlist_stacK]
int abort_on_is_default
int allow_dir_id_ext_dflt
int patch_isolinux_image
uint64_t zisofs_max_file_blocks_default
char outdev_off_adr[4096]
double idle_time
int zisofs_susp_z2_default
int result_open_line_len
off_t pacifier_total
int gpt_guid_mode
int use_immed_bit_default
int toc_emulation_flag
int do_stream_recording
int(* msgw_info_handler)(void *handle, char *text)
int loaded_boot_bin_lba
char biblio_file[38]
int msgw_stack_handle
time_t vol_expiration_time
int indev_is_exclusive
uint8_t appended_part_types[8]
int msg_sieve_disabled
double last_abort_file_time
int boot_image_isohybrid
char wdi[4096]
int read_speed_corr
FILE * logfile_fp[4]
double zisofs_bpt_discard_free_ratio_default
int problem_status
char pending_option[4096]
int did_something_useful
int Xorriso_protect_stdout(struct XorrisO *xorriso, int flag)
Definition: text_io.c:63
int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode, int flag)
Definition: write_run.c:2473
#define Xorriso_max_outlist_stacK
Maximum number of stacked redirections.
Definition: xorriso.h:998
#define Xorriso_default_file_size_limiT
#define Xorriso_status_history_maX

References XorrisO::abort_on_is_default, XorrisO::abort_on_severity, XorrisO::abort_on_text, XorrisO::abstract_file, XorrisO::add_plainly, XorrisO::alignment, XorrisO::all_file_dates, XorrisO::allow_dir_id_ext_dflt, XorrisO::allow_graft_points, XorrisO::allow_restore, XorrisO::apm_block_size, XorrisO::appended_as_apm, XorrisO::appended_as_gpt, XorrisO::appended_part_gpt_flags, XorrisO::appended_part_type_guids, XorrisO::appended_part_types, XorrisO::appended_partitions, XorrisO::application_id, XorrisO::application_use, XorrisO::argument_emulation, XorrisO::arrange_args, XorrisO::ascii_disc_label, XorrisO::assert_volid, XorrisO::assert_volid_sev, XorrisO::auto_close, XorrisO::ban_stdio_write, XorrisO::bar_is_fresh, XorrisO::biblio_file, XorrisO::boot_count, XorrisO::boot_efi_default, XorrisO::boot_emul_default, XorrisO::boot_id_string, XorrisO::boot_image_bin_form, XorrisO::boot_image_bin_path, XorrisO::boot_image_cat_hidden, XorrisO::boot_image_cat_path, XorrisO::boot_image_emul, XorrisO::boot_image_isohybrid, XorrisO::boot_image_load_size, XorrisO::boot_img_full_size, XorrisO::boot_img_size_default, XorrisO::boot_platform_id, XorrisO::boot_selection_crit, XorrisO::bsl_interpretation, XorrisO::buffer_timeout_sec, XorrisO::buffered_dialog, XorrisO::cache_default, XorrisO::cache_num_tiles, XorrisO::cache_tile_blocks, XorrisO::check_media_bad_limit, XorrisO::check_media_default, XorrisO::copyright_file, XorrisO::dev_fd_1, XorrisO::di_array, XorrisO::di_count, XorrisO::di_disk_paths, XorrisO::di_do_widen, XorrisO::di_iso_paths, XorrisO::dialog, XorrisO::did_something_useful, XorrisO::disk_excl_mode, XorrisO::disk_exclusions, XorrisO::displacement, XorrisO::displacement_sign, XorrisO::do_aaip, XorrisO::do_auto_chmod, XorrisO::do_calm_drive, XorrisO::do_close, XorrisO::do_concat_split, XorrisO::do_disk_pattern, XorrisO::do_dummy, XorrisO::do_fat, XorrisO::do_follow_concat, XorrisO::do_follow_links, XorrisO::do_follow_mount, XorrisO::do_follow_param, XorrisO::do_follow_pattern, XorrisO::do_global_gid, XorrisO::do_global_mode, XorrisO::do_global_uid, XorrisO::do_hfsplus, XorrisO::do_iso1999, XorrisO::do_iso_rr_pattern, XorrisO::do_joliet, XorrisO::do_md5, XorrisO::do_old_empty, XorrisO::do_override_now_time, XorrisO::do_overwrite, XorrisO::do_padding_by_libisofs, XorrisO::do_reassure, XorrisO::do_restore_sort_lba, XorrisO::do_rockridge, XorrisO::do_stream_recording, XorrisO::do_strict_acl, XorrisO::do_tao, XorrisO::drive_blacklist, XorrisO::drive_greylist, XorrisO::drive_whitelist, XorrisO::drives_access, XorrisO::drives_exclusive, XorrisO::dvd_obs, XorrisO::early_stdio_test, XorrisO::ecma119_map, XorrisO::efi_boot_partition, XorrisO::errfile_fp, XorrisO::errfile_log, XorrisO::errfile_mode, XorrisO::error_count, XorrisO::eternal_problem_status, XorrisO::eternal_problem_status_text, Exclusions_new(), XorrisO::extract_error_mode, XorrisO::file_name_limit, XorrisO::file_size_limit, XorrisO::filter_list_closed, XorrisO::filters, XorrisO::find_check_md5_result, XorrisO::find_compare_result, XorrisO::follow_link_limit, XorrisO::fs, XorrisO::global_dir_mode, XorrisO::global_file_mode, XorrisO::global_gid, XorrisO::global_uid, XorrisO::gpt_guid, XorrisO::gpt_guid_mode, XorrisO::grow_blindly_msc2, XorrisO::grub2_sparc_core, XorrisO::hfsp_block_size, XorrisO::hfsp_serial_number, XorrisO::hfsplus_hidings, XorrisO::hln_array, XorrisO::hln_change_pending, XorrisO::hln_count, XorrisO::hln_targets, XorrisO::idle_time, XorrisO::image_start_mode, XorrisO::image_start_value, XorrisO::img_read_error_mode, XorrisO::in_charset, XorrisO::in_drive_handle, XorrisO::in_sector_map, XorrisO::in_volset_handle, XorrisO::indev, XorrisO::indev_access, XorrisO::indev_is_exclusive, XorrisO::indev_off_adr, XorrisO::info_msglists, XorrisO::info_text, XorrisO::initial_wdx, XorrisO::ino_behavior, XorrisO::insert_bytes, XorrisO::insert_count, XorrisO::is_dialog, XorrisO::iso_gpt_type_guid, XorrisO::iso_level, XorrisO::iso_level_is_default, XorrisO::iso_mbr_part_flag, XorrisO::iso_mbr_part_type, XorrisO::iso_rr_hidings, XorrisO::isofs_has_what, XorrisO::isofs_size, XorrisO::isofs_st_in, XorrisO::isofs_st_out, XorrisO::jigdo_params, XorrisO::jigdo_values, XorrisO::joliet_hidings, XorrisO::joliet_map, XorrisO::keep_boot_image, XorrisO::last_abort_file_time, XorrisO::last_update_time, XorrisO::launch_frontend_banned, XorrisO::lib_msg_queue_lock, XorrisO::lib_msg_queue_lock_ini, XorrisO::libjte_params_given, XorrisO::library_msg_direct_print, XorrisO::libs_are_started, XorrisO::linux_scsi_dev_family, XorrisO::list_delimiter, XorrisO::loaded_boot_bin_lba, XorrisO::loaded_boot_cat_path, XorrisO::loaded_volid, XorrisO::logfile, XorrisO::logfile_fp, XorrisO::mark_text, XorrisO::max_buffer_percent, XorrisO::max_buffer_usec, XorrisO::min_buffer_percent, XorrisO::min_buffer_usec, XorrisO::mkisofsrc_done, XorrisO::modesty_on_drive, XorrisO::msg_sieve, XorrisO::msg_sieve_disabled, XorrisO::msg_watcher_lock, XorrisO::msg_watcher_lock_ini, XorrisO::msg_watcher_state, XorrisO::msglist_flags, XorrisO::msglist_stackfill, XorrisO::msgw_fetch_lock, XorrisO::msgw_fetch_lock_ini, XorrisO::msgw_info_handle, XorrisO::msgw_info_handler, XorrisO::msgw_msg_pending, XorrisO::msgw_result_handle, XorrisO::msgw_result_handler, XorrisO::msgw_stack_handle, XorrisO::no_emul_toc, XorrisO::no_rc, XorrisO::no_volset_present, XorrisO::node_array, XorrisO::node_array_size, XorrisO::node_counter, XorrisO::node_disk_prefixes, XorrisO::node_img_prefixes, XorrisO::node_targets_availmem, XorrisO::now_time_override, XorrisO::out_charset, XorrisO::out_drive_handle, XorrisO::outdev, XorrisO::outdev_access, XorrisO::outdev_is_exclusive, XorrisO::outdev_off_adr, XorrisO::pacifier_byte_count, XorrisO::pacifier_count, XorrisO::pacifier_fifo, XorrisO::pacifier_interval, XorrisO::pacifier_prev_count, XorrisO::pacifier_style, XorrisO::pacifier_total, XorrisO::packet_output, XorrisO::padding, XorrisO::part_like_isohybrid, XorrisO::partition_heads_per_cyl, XorrisO::partition_offset, XorrisO::partition_secs_per_head, XorrisO::patch_isolinux_image, XorrisO::patch_system_area, XorrisO::pending_option, XorrisO::perm_stack, XorrisO::pktlog_fp, XorrisO::prep_partition, XorrisO::preparer_id, XorrisO::prepended_wd, XorrisO::problem_status, XorrisO::problem_status_lock, XorrisO::problem_status_lock_ini, XorrisO::problem_status_text, XorrisO::progname, XorrisO::publisher, XorrisO::rc_filename_count, XorrisO::rc_filenames, XorrisO::re, XorrisO::re_constants, XorrisO::re_count, XorrisO::re_failed_at, XorrisO::re_fill, XorrisO::read_fs, XorrisO::read_speed, XorrisO::read_speed_corr, XorrisO::read_speed_force, XorrisO::reg_expr, XorrisO::relax_compliance, XorrisO::report_about_severity, XorrisO::report_about_text, XorrisO::request_not_to_ask, XorrisO::request_to_abort, XorrisO::resolve_link_rec_count, XorrisO::resolve_link_rec_limit, XorrisO::result_line, XorrisO::result_line_counter, XorrisO::result_msglists, XorrisO::result_msglists_lock, XorrisO::result_msglists_lock_ini, XorrisO::result_open_line_len, XorrisO::result_page_counter, XorrisO::result_page_length, XorrisO::result_page_width, XorrisO::return_with_severity, XorrisO::return_with_text, XorrisO::return_with_value, XorrisO::rr_loaded, XorrisO::rr_reloc_dir, XorrisO::rr_reloc_flags, XorrisO::run_state, XorrisO::scdbackup_tag_listname, XorrisO::scdbackup_tag_name, XorrisO::scdbackup_tag_time, XorrisO::scdbackup_tag_written, XorrisO::scsi_log, XorrisO::search_mode, XorrisO::session_blocks, XorrisO::session_lba, XorrisO::session_logfile, Sfile_leafname(), SfileadrL, XorrisO::sh_style_result, XorrisO::show_hfs_cmd_count, XorrisO::show_hfs_cmd_flag, XorrisO::show_hfs_cmds, XorrisO::sparse_min_gap, XorrisO::split_size, XorrisO::start_time, XorrisO::status_history_max, XorrisO::stderr_fp, XorrisO::stdio_sync, XorrisO::stdio_sync_is_default, XorrisO::structured_search, XorrisO::system_area_clear_loaded, XorrisO::system_area_disk_path, XorrisO::system_area_options, XorrisO::system_id, XorrisO::temp_mem_limit, XorrisO::toc_emulation_flag, XorrisO::tolerate_stdin_eof, XorrisO::tree_loaded, TSOB_FELD, XorrisO::untranslated_name_len, XorrisO::update_flags, XorrisO::use_immed_bit, XorrisO::use_immed_bit_default, XorrisO::use_stdin, XorrisO::vol_creation_time, XorrisO::vol_effective_time, XorrisO::vol_expiration_time, XorrisO::vol_modification_time, XorrisO::vol_uuid, XorrisO::volid, XorrisO::volid_default, XorrisO::volset_change_pending, XorrisO::volset_id, XorrisO::wdi, XorrisO::wdx, XorrisO::write_speed, XorrisO::write_to_channel_lock, XorrisO::write_to_channel_lock_ini, Xorriso__text_to_sev(), Xorriso_default_file_size_limiT, Xorriso_destroy(), Xorriso_lst_new(), Xorriso_max_appended_partitionS, Xorriso_max_outlist_stacK, Xorriso_preparer_string(), Xorriso_protect_stdout(), Xorriso_rc_nuM, Xorriso_read_quality_invaliD, Xorriso_relax_compliance(), Xorriso_status_history_maX, Xorriso_sys_rc_nameS, XorrisO::zisofs_block_number_target, XorrisO::zisofs_block_size, XorrisO::zisofs_block_size_default, XorrisO::zisofs_bpt_discard_free_ratio, XorrisO::zisofs_bpt_discard_free_ratio_default, XorrisO::zisofs_by_magic, XorrisO::zisofs_max_file_blocks, XorrisO::zisofs_max_file_blocks_default, XorrisO::zisofs_max_total_blocks, XorrisO::zisofs_max_total_blocks_default, XorrisO::zisofs_susp_z2, XorrisO::zisofs_susp_z2_default, XorrisO::zisofs_v2_block_size, XorrisO::zisofs_v2_block_size_default, XorrisO::zisofs_v2_enabled, XorrisO::zlib_level, and XorrisO::zlib_level_default.

Referenced by main().

◆ Xorriso_new_hln_array()

int Xorriso_new_hln_array ( struct XorrisO xorriso,
off_t  mem_limit,
int  flag 
)

Definition at line 752 of file base_obj.c.

753 {
754  int i;
755 
756  Xorriso_destroy_hln_array(xorriso, flag & 1);
757  if(xorriso->hln_count <= 0)
758  return(1);
759 
760  if(!(flag & 1)) {
761  xorriso->hln_array= calloc(xorriso->hln_count, sizeof(char *));
762  if(xorriso->hln_array == NULL) {
763  Xorriso_no_malloc_memory(xorriso, NULL, 0);
764  return(-1);
765  }
766  for(i= 0; i < xorriso->hln_count; i++)
767  xorriso->hln_array[i]= NULL;
768  }
769 
770  xorriso->hln_targets= calloc(xorriso->hln_count, sizeof(char *));
771  if(xorriso->hln_targets == NULL) {
772  if(!(flag & 1)) {
773  free(xorriso->hln_array);
774  xorriso->hln_array= NULL;
775  }
776  Xorriso_no_malloc_memory(xorriso, NULL, 0);
777  return(-1);
778  }
779  for(i= 0; i < xorriso->hln_count; i++)
780  xorriso->hln_targets[i]= NULL;
781  xorriso->node_targets_availmem= mem_limit
782  - xorriso->hln_count * sizeof(void *)
783  - xorriso->hln_count * sizeof(char *);
784  if(xorriso->node_targets_availmem < 0)
785  xorriso->node_targets_availmem= 0;
786  return(1);
787 }
int Xorriso_no_malloc_memory(struct XorrisO *xorriso, char **to_free, int flag)
Definition: text_io.c:4077

References XorrisO::hln_array, XorrisO::hln_count, XorrisO::hln_targets, XorrisO::node_targets_availmem, Xorriso_destroy_hln_array(), and Xorriso_no_malloc_memory().

Referenced by Xorriso_make_hln_array(), and Xorriso_remake_hln_array().

◆ Xorriso_new_node_array()

int Xorriso_new_node_array ( struct XorrisO xorriso,
off_t  mem_limit,
int  addon_nodes,
int  flag 
)

Definition at line 728 of file base_obj.c.

730 {
731  int i;
732 
733  if(xorriso->node_counter <= 0)
734  return(1);
735 
736  xorriso->node_array= calloc(xorriso->node_counter + addon_nodes,
737  sizeof(IsoNode *));
738  if(xorriso->node_array == NULL) {
739  Xorriso_no_malloc_memory(xorriso, NULL, 0);
740  return(-1);
741  }
742  for(i= 0; i < xorriso->node_counter + addon_nodes; i++)
743  xorriso->node_array[i]= NULL;
744  xorriso->node_array_size= xorriso->node_counter + addon_nodes;
745  xorriso->node_counter= 0;
746  return(1);
747 }

References XorrisO::node_array, XorrisO::node_array_size, XorrisO::node_counter, and Xorriso_no_malloc_memory().

Referenced by Xorriso_all_node_array(), Xorriso_findi_sorted(), and Xorriso_restore_sorted().

Variable Documentation

◆ Xorriso_signal_behavioR

int Xorriso_signal_behavioR = 1
static

Definition at line 61 of file base_obj.c.

Referenced by Xorriso__get_signal_behavior(), and Xorriso__preset_signal_behavior().

◆ Xorriso_sys_rc_nameS

char Xorriso_sys_rc_nameS[4][80]
static
Initial value:
= {
"/etc/default/xorriso",
"/etc/opt/xorriso/rc",
"/etc/xorriso/xorriso.conf",
"placeholder for $HOME/.xorrisorc"
}

Definition at line 92 of file base_obj.c.

Referenced by Xorriso_new().