00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #ifndef __SYS_SL_UNWINDP_H
00046 #define __SYS_SL_UNWINDP_H
00047
00048 #include <sys/sl/unwind_sl.h>
00049
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053
00054
00055
00056
00057 __unw_error_t unwind_info_initialize(__unw_info_t **,
00058 __unw_addr_t ,
00059 __unw_addr_t );
00060 __unw_error_t unwind_info_finalize(__unw_info_t *);
00061 __unw_error_t unwind_cleanup(void);
00062
00063
00064 __unw_error_t unwind_dump2elf(char *, uint64_t,
00065 char *, uint64_t, void *);
00066
00067
00068
00069 __unw_error_t unwind_info_add_prologue_header(__unw_info_t *,
00070 uint64_t );
00071 __unw_error_t unwind_info_add_prologue_gr_header(__unw_info_t *,
00072 uint64_t ,
00073 char mask ,
00074 uint32_t );
00075 __unw_error_t unwind_info_add_body_header(__unw_info_t *,
00076 uint64_t );
00077
00078
00079
00080 __unw_error_t unwind_info_add_prologue_mem_stack_f_info(__unw_info_t *,
00081 uint64_t ,
00082 uint64_t );
00083 __unw_error_t unwind_info_add_prologue_mem_stack_v_info(__unw_info_t *,
00084 uint64_t );
00085 __unw_error_t unwind_info_add_prologue_psp_gr_info(__unw_info_t *,
00086 uint32_t );
00087 __unw_error_t unwind_info_add_prologue_psp_sprel_info(__unw_info_t *,
00088 uint64_t );
00089
00090
00091
00092 __unw_error_t unwind_info_add_prologue_rp_when_info(__unw_info_t *,
00093 uint64_t );
00094 __unw_error_t unwind_info_add_prologue_rp_gr_info(__unw_info_t *,
00095 uint32_t );
00096 __unw_error_t unwind_info_add_prologue_rp_br_info(__unw_info_t *,
00097 uint32_t );
00098 __unw_error_t unwind_info_add_prologue_rp_psprel_info(__unw_info_t *,
00099 uint64_t );
00100 __unw_error_t unwind_info_add_prologue_rp_sprel_info(__unw_info_t *,
00101 uint64_t );
00102
00103
00104
00105 __unw_error_t unwind_info_add_prologue_pfs_when_info(__unw_info_t *,
00106 uint64_t );
00107 __unw_error_t unwind_info_add_prologue_pfs_gr_info(__unw_info_t *,
00108 uint32_t );
00109 __unw_error_t unwind_info_add_prologue_pfs_psprel_info(__unw_info_t *,
00110 uint64_t );
00111 __unw_error_t unwind_info_add_prologue_pfs_sprel_info(__unw_info_t *,
00112 uint64_t );
00113
00114
00115
00116 __unw_error_t unwind_info_add_prologue_preds_when_info(__unw_info_t *,
00117 uint64_t );
00118 __unw_error_t unwind_info_add_prologue_preds_gr_info(__unw_info_t *,
00119 uint32_t );
00120 __unw_error_t unwind_info_add_prologue_preds_psprel_info(__unw_info_t *,
00121 uint64_t );
00122 __unw_error_t unwind_info_add_prologue_preds_sprel_info(__unw_info_t *,
00123 uint64_t );
00124
00125
00126
00127 __unw_error_t unwind_info_add_prologue_fr_mem_info(__unw_info_t *,
00128 uint32_t );
00129 __unw_error_t unwind_info_add_prologue_frgr_mem_info(__unw_info_t *,
00130 uint32_t ,
00131 uint32_t );
00132 __unw_error_t unwind_info_add_prologue_gr_gr_info(__unw_info_t *,
00133 uint32_t ,
00134 uint32_t );
00135 __unw_error_t unwind_info_add_prologue_gr_mem_info(__unw_info_t *,
00136 uint32_t );
00137 __unw_error_t unwind_info_add_prologue_br_mem_info(__unw_info_t *,
00138 uint32_t );
00139 __unw_error_t unwind_info_add_prologue_br_gr_info(__unw_info_t *,
00140 uint32_t ,
00141 uint32_t );
00142 __unw_error_t unwind_info_add_prologue_spill_base_info(__unw_info_t *,
00143 uint64_t );
00144 __unw_error_t unwind_info_add_prologue_spill_mask_info(__unw_info_t *,
00145 void * ,
00146 uint64_t );
00147
00148
00149
00150 __unw_error_t unwind_info_add_prologue_unat_when_info(__unw_info_t *,
00151 uint64_t );
00152 __unw_error_t unwind_info_add_prologue_unat_gr_info(__unw_info_t *,
00153 uint32_t );
00154 __unw_error_t unwind_info_add_prologue_unat_psprel_info(__unw_info_t *,
00155 uint64_t );
00156 __unw_error_t unwind_info_add_prologue_unat_sprel_info(__unw_info_t *,
00157 uint64_t );
00158
00159
00160
00161 __unw_error_t unwind_info_add_prologue_lc_when_info(__unw_info_t *,
00162 uint64_t );
00163 __unw_error_t unwind_info_add_prologue_lc_gr_info(__unw_info_t *,
00164 uint32_t );
00165 __unw_error_t unwind_info_add_prologue_lc_psprel_info(__unw_info_t *,
00166 uint64_t );
00167 __unw_error_t unwind_info_add_prologue_lc_sprel_info(__unw_info_t *,
00168 uint64_t );
00169
00170
00171
00172 __unw_error_t unwind_info_add_prologue_fpsr_when_info(__unw_info_t *,
00173 uint64_t );
00174 __unw_error_t unwind_info_add_prologue_fpsr_gr_info(__unw_info_t *,
00175 uint32_t );
00176 __unw_error_t unwind_info_add_prologue_fpsr_psprel_info(__unw_info_t *,
00177 uint64_t );
00178 __unw_error_t unwind_info_add_prologue_fpsr_sprel_info(__unw_info_t *,
00179 uint64_t );
00180
00181
00182
00183 __unw_error_t unwind_info_add_prologue_priunat_when_info(__unw_info_t *,
00184 uint64_t );
00185 __unw_error_t unwind_info_add_prologue_priunat_gr_info(__unw_info_t *,
00186 uint32_t );
00187 __unw_error_t unwind_info_add_prologue_priunat_psprel_info(__unw_info_t *,
00188 uint64_t );
00189 __unw_error_t unwind_info_add_prologue_priunat_sprel_info(__unw_info_t *,
00190 uint64_t );
00191
00192
00193
00194 __unw_error_t unwind_info_add_prologue_bsp_when_info(__unw_info_t *,
00195 uint64_t );
00196 __unw_error_t unwind_info_add_prologue_bsp_gr_info(__unw_info_t *,
00197 uint32_t );
00198 __unw_error_t unwind_info_add_prologue_bsp_psprel_info(__unw_info_t *,
00199 uint64_t );
00200 __unw_error_t unwind_info_add_prologue_bsp_sprel_info(__unw_info_t *,
00201 uint64_t );
00202 __unw_error_t unwind_info_add_prologue_bspstore_when_info(__unw_info_t *,
00203 uint64_t );
00204 __unw_error_t unwind_info_add_prologue_bspstore_gr_info(__unw_info_t *,
00205 uint32_t );
00206 __unw_error_t unwind_info_add_prologue_bspstore_psprel_info(__unw_info_t *,
00207 uint64_t );
00208 __unw_error_t unwind_info_add_prologue_bspstore_sprel_info(__unw_info_t *,
00209 uint64_t );
00210 __unw_error_t unwind_info_add_prologue_rnat_when_info(__unw_info_t *,
00211 uint64_t );
00212 __unw_error_t unwind_info_add_prologue_rnat_gr_info(__unw_info_t *,
00213 uint32_t );
00214 __unw_error_t unwind_info_add_prologue_rnat_psprel_info(__unw_info_t *,
00215 uint64_t );
00216 __unw_error_t unwind_info_add_prologue_rnat_sprel_info(__unw_info_t *,
00217 uint64_t );
00218
00219
00220
00221 __unw_error_t unwind_info_add_prologue_info_reg(__unw_info_t *,
00222 uint32_t ,
00223 uint32_t ,
00224 uint64_t ,
00225 uint32_t ,
00226 uint32_t );
00227 __unw_error_t unwind_info_add_prologue_info_sp_offset(__unw_info_t *,
00228 uint32_t ,
00229 uint32_t ,
00230 uint64_t ,
00231 uint64_t );
00232 __unw_error_t unwind_info_add_prologue_info_psp_offset(__unw_info_t *,
00233 uint32_t ,
00234 uint32_t ,
00235 uint64_t ,
00236 uint64_t );
00237 __unw_error_t unwind_info_add_prologue_info_fixed_value(__unw_info_t *,
00238 uint32_t ,
00239 uint32_t ,
00240 uint64_t ,
00241 uint64_t );
00242
00243
00244
00245 __unw_error_t unwind_info_add_body_info_restore (__unw_info_t *,
00246 uint32_t ,
00247 uint32_t ,
00248 uint64_t );
00249 __unw_error_t unwind_info_add_body_info_reg (__unw_info_t *,
00250 uint32_t ,
00251 uint32_t ,
00252 uint64_t ,
00253 uint32_t ,
00254 uint32_t );
00255 __unw_error_t unwind_info_add_body_info_sp_offset(__unw_info_t *,
00256 uint32_t ,
00257 uint32_t ,
00258 uint64_t ,
00259 uint64_t );
00260 __unw_error_t unwind_info_add_body_info_psp_offset(__unw_info_t *,
00261 uint32_t ,
00262 uint32_t ,
00263 uint64_t ,
00264 uint64_t );
00265
00266
00267
00268
00269 __unw_error_t unwind_info_add_body_epilogue_info(__unw_info_t *,
00270 uint64_t ,
00271 uint64_t
00272 );
00273
00274
00275
00276 __unw_error_t unwind_info_add_body_label_state_info(__unw_info_t *,
00277 uint64_t );
00278
00279
00280
00281 __unw_error_t unwind_info_add_body_copy_state_info(__unw_info_t *,
00282 uint64_t );
00283
00284
00285 __unw_error_t unwind_info_add_personality_routine_info(__unw_info_t *,
00286 __unw_addr_t ,
00287 uint32_t , uint32_t );
00288
00289
00290 __unw_error_t unwind_info_add_language_specific_info(__unw_info_t *,
00291 void * ,
00292 uint64_t );
00293
00294
00295 #ifdef __cplusplus
00296 }
00297 #endif
00298
00299 #endif