1 #include <xen/delay.h> 2 #include <xen/init.h> 3 #include <xen/lib.h> 4 #include <xen/softirq.h> 5 #include <xen/warning.h> 6 7 #define WARNING_ARRAY_SIZE 20 8 static unsigned int __initdata nr_warnings; 9 static const char *__initdata warnings[WARNING_ARRAY_SIZE]; 10 warning_add(const char * warning)11void __init warning_add(const char *warning) 12 { 13 if ( nr_warnings >= WARNING_ARRAY_SIZE ) 14 panic("Too many pieces of warning text\n"); 15 16 warnings[nr_warnings] = warning; 17 nr_warnings++; 18 } 19 warning_print(void)20void __init warning_print(void) 21 { 22 unsigned int i, j; 23 24 if ( !nr_warnings ) 25 return; 26 27 printk("***************************************************\n"); 28 29 for ( i = 0; i < nr_warnings; i++ ) 30 { 31 printk("%s", warnings[i]); 32 printk("***************************************************\n"); 33 process_pending_softirqs(); 34 } 35 36 for ( i = 0; i < 3; i++ ) 37 { 38 printk("%u... ", 3 - i); 39 for ( j = 0; j < 100; j++ ) 40 { 41 process_pending_softirqs(); 42 mdelay(10); 43 } 44 } 45 printk("\n"); 46 } 47 48 /* 49 * Local variables: 50 * mode: C 51 * c-file-style: "BSD" 52 * c-basic-offset: 4 53 * tab-width: 4 54 * indent-tabs-mode: nil 55 * End: 56 */ 57