main: Move boot_delay code into its own function

Move this code into its own function, since it clutters up main_loop().

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2013-05-15 06:23:56 +00:00 committed by Tom Rini
parent 063ae006ae
commit bc2b4c27d0

View File

@ -341,27 +341,14 @@ static void process_fdt_options(const void *blob)
} }
#endif /* CONFIG_OF_CONTROL */ #endif /* CONFIG_OF_CONTROL */
#ifdef CONFIG_BOOTDELAY
/****************************************************************************/ static void process_boot_delay(void)
void main_loop (void)
{ {
#ifndef CONFIG_SYS_HUSH_PARSER #ifdef CONFIG_OF_CONTROL
static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
int len;
int rc = 1;
int flag;
#endif
#if defined(CONFIG_BOOTDELAY) && defined(CONFIG_OF_CONTROL)
char *env; char *env;
#endif #endif
#if defined(CONFIG_BOOTDELAY)
char *s; char *s;
int bootdelay; int bootdelay;
#endif
#ifdef CONFIG_PREBOOT
char *p;
#endif
#ifdef CONFIG_BOOTCOUNT_LIMIT #ifdef CONFIG_BOOTCOUNT_LIMIT
unsigned long bootcount = 0; unsigned long bootcount = 0;
unsigned long bootlimit = 0; unsigned long bootlimit = 0;
@ -369,8 +356,6 @@ void main_loop (void)
char bcs_set[16]; char bcs_set[16];
#endif /* CONFIG_BOOTCOUNT_LIMIT */ #endif /* CONFIG_BOOTCOUNT_LIMIT */
bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
#ifdef CONFIG_BOOTCOUNT_LIMIT #ifdef CONFIG_BOOTCOUNT_LIMIT
bootcount = bootcount_load(); bootcount = bootcount_load();
bootcount++; bootcount++;
@ -381,50 +366,6 @@ void main_loop (void)
bootlimit = bcs ? simple_strtoul (bcs, NULL, 10) : 0; bootlimit = bcs ? simple_strtoul (bcs, NULL, 10) : 0;
#endif /* CONFIG_BOOTCOUNT_LIMIT */ #endif /* CONFIG_BOOTCOUNT_LIMIT */
#ifdef CONFIG_MODEM_SUPPORT
debug ("DEBUG: main_loop: do_mdm_init=%d\n", do_mdm_init);
if (do_mdm_init) {
char *str = strdup(getenv("mdm_cmd"));
setenv ("preboot", str); /* set or delete definition */
if (str != NULL)
free (str);
mdm_init(); /* wait for modem connection */
}
#endif /* CONFIG_MODEM_SUPPORT */
#ifdef CONFIG_VERSION_VARIABLE
{
setenv ("ver", version_string); /* set version variable */
}
#endif /* CONFIG_VERSION_VARIABLE */
#ifdef CONFIG_SYS_HUSH_PARSER
u_boot_hush_start ();
#endif
#if defined(CONFIG_HUSH_INIT_VAR)
hush_init_var ();
#endif
#ifdef CONFIG_PREBOOT
if ((p = getenv ("preboot")) != NULL) {
# ifdef CONFIG_AUTOBOOT_KEYED
int prev = disable_ctrlc(1); /* disable Control C checking */
# endif
run_command_list(p, -1, 0);
# ifdef CONFIG_AUTOBOOT_KEYED
disable_ctrlc(prev); /* restore Control C checking */
# endif
}
#endif /* CONFIG_PREBOOT */
#if defined(CONFIG_UPDATE_TFTP)
update_tftp (0UL);
#endif /* CONFIG_UPDATE_TFTP */
#if defined(CONFIG_BOOTDELAY)
s = getenv ("bootdelay"); s = getenv ("bootdelay");
bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY; bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY;
@ -473,26 +414,88 @@ void main_loop (void)
debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>"); debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
if (bootdelay != -1 && s && !abortboot(bootdelay)) { if (bootdelay != -1 && s && !abortboot(bootdelay)) {
# ifdef CONFIG_AUTOBOOT_KEYED #ifdef CONFIG_AUTOBOOT_KEYED
int prev = disable_ctrlc(1); /* disable Control C checking */ int prev = disable_ctrlc(1); /* disable Control C checking */
# endif #endif
run_command_list(s, -1, 0); run_command_list(s, -1, 0);
# ifdef CONFIG_AUTOBOOT_KEYED #ifdef CONFIG_AUTOBOOT_KEYED
disable_ctrlc(prev); /* restore Control C checking */ disable_ctrlc(prev); /* restore Control C checking */
# endif #endif
} }
# ifdef CONFIG_MENUKEY #ifdef CONFIG_MENUKEY
if (menukey == CONFIG_MENUKEY) { if (menukey == CONFIG_MENUKEY) {
s = getenv("menucmd"); s = getenv("menucmd");
if (s) if (s)
run_command_list(s, -1, 0); run_command_list(s, -1, 0);
} }
#endif /* CONFIG_MENUKEY */ #endif /* CONFIG_MENUKEY */
}
#endif /* CONFIG_BOOTDELAY */ #endif /* CONFIG_BOOTDELAY */
void main_loop(void)
{
#ifndef CONFIG_SYS_HUSH_PARSER
static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
int len;
int rc = 1;
int flag;
#endif
#ifdef CONFIG_PREBOOT
char *p;
#endif
bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
#ifdef CONFIG_MODEM_SUPPORT
debug("DEBUG: main_loop: do_mdm_init=%d\n", do_mdm_init);
if (do_mdm_init) {
char *str = strdup(getenv("mdm_cmd"));
setenv("preboot", str); /* set or delete definition */
if (str != NULL)
free(str);
mdm_init(); /* wait for modem connection */
}
#endif /* CONFIG_MODEM_SUPPORT */
#ifdef CONFIG_VERSION_VARIABLE
{
setenv("ver", version_string); /* set version variable */
}
#endif /* CONFIG_VERSION_VARIABLE */
#ifdef CONFIG_SYS_HUSH_PARSER
u_boot_hush_start();
#endif
#if defined(CONFIG_HUSH_INIT_VAR)
hush_init_var();
#endif
#ifdef CONFIG_PREBOOT
p = getenv("preboot");
if (p != NULL) {
# ifdef CONFIG_AUTOBOOT_KEYED
int prev = disable_ctrlc(1); /* disable Control C checking */
# endif
run_command_list(p, -1, 0);
# ifdef CONFIG_AUTOBOOT_KEYED
disable_ctrlc(prev); /* restore Control C checking */
# endif
}
#endif /* CONFIG_PREBOOT */
#if defined(CONFIG_UPDATE_TFTP)
update_tftp(0UL);
#endif /* CONFIG_UPDATE_TFTP */
#ifdef CONFIG_BOOTDELAY
process_boot_delay();
#endif
/* /*
* Main Loop for Monitor Command Processing * Main Loop for Monitor Command Processing
*/ */