@@ -2654,6 +2654,25 @@ mod tests {
2654
2654
0x03 , 0xa5 , 0x0c , 0x00 , // lw a0, 0(s9); test MMIO read
2655
2655
0x93 , 0x05 , 0x70 , 0x60 , // li a1, 0x0607;
2656
2656
0x23 , 0xa0 , 0xbc , 0x00 , // sw a1, 0(s9); test MMIO write
2657
+ //sbi_console_getchar
2658
+ 0x01 , 0x45 , // li a0, 0
2659
+ 0x81 , 0x45 , // li a1, 0
2660
+ 0x01 , 0x46 , // li a2, 0
2661
+ 0x81 , 0x46 , // li a3, 0
2662
+ 0x01 , 0x47 , // li a4, 0
2663
+ 0x81 , 0x47 , // li a5, 0
2664
+ 0x01 , 0x48 , // li a6, 0
2665
+ 0x89 , 0x48 , // li a7, 2
2666
+ 0x73 , 0x00 , 0x00 , 0x00 , //ecall
2667
+ //sbi_console_putchar
2668
+ 0x81 , 0x45 , // li a1, 0
2669
+ 0x01 , 0x46 , // li a2, 0
2670
+ 0x81 , 0x46 , // li a3, 0
2671
+ 0x01 , 0x47 , // li a4, 0
2672
+ 0x81 , 0x47 , // li a5, 0
2673
+ 0x01 , 0x48 , // li a6, 0
2674
+ 0x85 , 0x48 , // li a7, 1
2675
+ 0x73 , 0x00 , 0x00 , 0x00 , //ecall
2657
2676
0x6f , 0x00 , 0x00 , 0x00 , // j .; shouldn't get here, but if so loop forever
2658
2677
] ;
2659
2678
@@ -2725,6 +2744,12 @@ mod tests {
2725
2744
. map ( |page| page. count_ones ( ) )
2726
2745
. sum ( ) ;
2727
2746
assert_eq ! ( dirty_pages, 1 ) ;
2747
+ }
2748
+ VcpuExit :: SbiExt0_1ConsoleGetchar ( data) => {
2749
+ data[ 0 ] = 0x2a ;
2750
+ }
2751
+ VcpuExit :: SbiExt0_1ConsolePutchar ( data) => {
2752
+ assert_eq ! ( data, 0x2a ) ;
2728
2753
break ;
2729
2754
}
2730
2755
r => panic ! ( "unexpected exit reason: {:?}" , r) ,
0 commit comments