Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 1 | /* |
| 2 | * Program check table. |
| 3 | * |
| 4 | * Copyright IBM Corp. 2012 |
| 5 | */ |
| 6 | |
| 7 | #include <linux/linkage.h> |
| 8 | |
Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 9 | #define PGM_CHECK(handler) .long handler |
| 10 | #define PGM_CHECK_DEFAULT PGM_CHECK(default_trap_handler) |
| 11 | |
| 12 | /* |
| 13 | * The program check table contains exactly 128 (0x00-0x7f) entries. Each |
Heiko Carstens | 5a79859 | 2015-02-12 13:08:27 +0100 | [diff] [blame] | 14 | * line defines the function to be called corresponding to the program check |
| 15 | * interruption code. |
Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 16 | */ |
| 17 | .section .rodata, "a" |
| 18 | ENTRY(pgm_check_table) |
| 19 | PGM_CHECK_DEFAULT /* 00 */ |
| 20 | PGM_CHECK(illegal_op) /* 01 */ |
| 21 | PGM_CHECK(privileged_op) /* 02 */ |
| 22 | PGM_CHECK(execute_exception) /* 03 */ |
| 23 | PGM_CHECK(do_protection_exception) /* 04 */ |
| 24 | PGM_CHECK(addressing_exception) /* 05 */ |
| 25 | PGM_CHECK(specification_exception) /* 06 */ |
| 26 | PGM_CHECK(data_exception) /* 07 */ |
| 27 | PGM_CHECK(overflow_exception) /* 08 */ |
| 28 | PGM_CHECK(divide_exception) /* 09 */ |
| 29 | PGM_CHECK(overflow_exception) /* 0a */ |
| 30 | PGM_CHECK(divide_exception) /* 0b */ |
| 31 | PGM_CHECK(hfp_overflow_exception) /* 0c */ |
| 32 | PGM_CHECK(hfp_underflow_exception) /* 0d */ |
| 33 | PGM_CHECK(hfp_significance_exception) /* 0e */ |
| 34 | PGM_CHECK(hfp_divide_exception) /* 0f */ |
| 35 | PGM_CHECK(do_dat_exception) /* 10 */ |
| 36 | PGM_CHECK(do_dat_exception) /* 11 */ |
| 37 | PGM_CHECK(translation_exception) /* 12 */ |
| 38 | PGM_CHECK(special_op_exception) /* 13 */ |
| 39 | PGM_CHECK_DEFAULT /* 14 */ |
| 40 | PGM_CHECK(operand_exception) /* 15 */ |
| 41 | PGM_CHECK_DEFAULT /* 16 */ |
| 42 | PGM_CHECK_DEFAULT /* 17 */ |
Heiko Carstens | 5a79859 | 2015-02-12 13:08:27 +0100 | [diff] [blame] | 43 | PGM_CHECK(transaction_exception) /* 18 */ |
Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 44 | PGM_CHECK_DEFAULT /* 19 */ |
| 45 | PGM_CHECK_DEFAULT /* 1a */ |
Heiko Carstens | 5a79859 | 2015-02-12 13:08:27 +0100 | [diff] [blame] | 46 | PGM_CHECK(vector_exception) /* 1b */ |
Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 47 | PGM_CHECK(space_switch_exception) /* 1c */ |
| 48 | PGM_CHECK(hfp_sqrt_exception) /* 1d */ |
| 49 | PGM_CHECK_DEFAULT /* 1e */ |
| 50 | PGM_CHECK_DEFAULT /* 1f */ |
| 51 | PGM_CHECK_DEFAULT /* 20 */ |
| 52 | PGM_CHECK_DEFAULT /* 21 */ |
| 53 | PGM_CHECK_DEFAULT /* 22 */ |
| 54 | PGM_CHECK_DEFAULT /* 23 */ |
| 55 | PGM_CHECK_DEFAULT /* 24 */ |
| 56 | PGM_CHECK_DEFAULT /* 25 */ |
| 57 | PGM_CHECK_DEFAULT /* 26 */ |
| 58 | PGM_CHECK_DEFAULT /* 27 */ |
| 59 | PGM_CHECK_DEFAULT /* 28 */ |
| 60 | PGM_CHECK_DEFAULT /* 29 */ |
| 61 | PGM_CHECK_DEFAULT /* 2a */ |
| 62 | PGM_CHECK_DEFAULT /* 2b */ |
| 63 | PGM_CHECK_DEFAULT /* 2c */ |
| 64 | PGM_CHECK_DEFAULT /* 2d */ |
| 65 | PGM_CHECK_DEFAULT /* 2e */ |
| 66 | PGM_CHECK_DEFAULT /* 2f */ |
| 67 | PGM_CHECK_DEFAULT /* 30 */ |
| 68 | PGM_CHECK_DEFAULT /* 31 */ |
| 69 | PGM_CHECK_DEFAULT /* 32 */ |
| 70 | PGM_CHECK_DEFAULT /* 33 */ |
| 71 | PGM_CHECK_DEFAULT /* 34 */ |
| 72 | PGM_CHECK_DEFAULT /* 35 */ |
| 73 | PGM_CHECK_DEFAULT /* 36 */ |
| 74 | PGM_CHECK_DEFAULT /* 37 */ |
Heiko Carstens | 5a79859 | 2015-02-12 13:08:27 +0100 | [diff] [blame] | 75 | PGM_CHECK(do_dat_exception) /* 38 */ |
| 76 | PGM_CHECK(do_dat_exception) /* 39 */ |
| 77 | PGM_CHECK(do_dat_exception) /* 3a */ |
| 78 | PGM_CHECK(do_dat_exception) /* 3b */ |
Heiko Carstens | b01a37a | 2012-10-18 18:10:06 +0200 | [diff] [blame] | 79 | PGM_CHECK_DEFAULT /* 3c */ |
| 80 | PGM_CHECK_DEFAULT /* 3d */ |
| 81 | PGM_CHECK_DEFAULT /* 3e */ |
| 82 | PGM_CHECK_DEFAULT /* 3f */ |
| 83 | PGM_CHECK_DEFAULT /* 40 */ |
| 84 | PGM_CHECK_DEFAULT /* 41 */ |
| 85 | PGM_CHECK_DEFAULT /* 42 */ |
| 86 | PGM_CHECK_DEFAULT /* 43 */ |
| 87 | PGM_CHECK_DEFAULT /* 44 */ |
| 88 | PGM_CHECK_DEFAULT /* 45 */ |
| 89 | PGM_CHECK_DEFAULT /* 46 */ |
| 90 | PGM_CHECK_DEFAULT /* 47 */ |
| 91 | PGM_CHECK_DEFAULT /* 48 */ |
| 92 | PGM_CHECK_DEFAULT /* 49 */ |
| 93 | PGM_CHECK_DEFAULT /* 4a */ |
| 94 | PGM_CHECK_DEFAULT /* 4b */ |
| 95 | PGM_CHECK_DEFAULT /* 4c */ |
| 96 | PGM_CHECK_DEFAULT /* 4d */ |
| 97 | PGM_CHECK_DEFAULT /* 4e */ |
| 98 | PGM_CHECK_DEFAULT /* 4f */ |
| 99 | PGM_CHECK_DEFAULT /* 50 */ |
| 100 | PGM_CHECK_DEFAULT /* 51 */ |
| 101 | PGM_CHECK_DEFAULT /* 52 */ |
| 102 | PGM_CHECK_DEFAULT /* 53 */ |
| 103 | PGM_CHECK_DEFAULT /* 54 */ |
| 104 | PGM_CHECK_DEFAULT /* 55 */ |
| 105 | PGM_CHECK_DEFAULT /* 56 */ |
| 106 | PGM_CHECK_DEFAULT /* 57 */ |
| 107 | PGM_CHECK_DEFAULT /* 58 */ |
| 108 | PGM_CHECK_DEFAULT /* 59 */ |
| 109 | PGM_CHECK_DEFAULT /* 5a */ |
| 110 | PGM_CHECK_DEFAULT /* 5b */ |
| 111 | PGM_CHECK_DEFAULT /* 5c */ |
| 112 | PGM_CHECK_DEFAULT /* 5d */ |
| 113 | PGM_CHECK_DEFAULT /* 5e */ |
| 114 | PGM_CHECK_DEFAULT /* 5f */ |
| 115 | PGM_CHECK_DEFAULT /* 60 */ |
| 116 | PGM_CHECK_DEFAULT /* 61 */ |
| 117 | PGM_CHECK_DEFAULT /* 62 */ |
| 118 | PGM_CHECK_DEFAULT /* 63 */ |
| 119 | PGM_CHECK_DEFAULT /* 64 */ |
| 120 | PGM_CHECK_DEFAULT /* 65 */ |
| 121 | PGM_CHECK_DEFAULT /* 66 */ |
| 122 | PGM_CHECK_DEFAULT /* 67 */ |
| 123 | PGM_CHECK_DEFAULT /* 68 */ |
| 124 | PGM_CHECK_DEFAULT /* 69 */ |
| 125 | PGM_CHECK_DEFAULT /* 6a */ |
| 126 | PGM_CHECK_DEFAULT /* 6b */ |
| 127 | PGM_CHECK_DEFAULT /* 6c */ |
| 128 | PGM_CHECK_DEFAULT /* 6d */ |
| 129 | PGM_CHECK_DEFAULT /* 6e */ |
| 130 | PGM_CHECK_DEFAULT /* 6f */ |
| 131 | PGM_CHECK_DEFAULT /* 70 */ |
| 132 | PGM_CHECK_DEFAULT /* 71 */ |
| 133 | PGM_CHECK_DEFAULT /* 72 */ |
| 134 | PGM_CHECK_DEFAULT /* 73 */ |
| 135 | PGM_CHECK_DEFAULT /* 74 */ |
| 136 | PGM_CHECK_DEFAULT /* 75 */ |
| 137 | PGM_CHECK_DEFAULT /* 76 */ |
| 138 | PGM_CHECK_DEFAULT /* 77 */ |
| 139 | PGM_CHECK_DEFAULT /* 78 */ |
| 140 | PGM_CHECK_DEFAULT /* 79 */ |
| 141 | PGM_CHECK_DEFAULT /* 7a */ |
| 142 | PGM_CHECK_DEFAULT /* 7b */ |
| 143 | PGM_CHECK_DEFAULT /* 7c */ |
| 144 | PGM_CHECK_DEFAULT /* 7d */ |
| 145 | PGM_CHECK_DEFAULT /* 7e */ |
| 146 | PGM_CHECK_DEFAULT /* 7f */ |