trap-main.c00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00052 #include "trap.h"
00053
00054 extern int global_result;
00055
00056 int
00057 main()
00058 {
00059 int result;
00060 int failed;
00061
00062
00063 set_interrupt_handler (SWI_VECTOR, (interrupt_t) simple_trap_handler);
00064 print ("Using simple trap handler: ");
00065 failed = 0;
00066 simple_trap_handler (1);
00067 if (global_result != 1)
00068 {
00069 print (" Simple trap handler failed, didn't returned 1\r\n");
00070 failed = 1;
00071 }
00072
00073 simple_trap_handler (2);
00074 if (global_result != 4)
00075 {
00076 print (" Simple trap handler failed, didn't returned 4\r\n");
00077 failed = 1;
00078 }
00079 if (failed == 0)
00080 print ("OK\r\n");
00081
00082
00083 set_interrupt_handler (SWI_VECTOR, (interrupt_t) add_trap_handler);
00084 failed = 0;
00085 print ("Using add trap handler: ");
00086 result = add_trap_handler (1, 2, 3, 4);
00087 if (result != 10)
00088 {
00089 print ("Add trap handler didn't returned 10\r\n");
00090 failed = 1;
00091 }
00092 result = add_trap_handler (5, 6, 7, 8);
00093 if (result != 26)
00094 {
00095 print ("Add trap handler didn't returned 26\r\n");
00096 failed = 1;
00097 }
00098 if (failed == 0)
00099 print ("OK\r\n");
00100
00101 set_interrupt_handler (SWI_VECTOR, (interrupt_t) os_trap_handler);
00102 failed = 0;
00103 print ("Using OS trap handler...\r\n");
00104 result = os_trap_handler (0, " Hello World from os_trap_handler...\r\n");
00105 if (result != 0)
00106 {
00107 print (" OS call 0 failed\r\n");
00108 failed = 1;
00109 }
00110
00111 result = os_trap_handler (0, " Type a character ");
00112 if (result != 0)
00113 {
00114 print (" OS call 0 failed\r\n");
00115 failed = 1;
00116 }
00117
00118 result = os_trap_handler (1);
00119
00120 result = os_trap_handler (2, 23, 44);
00121 if (result != 23 + 44)
00122 {
00123 print (" OS add system call failed\r\n");
00124 failed = 1;
00125 }
00126
00127 if (failed == 0)
00128 print ("OS trap call test ok.\r\n");
00129
00130 print ("Trap handler test finished.\r\n");
00131 return 0;
00132 }
|