/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:06:46 by OpenVMS SDL V3.7 */ /* Source: 22-SEP-2020 13:00:08 $1$DGA8345:[LIB_H.SRC]IDTDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $IDTDEF ***/ #ifndef __IDTDEF_LOADED #define __IDTDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* Interrupt and Exception Handler Dispatch Table Definitions. This table */ /* specifies the entry points for exception and interrupt handlers. */ /* */ #define IDT$C_DE 0 /* %X00 Divide Error */ #define IDT$C_DB 1 /* %X01 Debug */ #define IDT$C_NMI 2 /* %X02 Non Maskable Interrupt */ #define IDT$C_BP 3 /* %X03 Breakpoint */ #define IDT$C_OF 4 /* %X04 Overflow */ #define IDT$C_BR 5 /* %X05 Bound Range Exceeded */ #define IDT$C_UD 6 /* %X06 Undefined Opcode */ #define IDT$C_NM 7 /* %X07 Device Not Available */ #define IDT$C_DF 8 /* %X08 Double Fault */ #define IDT$C_UNUSED_9 9 /* %X09 Unused vector */ #define IDT$C_TS 10 /* %X0A Invalid TSS */ #define IDT$C_NP 11 /* %X0B Segment Not Present */ #define IDT$C_SS 12 /* %X0C Stack Segment Fault */ #define IDT$C_GP 13 /* %X0D General Protection Fault */ #define IDT$C_PF 14 /* %X0E Page Fault */ #define IDT$C_UNUSED_F 15 /* %X0F Unused vector */ #define IDT$C_MF 16 /* %X10 Math Fault */ #define IDT$C_AC 17 /* %X11 Alignment Check */ #define IDT$C_MCE 18 /* %X12 Machine Check Exception */ #define IDT$C_XM 19 /* %X13 SIMD Floating-Point Exception */ #define IDT$C_VE 20 /* %X14 Virtualization Exception */ #define IDT$C_CP 21 /* %X15 Control Protection Exception */ #define IDT$C_UNUSED_16 22 /* %X16 Unused vector */ #define IDT$C_UNUSED_17 23 /* %X17 Unused vector */ #define IDT$C_UNUSED_18 24 /* %X18 Unused vector */ #define IDT$C_UNUSED_19 25 /* %X19 Unused vector */ #define IDT$C_UNUSED_1A 26 /* %X1A Unused vector */ #define IDT$C_UNUSED_1B 27 /* %X1B Unused vector */ #define IDT$C_UNUSED_1C 28 /* %X1C Unused vector */ #define IDT$C_VC 29 /* %X1D VMM Comm Exception */ #define IDT$C_SX 30 /* %X1E Security Exception */ #define IDT$C_UNUSED_1F 31 /* %X1F Unused vector */ #define IDT$C_KERNEL_AST 36 /* %X24 Kernel mode AST */ #define IDT$C_EXEC_AST 37 /* %X25 Exec mode AST */ #define IDT$C_SUPER_AST 38 /* %X26 Super mode AST */ #define IDT$C_USER_AST 39 /* %X27 User mode AST */ #define IDT$C_REPORT_ALIGN_FAULT 40 /* %X28 Report alignment fault */ #define IDT$C_UNUSED_290 41 /* %X29 Unused vector */ #define IDT$C_UNUSED_2A0 42 /* %X2A Unused vector */ #define IDT$C_UNUSED_2B0 43 /* %X2B Unused vector */ #define IDT$C_UNUSED_2C0 44 /* %X2C Unused vector */ #define IDT$C_UNUSED_2D0 45 /* %X2D Unused vector */ #define IDT$C_UNUSED_2E0 46 /* %X2E Unused vector */ #define IDT$C_UNUSED_2F0 47 /* %X2F Unused vector */ #define IDT$C_LOAD_F_FLOAT 48 /* %X30 Load F floating */ #define IDT$C_LOAD_D_FLOAT 49 /* %X31 Load D floating */ #define IDT$C_LOAD_S_FLOAT 50 /* %X32 Load S floating */ #define IDT$C_LOAD_T_FLOAT 51 /* %X33 Load T floating */ #define IDT$C_STORE_F_FLOAT 52 /* %X34 Store F floating */ #define IDT$C_STORE_D_FLOAT 53 /* %X35 Store D floating */ #define IDT$C_STORE_S_FLOAT 54 /* %X36 Store S floating */ #define IDT$C_STORE_T_FLOAT 55 /* %X37 Store T floating */ #define IDT$C_LOAD_SEXT_LONG 56 /* %X38 Load sign-extended longword */ #define IDT$C_LOAD_QUAD 57 /* %X39 Load quadword */ #define IDT$C_LOAD_SEXT_LONG_L 58 /* %X3A Load sign-extended longword locked */ #define IDT$C_LOAD_QUAD_L 59 /* %X3B Load quadword locked */ #define IDT$C_STORE_LONG 60 /* %X3C Store longword */ #define IDT$C_STORE_QUAD 61 /* %X3D Store quadword */ #define IDT$C_STORE_LONG_C 62 /* %X3E Store longword conditional */ #define IDT$C_STORE_QUAD_C 63 /* %X3F Store quadword conditional */ #define IDT$C_BREAK_DBG 64 /* %X40 Debug break point trap */ #define IDT$C_BREAK_BUGCHK 65 /* %X41 Bugcheck break point trap */ #define IDT$C_ILLEGAL_INSTRUCTION 66 /* %X42 Illegal instruction trap */ #define IDT$C_ILLEGAL_PAL_OPERAND 67 /* %X43 Illegal call PAL operand */ #define IDT$C_GENTRAP 68 /* %X44 Software generated trap */ #define IDT$C_UNUSED_45 69 /* %X45 Unused vector */ #define IDT$C_UNUSED_46 70 /* %X46 Unused vector */ #define IDT$C_UNUSED_47 71 /* %X47 Unused vector */ #define IDT$C_CHANGE_MODE_KERNEL 72 /* %X48 Change mode to kernel */ #define IDT$C_CHANGE_MODE_EXEC 73 /* %X49 Change mode to exec */ #define IDT$C_CHANGE_MODE_SUPER 74 /* %X4A Change mode to super */ #define IDT$C_CHANGE_MODE_USER 75 /* %X4B Change mode to user */ #define IDT$C_HP_1 76 /* %X4C Reserved for hp */ #define IDT$C_HP_2 77 /* %X4D Reserved for hp */ #define IDT$C_HP_3 78 /* %X4E Reserved for hp */ #define IDT$C_HP_4 79 /* %X4F Reserved for hp */ #define IDT$C_UNUSED_50 80 /* %X50 Unused */ #define IDT$C_SOFT_INTERRUPT_1 81 /* %X51 Software level 1 interrupt */ #define IDT$C_SOFT_INTERRUPT_2 82 /* %x52 Software level 2 interrupt */ #define IDT$C_SOFT_INTERRUPT_3 83 /* %X53 Software level 3 interrupt */ #define IDT$C_SOFT_INTERRUPT_4 84 /* %X54 Software level 4 interrupt */ #define IDT$C_SOFT_INTERRUPT_5 85 /* %X55 Software level 5 interrupt */ #define IDT$C_SOFT_INTERRUPT_6 86 /* %X56 Software level 6 interrupt */ #define IDT$C_SOFT_INTERRUPT_7 87 /* %X57 Software level 7 interrupt */ #define IDT$C_SOFT_INTERRUPT_8 88 /* %X58 Software level 8 interrupt */ #define IDT$C_SOFT_INTERRUPT_9 89 /* %X59 Software level 9 interrupt */ #define IDT$C_SOFT_INTERRUPT_10 90 /* %X5A Software level 10 interrupt */ #define IDT$C_SOFT_INTERRUPT_11 91 /* %X5B Software level 11 interrupt */ #define IDT$C_SOFT_INTERRUPT_12 92 /* %X5C Software level 12 interrupt */ #define IDT$C_SOFT_INTERRUPT_13 93 /* %X5D Software level 13 interrupt */ #define IDT$C_SOFT_INTERRUPT_14 94 /* %X5E Software level 14 interrupt */ #define IDT$C_SOFT_INTERRUPT_15 95 /* %X5F Software level 15 interrupt */ #define IDT$C_SOFT_INTERRUPT_BASE 80 /* Reschedule interrupt */ #define IDT$C_RESCHEDULE 83 /* Reschedule interrupt */ #define IDT$C_IO_POST 84 /* I/O post interrupt */ #define IDT$C_SW_TIMER_INTERRUPT 87 /* Software timer interrupt */ #define IDT$C_IP_CONTROL 92 /* IP control */ #define IDT$C_XDELTA 94 /* Xdelta */ #define IDT$C_INTERVAL_CLOCK 96 /* %X60 Interval clock interrupt */ #define IDT$C_INTERPROCESSOR 97 /* %X61 Interprocessor interrupt */ #define IDT$C_SYSTEM_CORRECTED_ERROR 98 /* %X62 System corrected error interrupt */ #define IDT$C_PROCESS_CORRECTED_ERROR 99 /* %X63 Processor corrected error interrupt */ #define IDT$C_POWER_FAIL 100 /* %X64 Power fail interrupt */ #define IDT$C_PERF_MONITOR 101 /* %X65 Reserved for performance monitor */ #define IDT$C_SYSTEM_MACHINE_CHECK 102 /* %X66 System machine check abort */ #define IDT$C_PROCESSOR_MACHINE_CHECK 103 /* %X67 Processor machine check abort */ #define IDT$C_SYSTEM_ENV_EVENT 104 /* %X68 Environmental event interrupt */ #define IDT$C_PROCESSOR_SPECIFIC_1 105 /* %X69 Reserved - processor specific */ #define IDT$C_SYSTEM_REC_ERROR 106 /* %X6A System recoverable machine check abort */ #define IDT$C_PROC_REC_ERROR 107 /* %X6B Processer recoverable machine check abort */ #define IDT$C_EXTERNAL_INTERRUPT 128 /* %X80 External interrupt */ #define IDT$C_BREAK_SYS 129 /* %X81 System break (BREAK_DBG is %X40) */ #define IDT$C_BREAK_APP 130 /* %X82 Application break */ #define IDT$C_BREAK_ARCH 131 /* %X83 Architected break (Intel) */ #define IDT$C_DEBUG_FAULT 132 /* %X84 Debug fault */ #define IDT$C_UNEXPECTED 133 /* %X85 Unexpected exception or interrupt */ #define IDT$C_NAT_CONSUMPTION 134 /* %x86 NaT comsumption fault */ #define IDT$C_TAKEN_BRANCH 135 /* %x87 Taken branch trap */ #define IDT$C_SINGLE_STEP 136 /* %x88 Single step trap */ #define IDT$C_IA32_TRAP 137 /* %X89 IA-32 exception, interrupt, etc */ #define IDT$C_BREAK_HALT 138 /* %x8a PAL_HALT equivalent */ #define IDT$C_BREAK_UNKNOWN 139 /* %x8b Needs further processing to figure out what kind of break it is */ /* Probably a bad idea to override this! */ #define IDT$C_PROBE 140 /* %x8c Probe VA was not in TLB, emulate */ #define IDT$C_KSTK_INVALID 141 /* %x8d An invalid kernel stack was detected. We've switched to slot HWPCB */ /* and the intstk may not be totally valid */ #define IDT$C_LOWER_PRIV 142 /* %x8e We took a lower privilege trap. This may be an ACCVIO from an unimplemented */ /* virtual address (and the handler needs to check) or a lower priv trap. */ #define IDT$C_SPARE_1 143 /* Leave spares */ #define IDT$C_SPARE_2 144 #define IDT$C_COUNT 145 /* Number of entry slots. Add new entries before this. */ #include #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef void (*INTERRUPTION_HANDLER_PQ)(INTSTK *,int vector); /* Definition of handler routines called by SWIS */ typedef void (*SOFTINT_HANDLER_PQ)(int ipl); /* Definition of software interrupt routines called by SWIS */ typedef int (*AST_HANDLER_PQ)(INTSTK *, int mode); /* Definition of AST routines called by SWIS */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #endif #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __IDTDEF_LOADED */