X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=common-src%2Fconffile.h;h=cedc4a7fcd8bb8cbe0ee3058fc21db317c68a466;hb=b116e9366c7b2ea2c2eb53b0a13df4090e176235;hp=5e9ccbb663b1195e3d3bb100dc48e4083246cd4d;hpb=fd48f3e498442f0cbff5f3606c7c403d0566150e;p=debian%2Famanda diff --git a/common-src/conffile.h b/common-src/conffile.h index 5e9ccbb..cedc4a7 100644 --- a/common-src/conffile.h +++ b/common-src/conffile.h @@ -148,7 +148,9 @@ typedef enum { ALGO_LARGEST, ALGO_LARGESTFIT, ALGO_SMALLEST, + ALGO_SMALLESTFIT, /* for internal use */ ALGO_LAST, + ALGO_LASTFIT, /* for internal use */ ALGO_ALGO /* sentinel */ } taperalgo_t; @@ -202,6 +204,19 @@ typedef GHashTable* proplist_t; /* A GSlist where each element is a 'char*' */ typedef GSList* identlist_t; +/* part_cache_types */ +typedef enum { + PART_CACHE_TYPE_NONE, + PART_CACHE_TYPE_MEMORY, + PART_CACHE_TYPE_DISK, +} part_cache_type_t; + +/* recovery_limit */ +typedef struct { + gboolean same_host; + GSList *match_pats; +} recovery_limit_t; + /* Names for the type of value in a val_t. Mostly for internal use, but useful * for wrapping val_t's, too. */ typedef enum { @@ -231,6 +246,8 @@ typedef enum { CONFTYPE_IDENTLIST, CONFTYPE_DATA_PATH, CONFTYPE_AUTOLABEL, + CONFTYPE_PART_CACHE_TYPE, + CONFTYPE_RECOVERY_LIMIT, } conftype_t; /* A "seen" struct. Rather than allocate strings all over the place, this @@ -259,6 +276,7 @@ typedef struct val_s { estimatelist_t estimatelist; identlist_t identlist; autolabel_t autolabel; + recovery_limit_t recovery_limit; } v; seen_t seen; conftype_t type; @@ -293,6 +311,8 @@ execute_where_t val_t_to_execute_where(val_t *); send_amreport_t val_t_to_send_amreport(val_t *); data_path_t val_t_to_data_path(val_t *); autolabel_t val_t_to_autolabel(val_t *); +part_cache_type_t val_t_to_part_cache_type(val_t *); +recovery_limit_t *val_t_to_recovery_limit(val_t *); /* Has the given val_t been seen in a configuration file or config overwrite? * @@ -342,6 +362,9 @@ autolabel_t val_t_to_autolabel(val_t *); #define val_t__execute_where(val) ((val)->v.i) #define val_t__data_path(val) ((val)->v.i) #define val_t__autolabel(val) ((val)->v.autolabel) +#define val_t__part_cache_type(val) ((val)->v.i) +#define val_t__recovery_limit(val) ((val)->v.recovery_limit) + /* * Parameters * @@ -401,7 +424,6 @@ typedef enum { CNF_ETIMEOUT, CNF_DTIMEOUT, CNF_CTIMEOUT, - CNF_TAPEBUFS, CNF_DEVICE_OUTPUT_BUFFER_SIZE, CNF_PRINTER, CNF_MAILER, @@ -448,6 +470,8 @@ typedef enum { CNF_HOLDINGDISK, CNF_AUTOLABEL, CNF_DEBUG_DAYS, + CNF_TAPER_PARALLEL_WRITE, + CNF_RECOVERY_LIMIT, CNF_CNF /* sentinel */ } confparm_key; @@ -497,6 +521,8 @@ val_t *getconf(confparm_key key); #define getconf_proplist(key) (val_t_to_proplist(getconf((key)))) #define getconf_send_amreport(key) (val_t_to_send_amreport(getconf((key)))) #define getconf_autolabel(key) (val_t_to_autolabel(getconf((key)))) +#define getconf_part_cache_type(key) (val_t_to_part_cache_type(getconf((key)))) +#define getconf_recovery_limit(key) (val_t_to_recovery_limit(getconf((key)))) /* Get a list of names for subsections of the given type * @@ -560,7 +586,10 @@ typedef enum { TAPETYPE_LENGTH, TAPETYPE_FILEMARK, TAPETYPE_SPEED, - TAPETYPE_FILE_PAD, + TAPETYPE_PART_SIZE, + TAPETYPE_PART_CACHE_TYPE, + TAPETYPE_PART_CACHE_DIR, + TAPETYPE_PART_CACHE_MAX_SIZE, TAPETYPE_TAPETYPE /* sentinel */ } tapetype_key; @@ -604,14 +633,17 @@ char *tapetype_name(tapetype_t *ttyp); * @param ttyp: the tapetype to examine * @returns: various */ -#define tapetype_get_comment(ttyp) (val_t_to_str(tapetype_getconf((ttyp), TAPETYPE_COMMENT))) -#define tapetype_get_lbl_templ(ttyp) (val_t_to_str(tapetype_getconf((ttyp), TAPETYPE_LBL_TEMPL))) -#define tapetype_get_blocksize(ttyp) (val_t_to_size(tapetype_getconf((ttyp), TAPETYPE_BLOCKSIZE))) -#define tapetype_get_readblocksize(ttyp) (val_t_to_size(tapetype_getconf((ttyp), TAPETYPE_READBLOCKSIZE))) -#define tapetype_get_length(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_LENGTH))) -#define tapetype_get_filemark(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_FILEMARK))) -#define tapetype_get_speed(ttyp) (val_t_to_int(tapetype_getconf((ttyp), TAPETYPE_SPEED))) -#define tapetype_get_file_pad(ttyp) (val_t_to_boolean(tapetype_getconf((ttyp), TAPETYPE_FILE_PAD))) +#define tapetype_get_comment(ttyp) (val_t_to_str(tapetype_getconf((ttyp), TAPETYPE_COMMENT))) +#define tapetype_get_lbl_templ(ttyp) (val_t_to_str(tapetype_getconf((ttyp), TAPETYPE_LBL_TEMPL))) +#define tapetype_get_blocksize(ttyp) (val_t_to_size(tapetype_getconf((ttyp), TAPETYPE_BLOCKSIZE))) +#define tapetype_get_readblocksize(ttyp) (val_t_to_size(tapetype_getconf((ttyp), TAPETYPE_READBLOCKSIZE))) +#define tapetype_get_length(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_LENGTH))) +#define tapetype_get_filemark(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_FILEMARK))) +#define tapetype_get_speed(ttyp) (val_t_to_int(tapetype_getconf((ttyp), TAPETYPE_SPEED))) +#define tapetype_get_part_size(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_PART_SIZE))) +#define tapetype_get_part_cache_type(ttyp) (val_t_to_part_cache_type(tapetype_getconf((ttyp), TAPETYPE_PART_CACHE_TYPE))) +#define tapetype_get_part_cache_dir(ttyp) (val_t_to_str(tapetype_getconf((ttyp), TAPETYPE_PART_CACHE_DIR))) +#define tapetype_get_part_cache_max_size(ttyp) (val_t_to_int64(tapetype_getconf((ttyp), TAPETYPE_PART_CACHE_MAX_SIZE))) /* * Dumptype parameter access @@ -663,6 +695,8 @@ typedef enum { DUMPTYPE_PROPERTY, DUMPTYPE_CLIENT_PORT, DUMPTYPE_DATA_PATH, + DUMPTYPE_ALLOW_SPLIT, + DUMPTYPE_RECOVERY_LIMIT, DUMPTYPE_DUMPTYPE /* sentinel */ } dumptype_key; @@ -751,6 +785,8 @@ char *dumptype_name(dumptype_t *dtyp); #define dumptype_get_property(dtyp) (val_t_to_proplist(dumptype_getconf((dtyp), DUMPTYPE_PROPERTY))) #define dumptype_get_client_port(dtyp) (val_t_to_str(dumptype_getconf((dtyp), DUMPTYPE_CLIENT_PORT))) #define dumptype_get_data_path(dtyp) (val_t_to_data_path(dumptype_getconf((dtyp), DUMPTYPE_DATA_PATH))) +#define dumptype_get_allow_split(dtyp) (val_t_to_boolean(dumptype_getconf((dtyp), DUMPTYPE_ALLOW_SPLIT))) +#define dumptype_get_recovery_limit(dtyp) (val_t_to_recovery_limit(dumptype_getconf((dtyp), DUMPTYPE_RECOVERY_LIMIT))) /* * Interface parameter access @@ -1097,11 +1133,11 @@ char *changer_config_name(changer_config_t *devconf); * @returns: various */ -#define changer_config_get_comment(devconf) (val_t_to_str(changer_config_getconf((devconf), DEVICE_CONFIG_COMMENT))) -#define changer_config_get_tapedev(devconf) (val_t_to_str(changer_config_getconf((devconf), DEVICE_CONFIG_TAPEDEV))) -#define changer_config_get_tpchanger(devconf) (val_t_to_str(changer_config_getconf((devconf), DEVICE_CONFIG_TPCHANGER))) -#define changer_config_get_changerdev(devconf) (val_t_to_str(changer_config_getconf((devconf), DEVICE_CONFIG_CHANGERDEV))) -#define changer_config_get_changerfile(devconf) (val_t_to_str(changer_config_getconf((devconf), DEVICE_CONFIG_CHANGERFILE))) +#define changer_config_get_comment(devconf) (val_t_to_str(changer_config_getconf((devconf), CHANGER_CONFIG_COMMENT))) +#define changer_config_get_tapedev(devconf) (val_t_to_str(changer_config_getconf((devconf), CHANGER_CONFIG_TAPEDEV))) +#define changer_config_get_tpchanger(devconf) (val_t_to_str(changer_config_getconf((devconf), CHANGER_CONFIG_TPCHANGER))) +#define changer_config_get_changerdev(devconf) (val_t_to_str(changer_config_getconf((devconf), CHANGER_CONFIG_CHANGERDEV))) +#define changer_config_get_changerfile(devconf) (val_t_to_str(changer_config_getconf((devconf), CHANGER_CONFIG_CHANGERFILE))) changer_config_t *read_changer_config(char *name, FILE *from, char *fname, int *linenum); changer_config_t *lookup_changer_config(char *identifier); @@ -1388,13 +1424,6 @@ gint64 find_multiplier(char * casestr); */ int string_to_boolean(const char *str); -/* Add all properties to an ARGV - * - * @param argvchild: Pointer to the ARGV. - * @param proplist: The property list - */ -void property_add_to_argv(GPtrArray *argv_ptr, proplist_t proplist); - /* Return a pointer to a static string for the data_path */ char *data_path_to_string(data_path_t data_path);