POST: add progress API

Add POST progress API implemented as weak calls before and after
each call to the POST test callback in the post_run_single routine
of the post.c file.

Signed-off-by: Michael Zaidman <michael.zaidman@gmail.com>
Acked-by: Detlev Zundel <dzu@denx.de>
This commit is contained in:
Michael Zaidman 2010-03-01 11:47:36 +02:00 committed by Wolfgang Denk
parent 47ab5ad145
commit e070a56c77
2 changed files with 20 additions and 2 deletions

View File

@ -53,6 +53,11 @@
#define POST_FAIL_SAVE 0x80
#define POST_BEFORE 1
#define POST_AFTER 0
#define POST_PASSED 1
#define POST_FAILED 0
#ifndef __ASSEMBLY__
struct post_test {

View File

@ -231,6 +231,12 @@ static void post_get_flags (int *test_flags)
}
}
void __show_post_progress (unsigned int test_num, int before, int result)
{
}
void show_post_progress (unsigned int, int, int)
__attribute__((weak, alias("__show_post_progress")));
static int post_run_single (struct post_test *test,
int test_flags, int flags, unsigned int i)
{
@ -248,13 +254,18 @@ static int post_run_single (struct post_test *test,
if (test_flags & POST_PREREL)
post_log_mark_start ( test->testid );
else
post_log ("POST %s ", test->cmd);
post_log ("POST %s ", test->cmd);
}
show_post_progress(i, POST_BEFORE, POST_FAILED);
if (test_flags & POST_PREREL) {
if ((*test->test) (flags) == 0)
if ((*test->test) (flags) == 0) {
post_log_mark_succ ( test->testid );
show_post_progress(i, POST_AFTER, POST_PASSED);
}
else {
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
@ -264,6 +275,7 @@ static int post_run_single (struct post_test *test,
if ((*test->test) (flags) != 0) {
post_log ("FAILED\n");
show_boot_progress (-32);
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
@ -271,6 +283,7 @@ static int post_run_single (struct post_test *test,
}
else
post_log ("PASSED\n");
show_post_progress(i, POST_AFTER, POST_PASSED);
}
if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) {