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