1*21c1c48aSSascha Wildner /* 2*21c1c48aSSascha Wildner * Copyright (c)2004 The DragonFly Project. All rights reserved. 3*21c1c48aSSascha Wildner * 4*21c1c48aSSascha Wildner * Redistribution and use in source and binary forms, with or without 5*21c1c48aSSascha Wildner * modification, are permitted provided that the following conditions 6*21c1c48aSSascha Wildner * are met: 7*21c1c48aSSascha Wildner * 8*21c1c48aSSascha Wildner * Redistributions of source code must retain the above copyright 9*21c1c48aSSascha Wildner * notice, this list of conditions and the following disclaimer. 10*21c1c48aSSascha Wildner * 11*21c1c48aSSascha Wildner * Redistributions in binary form must reproduce the above copyright 12*21c1c48aSSascha Wildner * notice, this list of conditions and the following disclaimer in 13*21c1c48aSSascha Wildner * the documentation and/or other materials provided with the 14*21c1c48aSSascha Wildner * distribution. 15*21c1c48aSSascha Wildner * 16*21c1c48aSSascha Wildner * Neither the name of the DragonFly Project nor the names of its 17*21c1c48aSSascha Wildner * contributors may be used to endorse or promote products derived 18*21c1c48aSSascha Wildner * from this software without specific prior written permission. 19*21c1c48aSSascha Wildner * 20*21c1c48aSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*21c1c48aSSascha Wildner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*21c1c48aSSascha Wildner * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23*21c1c48aSSascha Wildner * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24*21c1c48aSSascha Wildner * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 25*21c1c48aSSascha Wildner * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26*21c1c48aSSascha Wildner * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27*21c1c48aSSascha Wildner * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28*21c1c48aSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29*21c1c48aSSascha Wildner * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30*21c1c48aSSascha Wildner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 31*21c1c48aSSascha Wildner * OF THE POSSIBILITY OF SUCH DAMAGE. 32*21c1c48aSSascha Wildner */ 33*21c1c48aSSascha Wildner 34*21c1c48aSSascha Wildner /* 35*21c1c48aSSascha Wildner * functions.h 36*21c1c48aSSascha Wildner * $Id: functions.h,v 1.22 2005/02/06 21:05:18 cpressey Exp $ 37*21c1c48aSSascha Wildner */ 38*21c1c48aSSascha Wildner 39*21c1c48aSSascha Wildner #ifndef __FUNCTIONS_H_ 40*21c1c48aSSascha Wildner #define __FUNCTIONS_H_ 41*21c1c48aSSascha Wildner 42*21c1c48aSSascha Wildner #include <stdio.h> 43*21c1c48aSSascha Wildner 44*21c1c48aSSascha Wildner #include "libaura/dict.h" 45*21c1c48aSSascha Wildner #include "libdfui/dfui.h" 46*21c1c48aSSascha Wildner 47*21c1c48aSSascha Wildner #include "confed.h" 48*21c1c48aSSascha Wildner 49*21c1c48aSSascha Wildner struct storage; 50*21c1c48aSSascha Wildner 51*21c1c48aSSascha Wildner /* 52*21c1c48aSSascha Wildner * Installer function arguments. 53*21c1c48aSSascha Wildner */ 54*21c1c48aSSascha Wildner struct i_fn_args { 55*21c1c48aSSascha Wildner struct dfui_connection *c; /* DFUI connection to f/e */ 56*21c1c48aSSascha Wildner struct storage *s; /* description of system storage */ 57*21c1c48aSSascha Wildner const char *os_root; /* where livecd files live */ 58*21c1c48aSSascha Wildner const char *cfg_root; /* where target conf files live */ 59*21c1c48aSSascha Wildner const char *tmp; /* directory for temporary files */ 60*21c1c48aSSascha Wildner const char *name; /* overrides title of form */ 61*21c1c48aSSascha Wildner const char *short_desc; /* overrides short desc */ 62*21c1c48aSSascha Wildner const char *long_desc; /* overrides help text */ 63*21c1c48aSSascha Wildner const char *cancel_desc; /* overrides cancel button */ 64*21c1c48aSSascha Wildner int result; /* result of function */ 65*21c1c48aSSascha Wildner FILE *log; /* file to log to */ 66*21c1c48aSSascha Wildner struct aura_dict *temp_files; /* names of files to delete on exit */ 67*21c1c48aSSascha Wildner struct config_vars *cmd_names; /* names (and paths) of commands to use */ 68*21c1c48aSSascha Wildner int booted_from_livecd; /* system is running from livecd */ 69*21c1c48aSSascha Wildner int upgrade_menu_toggle; /* toggle the experimental upgrade option */ 70*21c1c48aSSascha Wildner }; 71*21c1c48aSSascha Wildner 72*21c1c48aSSascha Wildner /*** PROTOTYPES ***/ 73*21c1c48aSSascha Wildner 74*21c1c48aSSascha Wildner /* Installer Context */ 75*21c1c48aSSascha Wildner 76*21c1c48aSSascha Wildner struct i_fn_args *i_fn_args_new(const char *, const char *, int, const char *); 77*21c1c48aSSascha Wildner void i_fn_args_free(struct i_fn_args *); 78*21c1c48aSSascha Wildner 79*21c1c48aSSascha Wildner void i_log(struct i_fn_args *, const char *, ...); 80*21c1c48aSSascha Wildner 81*21c1c48aSSascha Wildner /* General Utilities */ 82*21c1c48aSSascha Wildner 83*21c1c48aSSascha Wildner void abort_backend(void); 84*21c1c48aSSascha Wildner int assert_clean(struct dfui_connection *, const char *, const char *, const char *); 85*21c1c48aSSascha Wildner int hex_to_int(const char *, int *); 86*21c1c48aSSascha Wildner int first_non_space_char_is(const char *, char); 87*21c1c48aSSascha Wildner const char *capacity_to_string(long); 88*21c1c48aSSascha Wildner int string_to_capacity(const char *, long *); 89*21c1c48aSSascha Wildner unsigned long next_power_of_two(unsigned long); 90*21c1c48aSSascha Wildner char *filename_noext(const char *); 91*21c1c48aSSascha Wildner 92*21c1c48aSSascha Wildner /* Temp Files */ 93*21c1c48aSSascha Wildner 94*21c1c48aSSascha Wildner int temp_file_add(struct i_fn_args *, const char *); 95*21c1c48aSSascha Wildner int temp_files_clean(struct i_fn_args *); 96*21c1c48aSSascha Wildner 97*21c1c48aSSascha Wildner /* Command Names */ 98*21c1c48aSSascha Wildner 99*21c1c48aSSascha Wildner const char *cmd_name(const struct i_fn_args *, const char *); 100*21c1c48aSSascha Wildner 101*21c1c48aSSascha Wildner #endif /* !__FUNCTIONS_H_ */ 102