Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / s390 / kernel / pgm_check.S
diff --git a/kernel/arch/s390/kernel/pgm_check.S b/kernel/arch/s390/kernel/pgm_check.S
new file mode 100644 (file)
index 0000000..036aa01
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+ *    Program check table.
+ *
+ *    Copyright IBM Corp. 2012
+ */
+
+#include <linux/linkage.h>
+
+#define PGM_CHECK(handler)     .long handler
+#define PGM_CHECK_DEFAULT      PGM_CHECK(default_trap_handler)
+
+/*
+ * The program check table contains exactly 128 (0x00-0x7f) entries. Each
+ * line defines the function to be called corresponding to the program check
+ * interruption code.
+ */
+.section .rodata, "a"
+ENTRY(pgm_check_table)
+PGM_CHECK_DEFAULT                      /* 00 */
+PGM_CHECK(illegal_op)                  /* 01 */
+PGM_CHECK(privileged_op)               /* 02 */
+PGM_CHECK(execute_exception)           /* 03 */
+PGM_CHECK(do_protection_exception)     /* 04 */
+PGM_CHECK(addressing_exception)                /* 05 */
+PGM_CHECK(specification_exception)     /* 06 */
+PGM_CHECK(data_exception)              /* 07 */
+PGM_CHECK(overflow_exception)          /* 08 */
+PGM_CHECK(divide_exception)            /* 09 */
+PGM_CHECK(overflow_exception)          /* 0a */
+PGM_CHECK(divide_exception)            /* 0b */
+PGM_CHECK(hfp_overflow_exception)      /* 0c */
+PGM_CHECK(hfp_underflow_exception)     /* 0d */
+PGM_CHECK(hfp_significance_exception)  /* 0e */
+PGM_CHECK(hfp_divide_exception)                /* 0f */
+PGM_CHECK(do_dat_exception)            /* 10 */
+PGM_CHECK(do_dat_exception)            /* 11 */
+PGM_CHECK(translation_exception)       /* 12 */
+PGM_CHECK(special_op_exception)                /* 13 */
+PGM_CHECK_DEFAULT                      /* 14 */
+PGM_CHECK(operand_exception)           /* 15 */
+PGM_CHECK_DEFAULT                      /* 16 */
+PGM_CHECK_DEFAULT                      /* 17 */
+PGM_CHECK(transaction_exception)       /* 18 */
+PGM_CHECK_DEFAULT                      /* 19 */
+PGM_CHECK_DEFAULT                      /* 1a */
+PGM_CHECK(vector_exception)            /* 1b */
+PGM_CHECK(space_switch_exception)      /* 1c */
+PGM_CHECK(hfp_sqrt_exception)          /* 1d */
+PGM_CHECK_DEFAULT                      /* 1e */
+PGM_CHECK_DEFAULT                      /* 1f */
+PGM_CHECK_DEFAULT                      /* 20 */
+PGM_CHECK_DEFAULT                      /* 21 */
+PGM_CHECK_DEFAULT                      /* 22 */
+PGM_CHECK_DEFAULT                      /* 23 */
+PGM_CHECK_DEFAULT                      /* 24 */
+PGM_CHECK_DEFAULT                      /* 25 */
+PGM_CHECK_DEFAULT                      /* 26 */
+PGM_CHECK_DEFAULT                      /* 27 */
+PGM_CHECK_DEFAULT                      /* 28 */
+PGM_CHECK_DEFAULT                      /* 29 */
+PGM_CHECK_DEFAULT                      /* 2a */
+PGM_CHECK_DEFAULT                      /* 2b */
+PGM_CHECK_DEFAULT                      /* 2c */
+PGM_CHECK_DEFAULT                      /* 2d */
+PGM_CHECK_DEFAULT                      /* 2e */
+PGM_CHECK_DEFAULT                      /* 2f */
+PGM_CHECK_DEFAULT                      /* 30 */
+PGM_CHECK_DEFAULT                      /* 31 */
+PGM_CHECK_DEFAULT                      /* 32 */
+PGM_CHECK_DEFAULT                      /* 33 */
+PGM_CHECK_DEFAULT                      /* 34 */
+PGM_CHECK_DEFAULT                      /* 35 */
+PGM_CHECK_DEFAULT                      /* 36 */
+PGM_CHECK_DEFAULT                      /* 37 */
+PGM_CHECK(do_dat_exception)            /* 38 */
+PGM_CHECK(do_dat_exception)            /* 39 */
+PGM_CHECK(do_dat_exception)            /* 3a */
+PGM_CHECK(do_dat_exception)            /* 3b */
+PGM_CHECK_DEFAULT                      /* 3c */
+PGM_CHECK_DEFAULT                      /* 3d */
+PGM_CHECK_DEFAULT                      /* 3e */
+PGM_CHECK_DEFAULT                      /* 3f */
+PGM_CHECK_DEFAULT                      /* 40 */
+PGM_CHECK_DEFAULT                      /* 41 */
+PGM_CHECK_DEFAULT                      /* 42 */
+PGM_CHECK_DEFAULT                      /* 43 */
+PGM_CHECK_DEFAULT                      /* 44 */
+PGM_CHECK_DEFAULT                      /* 45 */
+PGM_CHECK_DEFAULT                      /* 46 */
+PGM_CHECK_DEFAULT                      /* 47 */
+PGM_CHECK_DEFAULT                      /* 48 */
+PGM_CHECK_DEFAULT                      /* 49 */
+PGM_CHECK_DEFAULT                      /* 4a */
+PGM_CHECK_DEFAULT                      /* 4b */
+PGM_CHECK_DEFAULT                      /* 4c */
+PGM_CHECK_DEFAULT                      /* 4d */
+PGM_CHECK_DEFAULT                      /* 4e */
+PGM_CHECK_DEFAULT                      /* 4f */
+PGM_CHECK_DEFAULT                      /* 50 */
+PGM_CHECK_DEFAULT                      /* 51 */
+PGM_CHECK_DEFAULT                      /* 52 */
+PGM_CHECK_DEFAULT                      /* 53 */
+PGM_CHECK_DEFAULT                      /* 54 */
+PGM_CHECK_DEFAULT                      /* 55 */
+PGM_CHECK_DEFAULT                      /* 56 */
+PGM_CHECK_DEFAULT                      /* 57 */
+PGM_CHECK_DEFAULT                      /* 58 */
+PGM_CHECK_DEFAULT                      /* 59 */
+PGM_CHECK_DEFAULT                      /* 5a */
+PGM_CHECK_DEFAULT                      /* 5b */
+PGM_CHECK_DEFAULT                      /* 5c */
+PGM_CHECK_DEFAULT                      /* 5d */
+PGM_CHECK_DEFAULT                      /* 5e */
+PGM_CHECK_DEFAULT                      /* 5f */
+PGM_CHECK_DEFAULT                      /* 60 */
+PGM_CHECK_DEFAULT                      /* 61 */
+PGM_CHECK_DEFAULT                      /* 62 */
+PGM_CHECK_DEFAULT                      /* 63 */
+PGM_CHECK_DEFAULT                      /* 64 */
+PGM_CHECK_DEFAULT                      /* 65 */
+PGM_CHECK_DEFAULT                      /* 66 */
+PGM_CHECK_DEFAULT                      /* 67 */
+PGM_CHECK_DEFAULT                      /* 68 */
+PGM_CHECK_DEFAULT                      /* 69 */
+PGM_CHECK_DEFAULT                      /* 6a */
+PGM_CHECK_DEFAULT                      /* 6b */
+PGM_CHECK_DEFAULT                      /* 6c */
+PGM_CHECK_DEFAULT                      /* 6d */
+PGM_CHECK_DEFAULT                      /* 6e */
+PGM_CHECK_DEFAULT                      /* 6f */
+PGM_CHECK_DEFAULT                      /* 70 */
+PGM_CHECK_DEFAULT                      /* 71 */
+PGM_CHECK_DEFAULT                      /* 72 */
+PGM_CHECK_DEFAULT                      /* 73 */
+PGM_CHECK_DEFAULT                      /* 74 */
+PGM_CHECK_DEFAULT                      /* 75 */
+PGM_CHECK_DEFAULT                      /* 76 */
+PGM_CHECK_DEFAULT                      /* 77 */
+PGM_CHECK_DEFAULT                      /* 78 */
+PGM_CHECK_DEFAULT                      /* 79 */
+PGM_CHECK_DEFAULT                      /* 7a */
+PGM_CHECK_DEFAULT                      /* 7b */
+PGM_CHECK_DEFAULT                      /* 7c */
+PGM_CHECK_DEFAULT                      /* 7d */
+PGM_CHECK_DEFAULT                      /* 7e */
+PGM_CHECK_DEFAULT                      /* 7f */