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