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