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