121c1c48aSSascha Wildner /* 221c1c48aSSascha Wildner * Copyright (c)2004 The DragonFly Project. All rights reserved. 321c1c48aSSascha Wildner * 421c1c48aSSascha Wildner * Redistribution and use in source and binary forms, with or without 521c1c48aSSascha Wildner * modification, are permitted provided that the following conditions 621c1c48aSSascha Wildner * are met: 721c1c48aSSascha Wildner * 821c1c48aSSascha Wildner * Redistributions of source code must retain the above copyright 921c1c48aSSascha Wildner * notice, this list of conditions and the following disclaimer. 1021c1c48aSSascha Wildner * 1121c1c48aSSascha Wildner * Redistributions in binary form must reproduce the above copyright 1221c1c48aSSascha Wildner * notice, this list of conditions and the following disclaimer in 1321c1c48aSSascha Wildner * the documentation and/or other materials provided with the 1421c1c48aSSascha Wildner * distribution. 1521c1c48aSSascha Wildner * 1621c1c48aSSascha Wildner * Neither the name of the DragonFly Project nor the names of its 1721c1c48aSSascha Wildner * contributors may be used to endorse or promote products derived 1821c1c48aSSascha Wildner * from this software without specific prior written permission. 1921c1c48aSSascha Wildner * 2021c1c48aSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2121c1c48aSSascha Wildner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2221c1c48aSSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 2321c1c48aSSascha Wildner * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 2421c1c48aSSascha Wildner * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 2521c1c48aSSascha Wildner * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2621c1c48aSSascha Wildner * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2721c1c48aSSascha Wildner * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2821c1c48aSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2921c1c48aSSascha Wildner * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 3021c1c48aSSascha Wildner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 3121c1c48aSSascha Wildner * OF THE POSSIBILITY OF SUCH DAMAGE. 3221c1c48aSSascha Wildner */ 3321c1c48aSSascha Wildner 3421c1c48aSSascha Wildner /* 3521c1c48aSSascha Wildner * functions.h 3621c1c48aSSascha Wildner * $Id: functions.h,v 1.22 2005/02/06 21:05:18 cpressey Exp $ 3721c1c48aSSascha Wildner */ 3821c1c48aSSascha Wildner 3921c1c48aSSascha Wildner #ifndef __FUNCTIONS_H_ 4021c1c48aSSascha Wildner #define __FUNCTIONS_H_ 4121c1c48aSSascha Wildner 4221c1c48aSSascha Wildner #include <stdio.h> 4321c1c48aSSascha Wildner 4421c1c48aSSascha Wildner #include "libaura/dict.h" 4521c1c48aSSascha Wildner #include "libdfui/dfui.h" 4621c1c48aSSascha Wildner 4721c1c48aSSascha Wildner #include "confed.h" 4821c1c48aSSascha Wildner 4921c1c48aSSascha Wildner struct storage; 5021c1c48aSSascha Wildner 5121c1c48aSSascha Wildner /* 52c4d6eff4SAntonio Huete Jimenez * Function argument flags 53c4d6eff4SAntonio Huete Jimenez */ 54c4d6eff4SAntonio Huete Jimenez #define I_BOOTED_LIVECD 0x1 55c4d6eff4SAntonio Huete Jimenez #define I_UPGRADE_TOOGLE 0x2 56c4d6eff4SAntonio Huete Jimenez 57c4d6eff4SAntonio Huete Jimenez /* 5821c1c48aSSascha Wildner * Installer function arguments. 5921c1c48aSSascha Wildner */ 6021c1c48aSSascha Wildner struct i_fn_args { 6121c1c48aSSascha Wildner struct dfui_connection *c; /* DFUI connection to f/e */ 6221c1c48aSSascha Wildner struct storage *s; /* description of system storage */ 6321c1c48aSSascha Wildner const char *os_root; /* where livecd files live */ 6421c1c48aSSascha Wildner const char *cfg_root; /* where target conf files live */ 6521c1c48aSSascha Wildner const char *tmp; /* directory for temporary files */ 6621c1c48aSSascha Wildner const char *name; /* overrides title of form */ 6721c1c48aSSascha Wildner const char *short_desc; /* overrides short desc */ 6821c1c48aSSascha Wildner const char *long_desc; /* overrides help text */ 6921c1c48aSSascha Wildner const char *cancel_desc; /* overrides cancel button */ 7021c1c48aSSascha Wildner int result; /* result of function */ 7121c1c48aSSascha Wildner FILE *log; /* file to log to */ 7221c1c48aSSascha Wildner struct aura_dict *temp_files; /* names of files to delete on exit */ 7321c1c48aSSascha Wildner struct config_vars *cmd_names; /* names (and paths) of commands to use */ 74c4d6eff4SAntonio Huete Jimenez int flags; /* Option flags */ 7521c1c48aSSascha Wildner }; 7621c1c48aSSascha Wildner 7721c1c48aSSascha Wildner /*** PROTOTYPES ***/ 7821c1c48aSSascha Wildner 7921c1c48aSSascha Wildner /* Installer Context */ 8021c1c48aSSascha Wildner 81*4d4ae2faSAntonio Huete Jimenez struct i_fn_args *i_fn_args_new(const char *, const char *, const char *, 82*4d4ae2faSAntonio Huete Jimenez int, const char *); 8321c1c48aSSascha Wildner void i_fn_args_free(struct i_fn_args *); 8421c1c48aSSascha Wildner 8559b733d3SSascha Wildner void i_log(struct i_fn_args *, const char *, ...) 8659b733d3SSascha Wildner __printflike(2, 3); 8721c1c48aSSascha Wildner 8821c1c48aSSascha Wildner /* General Utilities */ 8921c1c48aSSascha Wildner 9021c1c48aSSascha Wildner void abort_backend(void); 9121c1c48aSSascha Wildner int assert_clean(struct dfui_connection *, const char *, const char *, const char *); 9221c1c48aSSascha Wildner int hex_to_int(const char *, int *); 9321c1c48aSSascha Wildner int first_non_space_char_is(const char *, char); 9421c1c48aSSascha Wildner const char *capacity_to_string(long); 9521c1c48aSSascha Wildner int string_to_capacity(const char *, long *); 9621c1c48aSSascha Wildner unsigned long next_power_of_two(unsigned long); 9721c1c48aSSascha Wildner char *filename_noext(const char *); 9821c1c48aSSascha Wildner 9921c1c48aSSascha Wildner /* Temp Files */ 10021c1c48aSSascha Wildner 10121c1c48aSSascha Wildner int temp_file_add(struct i_fn_args *, const char *); 10221c1c48aSSascha Wildner int temp_files_clean(struct i_fn_args *); 10321c1c48aSSascha Wildner 10421c1c48aSSascha Wildner /* Command Names */ 10521c1c48aSSascha Wildner 10621c1c48aSSascha Wildner const char *cmd_name(const struct i_fn_args *, const char *); 10721c1c48aSSascha Wildner 10821c1c48aSSascha Wildner #endif /* !__FUNCTIONS_H_ */ 109