00001 #ifndef pdscdef_h 00002 #define pdscdef_h 00003 00004 #define PDSC_K_KIND_BOUND 0 00005 #define PDSC_K_KIND_NULL 8 00006 #define PDSC_K_KIND_FP_STACK 9 00007 #define PDSC_K_KIND_FP_REGISTER 10 00008 #define PDSC_M_HANDLER_VALID 0x10 00009 #define PDSC_M_HANDLER_REINVOKABLE 0x20 00010 #define PDSC_M_HANDLER_DATA_VALID 0x40 00011 #define PDSC_M_BASE_REG_IS_FP 0x80 00012 #define PDSC_M_REI_RETURN 0x100 00013 #define PDSC_M_STACK_RETURN_VALUE 0x200 00014 #define PDSC_M_BASE_FRAME 0x400 00015 #define PDSC_M_TARGET_INVO 0x800 00016 #define PDSC_M_NATIVE 0x1000 00017 #define PDSC_M_NO_JACKET 0x2000 00018 #define PDSC_M_TIE_FRAME 0x4000 00019 #define PDSC_M_FUNC_RETURN 0xF 00020 #define PDSC_M_EXCEPTION_MODE 0x70 00021 #define PDSC_K_EXC_MODE_SIGNAL 0 00022 #define PDSC_K_EXC_MODE_SIGNAL_ALL 1 00023 #define PDSC_K_EXC_MODE_SIGNAL_SILENT 2 00024 #define PDSC_K_EXC_MODE_FULL_IEEE 3 00025 #define PDSC_K_EXC_MODE_CALLER 4 00026 #define PDSC_K_NULL_SIZE 16 00027 #define PDSC_K_BOUND_SIZE 24 00028 #define PDSC_K_MIN_BOUND_SIZE 24 00029 #define PDSC_K_MIN_LENGTH_SF 32 00030 #define PDSC_K_MIN_STACK_SIZE 32 00031 #define PDSC_K_MAX_STACK_SIZE 48 00032 #define PDSC_K_MIN_LENGTH_RF 24 00033 #define PDSC_K_MIN_REGISTER_SIZE 24 00034 #define PDSC_K_MAX_REGISTER_SIZE 40 00035 #define PDSC_K_BOUND_ENVIRONMENT_SIZE 32 00036 00037 struct _pdscdef { 00038 union { 00039 unsigned short int pdsc_w_flags; 00040 struct { 00041 unsigned pdsc_v_kind : 4; 00042 unsigned pdsc_v_handler_valid : 1; 00043 unsigned pdsc_v_handler_reinvokable : 1; 00044 unsigned pdsc_v_handler_data_valid : 1; 00045 unsigned pdsc_v_base_reg_is_fp : 1; 00046 unsigned pdsc_v_rei_return : 1; 00047 unsigned pdsc_v_stack_return_value : 1; 00048 unsigned pdsc_v_base_frame : 1; 00049 unsigned pdsc_v_target_invo : 1; 00050 unsigned pdsc_v_native : 1; 00051 unsigned pdsc_v_no_jacket : 1; 00052 unsigned pdsc_v_tie_frame : 1; 00053 unsigned pdsc_v_flags_mbz2 : 1; 00054 }; 00055 }; 00056 union { 00057 short int pdsc_w_rsa_offset; 00058 struct { 00059 unsigned char pdsc_b_save_fp; 00060 unsigned char pdsc_b_save_ra; 00061 }; 00062 }; 00063 char pdsc_b_entry_ra; 00064 struct { 00065 unsigned pdsc_v_func_return : 4; 00066 unsigned pdsc_v_exception_mode : 3; 00067 unsigned pdsc_v_more_flags_mbz1 : 1; 00068 }; 00069 short int pdsc_w_signature_offset; 00070 union { 00071 long long pdsc_q_entry; 00072 struct { 00073 int pdsc_l_entry; 00074 }; 00075 }; 00076 union { 00077 unsigned int pdsc_l_size; 00078 union { 00079 long long pdsc_q_proc_value; 00080 struct { 00081 int pdsc_l_proc_value; 00082 int pdsc_l_reserved1; 00083 }; 00084 }; 00085 }; 00086 union { 00087 struct { 00088 unsigned int pdsc_l_ireg_mask; 00089 unsigned int pdsc_l_freg_mask; 00090 long long pdsc_q_stack_handler; 00091 long long pdsc_q_stack_handler_data; 00092 }; 00093 struct { 00094 long long pdsc_q_reg_handler; 00095 long long pdsc_q_reg_handler_data; 00096 }; 00097 union { 00098 int pdsc_l_environment; 00099 long long pdsc_q_environment; 00100 }; 00101 }; 00102 }; 00103 00104 #define PDSC_K_LKP_LENGTH 16 00105 00106 struct _pdsc_lkpdef { 00107 union { 00108 long long pdsc_q_lkp_entry; 00109 struct { 00110 void *pdsc_ps_lkp_entry; 00111 }; 00112 }; 00113 union { 00114 long long pdsc_q_lkp_proc_value; 00115 struct { 00116 void *pdsc_ps_lkp_proc_value; 00117 }; 00118 }; 00119 }; 00120 00121 #define LKP_K_SIZE 16 00122 00123 struct _lkpdef { 00124 union { 00125 long long lkp_q_entry; 00126 void *lkp_ps_entry; 00127 }; 00128 union { 00129 long long lkp_q_proc_value; 00130 void *lkp_ps_proc_value; 00131 }; 00132 }; 00133 00134 #endif 00135 00136