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>
master
Michael Zaidman 15 years ago committed by Wolfgang Denk
parent 47ab5ad145
commit e070a56c77
  1. 5
      include/post.h
  2. 17
      post/post.c

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

@ -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, static int post_run_single (struct post_test *test,
int test_flags, int flags, unsigned int i) 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) if (test_flags & POST_PREREL)
post_log_mark_start ( test->testid ); post_log_mark_start ( test->testid );
else 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_flags & POST_PREREL) {
if ((*test->test) (flags) == 0) if ((*test->test) (flags) == 0) {
post_log_mark_succ ( test->testid ); post_log_mark_succ ( test->testid );
show_post_progress(i, POST_AFTER, POST_PASSED);
}
else { else {
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL) if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL; gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP) if (test_flags & POST_STOP)
@ -264,6 +275,7 @@ static int post_run_single (struct post_test *test,
if ((*test->test) (flags) != 0) { if ((*test->test) (flags) != 0) {
post_log ("FAILED\n"); post_log ("FAILED\n");
show_boot_progress (-32); show_boot_progress (-32);
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL) if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL; gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP) if (test_flags & POST_STOP)
@ -271,6 +283,7 @@ static int post_run_single (struct post_test *test,
} }
else else
post_log ("PASSED\n"); post_log ("PASSED\n");
show_post_progress(i, POST_AFTER, POST_PASSED);
} }
if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) { if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) {

Loading…
Cancel
Save