Imported Upstream version 3.2.0
[debian/amanda] / common-src / conffile.h
index 5e9ccbb663b1195e3d3bb100dc48e4083246cd4d..cedc4a7fcd8bb8cbe0ee3058fc21db317c68a466 100644 (file)
@@ -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);