Changeset 1170cfc7 in mainline for kernel/generic/src/debug/names.c
- Timestamp:
- 2023-10-28T17:42:47Z (15 months ago)
- Branches:
- master, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3e05a69
- Parents:
- 63ed840
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/debug/names.c
r63ed840 r1170cfc7 27 27 */ 28 28 29 #include <debug/names.h> 30 #include <debug/constants.h> 29 31 #include <stddef.h> 30 #include <stdint.h> 31 #include <debug/constants.h> 32 #include <debug/names.h> 33 34 #define CVAL(name, value) [value] = #name, 32 33 #define ENTRY(name) [name] = #name 34 35 static const char *const dw_access_names[] = { 36 ENTRY(DW_ACCESS_public), 37 ENTRY(DW_ACCESS_protected), 38 ENTRY(DW_ACCESS_private), 39 }; 40 41 _Static_assert(DW_ACCESS_MAX == DW_ACCESS_private + 1); 42 43 static const char *const dw_at_names[] = { 44 ENTRY(DW_AT_sibling), 45 ENTRY(DW_AT_location), 46 ENTRY(DW_AT_name), 47 ENTRY(DW_AT_reserved_0x04), 48 ENTRY(DW_AT_fund_type), 49 ENTRY(DW_AT_mod_fund_type), 50 ENTRY(DW_AT_user_def_type), 51 ENTRY(DW_AT_mod_u_d_type), 52 ENTRY(DW_AT_ordering), 53 ENTRY(DW_AT_subscr_data), 54 ENTRY(DW_AT_byte_size), 55 ENTRY(DW_AT_bit_offset), 56 ENTRY(DW_AT_bit_size), 57 ENTRY(DW_AT_reserved_0x0e), 58 ENTRY(DW_AT_unused8), 59 ENTRY(DW_AT_stmt_list), 60 ENTRY(DW_AT_low_pc), 61 ENTRY(DW_AT_high_pc), 62 ENTRY(DW_AT_language), 63 ENTRY(DW_AT_member), 64 ENTRY(DW_AT_discr), 65 ENTRY(DW_AT_discr_value), 66 ENTRY(DW_AT_visibility), 67 ENTRY(DW_AT_import), 68 ENTRY(DW_AT_string_length), 69 ENTRY(DW_AT_common_reference), 70 ENTRY(DW_AT_comp_dir), 71 ENTRY(DW_AT_const_value), 72 ENTRY(DW_AT_containing_type), 73 ENTRY(DW_AT_default_value), 74 ENTRY(DW_AT_reserved_0x1f), 75 ENTRY(DW_AT_inline), 76 ENTRY(DW_AT_is_optional), 77 ENTRY(DW_AT_lower_bound), 78 ENTRY(DW_AT_reserved_0x23), 79 ENTRY(DW_AT_reserved_0x24), 80 ENTRY(DW_AT_producer), 81 ENTRY(DW_AT_reserved_0x26), 82 ENTRY(DW_AT_prototyped), 83 ENTRY(DW_AT_reserved_0x28), 84 ENTRY(DW_AT_reserved_0x29), 85 ENTRY(DW_AT_return_addr), 86 ENTRY(DW_AT_reserved_0x2b), 87 ENTRY(DW_AT_start_scope), 88 ENTRY(DW_AT_reserved_0x2d), 89 ENTRY(DW_AT_bit_stride), 90 ENTRY(DW_AT_upper_bound), 91 ENTRY(DW_AT_virtual), 92 ENTRY(DW_AT_abstract_origin), 93 ENTRY(DW_AT_accessibility), 94 ENTRY(DW_AT_address_class), 95 ENTRY(DW_AT_artificial), 96 ENTRY(DW_AT_base_types), 97 ENTRY(DW_AT_calling_convention), 98 ENTRY(DW_AT_count), 99 ENTRY(DW_AT_data_member_location), 100 ENTRY(DW_AT_decl_column), 101 ENTRY(DW_AT_decl_file), 102 ENTRY(DW_AT_decl_line), 103 ENTRY(DW_AT_declaration), 104 ENTRY(DW_AT_discr_list), 105 ENTRY(DW_AT_encoding), 106 ENTRY(DW_AT_external), 107 ENTRY(DW_AT_frame_base), 108 ENTRY(DW_AT_friend), 109 ENTRY(DW_AT_identifier_case), 110 ENTRY(DW_AT_macro_info), 111 ENTRY(DW_AT_namelist_item), 112 ENTRY(DW_AT_priority), 113 ENTRY(DW_AT_segment), 114 ENTRY(DW_AT_specification), 115 ENTRY(DW_AT_static_link), 116 ENTRY(DW_AT_type), 117 ENTRY(DW_AT_use_location), 118 ENTRY(DW_AT_variable_parameter), 119 ENTRY(DW_AT_virtuality), 120 ENTRY(DW_AT_vtable_elem_location), 121 ENTRY(DW_AT_allocated), 122 ENTRY(DW_AT_associated), 123 ENTRY(DW_AT_data_location), 124 ENTRY(DW_AT_byte_stride), 125 ENTRY(DW_AT_entry_pc), 126 ENTRY(DW_AT_use_UTF8), 127 ENTRY(DW_AT_extension), 128 ENTRY(DW_AT_ranges), 129 ENTRY(DW_AT_trampoline), 130 ENTRY(DW_AT_call_column), 131 ENTRY(DW_AT_call_file), 132 ENTRY(DW_AT_call_line), 133 ENTRY(DW_AT_description), 134 ENTRY(DW_AT_binary_scale), 135 ENTRY(DW_AT_decimal_scale), 136 ENTRY(DW_AT_small), 137 ENTRY(DW_AT_decimal_sign), 138 ENTRY(DW_AT_digit_count), 139 ENTRY(DW_AT_picture_string), 140 ENTRY(DW_AT_mutable), 141 ENTRY(DW_AT_threads_scaled), 142 ENTRY(DW_AT_explicit), 143 ENTRY(DW_AT_object_pointer), 144 ENTRY(DW_AT_endianity), 145 ENTRY(DW_AT_elemental), 146 ENTRY(DW_AT_pure), 147 ENTRY(DW_AT_recursive), 148 ENTRY(DW_AT_signature), 149 ENTRY(DW_AT_main_subprogram), 150 ENTRY(DW_AT_data_bit_offset), 151 ENTRY(DW_AT_const_expr), 152 ENTRY(DW_AT_enum_class), 153 ENTRY(DW_AT_linkage_name), 154 ENTRY(DW_AT_string_length_bit_size), 155 ENTRY(DW_AT_string_length_byte_size), 156 ENTRY(DW_AT_rank), 157 ENTRY(DW_AT_str_offsets_base), 158 ENTRY(DW_AT_addr_base), 159 ENTRY(DW_AT_rnglists_base), 160 ENTRY(DW_AT_dwo_id), 161 ENTRY(DW_AT_dwo_name), 162 ENTRY(DW_AT_reference), 163 ENTRY(DW_AT_rvalue_reference), 164 ENTRY(DW_AT_macros), 165 ENTRY(DW_AT_call_all_calls), 166 ENTRY(DW_AT_call_all_source_calls), 167 ENTRY(DW_AT_call_all_tail_calls), 168 ENTRY(DW_AT_call_return_pc), 169 ENTRY(DW_AT_call_value), 170 ENTRY(DW_AT_call_origin), 171 ENTRY(DW_AT_call_parameter), 172 ENTRY(DW_AT_call_pc), 173 ENTRY(DW_AT_call_tail_call), 174 ENTRY(DW_AT_call_target), 175 ENTRY(DW_AT_call_target_clobbered), 176 ENTRY(DW_AT_call_data_location), 177 ENTRY(DW_AT_call_data_value), 178 ENTRY(DW_AT_noreturn), 179 ENTRY(DW_AT_alignment), 180 ENTRY(DW_AT_export_symbols), 181 ENTRY(DW_AT_deleted), 182 ENTRY(DW_AT_defaulted), 183 ENTRY(DW_AT_loclists_base), 184 }; 185 186 _Static_assert(DW_AT_MAX == DW_AT_loclists_base + 1); 187 188 static const char *const dw_ate_names[] = { 189 ENTRY(DW_ATE_address), 190 ENTRY(DW_ATE_boolean), 191 ENTRY(DW_ATE_complex_float), 192 ENTRY(DW_ATE_float), 193 ENTRY(DW_ATE_signed), 194 ENTRY(DW_ATE_signed_char), 195 ENTRY(DW_ATE_unsigned), 196 ENTRY(DW_ATE_unsigned_char), 197 ENTRY(DW_ATE_imaginary_float), 198 ENTRY(DW_ATE_packed_decimal), 199 ENTRY(DW_ATE_numeric_string), 200 ENTRY(DW_ATE_edited), 201 ENTRY(DW_ATE_signed_fixed), 202 ENTRY(DW_ATE_unsigned_fixed), 203 ENTRY(DW_ATE_decimal_float), 204 ENTRY(DW_ATE_UTF), 205 ENTRY(DW_ATE_UCS), 206 ENTRY(DW_ATE_ASCII), 207 }; 208 209 _Static_assert(DW_ATE_MAX == DW_ATE_ASCII + 1); 210 211 static const char *const dw_cc_names[] = { 212 ENTRY(DW_CC_normal), 213 ENTRY(DW_CC_program), 214 ENTRY(DW_CC_nocall), 215 ENTRY(DW_CC_pass_by_reference), 216 ENTRY(DW_CC_pass_by_value), 217 }; 218 219 _Static_assert(DW_CC_MAX == DW_CC_pass_by_value + 1); 35 220 36 221 static const char *const dw_ut_names[] = { 37 #include <debug/constants/dw_ut.inc> 38 }; 222 ENTRY(DW_UT_compile), 223 ENTRY(DW_UT_type), 224 ENTRY(DW_UT_partial), 225 ENTRY(DW_UT_skeleton), 226 ENTRY(DW_UT_split_compile), 227 ENTRY(DW_UT_split_type), 228 }; 229 230 _Static_assert(DW_UT_MAX == DW_UT_split_type + 1); 39 231 40 232 static const char *const dw_tag_names[] = { 41 #include <debug/constants/dw_tag.inc> 42 }; 43 44 static const char *const dw_at_names[] = { 45 #include <debug/constants/dw_at.inc> 46 }; 233 ENTRY(DW_TAG_array_type), 234 ENTRY(DW_TAG_class_type), 235 ENTRY(DW_TAG_entry_point), 236 ENTRY(DW_TAG_enumeration_type), 237 ENTRY(DW_TAG_formal_parameter), 238 ENTRY(DW_TAG_global_subroutine), 239 ENTRY(DW_TAG_global_variable), 240 ENTRY(DW_TAG_imported_declaration), 241 ENTRY(DW_TAG_reserved_0x09), 242 ENTRY(DW_TAG_label), 243 ENTRY(DW_TAG_lexical_block), 244 ENTRY(DW_TAG_local_variable), 245 ENTRY(DW_TAG_member), 246 ENTRY(DW_TAG_reserved_0x0e), 247 ENTRY(DW_TAG_pointer_type), 248 ENTRY(DW_TAG_reference_type), 249 ENTRY(DW_TAG_compile_unit), 250 ENTRY(DW_TAG_string_type), 251 ENTRY(DW_TAG_structure_type), 252 ENTRY(DW_TAG_subroutine), 253 ENTRY(DW_TAG_subroutine_type), 254 ENTRY(DW_TAG_typedef), 255 ENTRY(DW_TAG_union_type), 256 ENTRY(DW_TAG_unspecified_parameters), 257 ENTRY(DW_TAG_variant), 258 ENTRY(DW_TAG_common_block), 259 ENTRY(DW_TAG_common_inclusion), 260 ENTRY(DW_TAG_inheritance), 261 ENTRY(DW_TAG_inlined_subroutine), 262 ENTRY(DW_TAG_module), 263 ENTRY(DW_TAG_ptr_to_member_type), 264 ENTRY(DW_TAG_set_type), 265 ENTRY(DW_TAG_subrange_type), 266 ENTRY(DW_TAG_with_stmt), 267 ENTRY(DW_TAG_access_declaration), 268 ENTRY(DW_TAG_base_type), 269 ENTRY(DW_TAG_catch_block), 270 ENTRY(DW_TAG_const_type), 271 ENTRY(DW_TAG_constant), 272 ENTRY(DW_TAG_enumerator), 273 ENTRY(DW_TAG_file_type), 274 ENTRY(DW_TAG_friend), 275 ENTRY(DW_TAG_namelist), 276 ENTRY(DW_TAG_namelist_item), 277 ENTRY(DW_TAG_packed_type), 278 ENTRY(DW_TAG_subprogram), 279 ENTRY(DW_TAG_template_type_parameter), 280 ENTRY(DW_TAG_template_value_parameter), 281 ENTRY(DW_TAG_thrown_type), 282 ENTRY(DW_TAG_try_block), 283 ENTRY(DW_TAG_variant_part), 284 ENTRY(DW_TAG_variable), 285 ENTRY(DW_TAG_volatile_type), 286 ENTRY(DW_TAG_dwarf_procedure), 287 ENTRY(DW_TAG_restrict_type), 288 ENTRY(DW_TAG_interface_type), 289 ENTRY(DW_TAG_namespace), 290 ENTRY(DW_TAG_imported_module), 291 ENTRY(DW_TAG_unspecified_type), 292 ENTRY(DW_TAG_partial_unit), 293 ENTRY(DW_TAG_imported_unit), 294 ENTRY(DW_TAG_mutable_type), 295 ENTRY(DW_TAG_condition), 296 ENTRY(DW_TAG_shared_type), 297 ENTRY(DW_TAG_type_unit), 298 ENTRY(DW_TAG_rvalue_reference_type), 299 ENTRY(DW_TAG_template_alias), 300 ENTRY(DW_TAG_coarray_type), 301 ENTRY(DW_TAG_generic_subrange), 302 ENTRY(DW_TAG_dynamic_type), 303 ENTRY(DW_TAG_atomic_type), 304 ENTRY(DW_TAG_call_site), 305 ENTRY(DW_TAG_call_site_parameter), 306 ENTRY(DW_TAG_skeleton_unit), 307 ENTRY(DW_TAG_immutable_type), 308 }; 309 310 _Static_assert(DW_TAG_MAX == DW_TAG_immutable_type + 1); 47 311 48 312 static const char *const dw_form_names[] = { 49 #include <debug/constants/dw_form.inc> 50 }; 313 ENTRY(DW_FORM_addr), 314 ENTRY(DW_FORM_reserved_0x02), 315 ENTRY(DW_FORM_block2), 316 ENTRY(DW_FORM_block4), 317 ENTRY(DW_FORM_data2), 318 ENTRY(DW_FORM_data4), 319 ENTRY(DW_FORM_data8), 320 ENTRY(DW_FORM_string), 321 ENTRY(DW_FORM_block), 322 ENTRY(DW_FORM_block1), 323 ENTRY(DW_FORM_data1), 324 ENTRY(DW_FORM_flag), 325 ENTRY(DW_FORM_sdata), 326 ENTRY(DW_FORM_strp), 327 ENTRY(DW_FORM_udata), 328 ENTRY(DW_FORM_ref_addr), 329 ENTRY(DW_FORM_ref1), 330 ENTRY(DW_FORM_ref2), 331 ENTRY(DW_FORM_ref4), 332 ENTRY(DW_FORM_ref8), 333 ENTRY(DW_FORM_ref_udata), 334 ENTRY(DW_FORM_indirect), 335 ENTRY(DW_FORM_sec_offset), 336 ENTRY(DW_FORM_exprloc), 337 ENTRY(DW_FORM_flag_present), 338 ENTRY(DW_FORM_strx), 339 ENTRY(DW_FORM_addrx), 340 ENTRY(DW_FORM_ref_sup4), 341 ENTRY(DW_FORM_strp_sup), 342 ENTRY(DW_FORM_data16), 343 ENTRY(DW_FORM_line_strp), 344 ENTRY(DW_FORM_ref_sig8), 345 ENTRY(DW_FORM_implicit_const), 346 ENTRY(DW_FORM_loclistx), 347 ENTRY(DW_FORM_rnglistx), 348 ENTRY(DW_FORM_ref_sup8), 349 ENTRY(DW_FORM_strx1), 350 ENTRY(DW_FORM_strx2), 351 ENTRY(DW_FORM_strx3), 352 ENTRY(DW_FORM_strx4), 353 ENTRY(DW_FORM_addrx1), 354 ENTRY(DW_FORM_addrx2), 355 ENTRY(DW_FORM_addrx3), 356 ENTRY(DW_FORM_addrx4), 357 }; 358 359 _Static_assert(DW_FORM_MAX == DW_FORM_addrx4 + 1); 51 360 52 361 static const char *const dw_op_names[] = { 53 #include <debug/constants/dw_op.inc> 54 }; 362 ENTRY(DW_OP_reg), 363 ENTRY(DW_OP_basereg), 364 ENTRY(DW_OP_addr), 365 ENTRY(DW_OP_const), 366 ENTRY(DW_OP_deref2), 367 ENTRY(DW_OP_deref), 368 ENTRY(DW_OP_add), 369 ENTRY(DW_OP_const1u), 370 ENTRY(DW_OP_const1s), 371 ENTRY(DW_OP_const2u), 372 ENTRY(DW_OP_const2s), 373 ENTRY(DW_OP_const4u), 374 ENTRY(DW_OP_const4s), 375 ENTRY(DW_OP_const8u), 376 ENTRY(DW_OP_const8s), 377 ENTRY(DW_OP_constu), 378 ENTRY(DW_OP_consts), 379 ENTRY(DW_OP_dup), 380 ENTRY(DW_OP_drop), 381 ENTRY(DW_OP_over), 382 ENTRY(DW_OP_pick), 383 ENTRY(DW_OP_swap), 384 ENTRY(DW_OP_rot), 385 ENTRY(DW_OP_xderef), 386 ENTRY(DW_OP_abs), 387 ENTRY(DW_OP_and), 388 ENTRY(DW_OP_div), 389 ENTRY(DW_OP_minus), 390 ENTRY(DW_OP_mod), 391 ENTRY(DW_OP_mul), 392 ENTRY(DW_OP_neg), 393 ENTRY(DW_OP_not), 394 ENTRY(DW_OP_or), 395 ENTRY(DW_OP_plus), 396 ENTRY(DW_OP_plus_uconst), 397 ENTRY(DW_OP_shl), 398 ENTRY(DW_OP_shr), 399 ENTRY(DW_OP_shra), 400 ENTRY(DW_OP_xor), 401 ENTRY(DW_OP_bra), 402 ENTRY(DW_OP_eq), 403 ENTRY(DW_OP_ge), 404 ENTRY(DW_OP_gt), 405 ENTRY(DW_OP_le), 406 ENTRY(DW_OP_lt), 407 ENTRY(DW_OP_ne), 408 ENTRY(DW_OP_skip), 409 ENTRY(DW_OP_lit0), 410 ENTRY(DW_OP_lit1), 411 ENTRY(DW_OP_lit2), 412 ENTRY(DW_OP_lit3), 413 ENTRY(DW_OP_lit4), 414 ENTRY(DW_OP_lit5), 415 ENTRY(DW_OP_lit6), 416 ENTRY(DW_OP_lit7), 417 ENTRY(DW_OP_lit8), 418 ENTRY(DW_OP_lit9), 419 ENTRY(DW_OP_lit10), 420 ENTRY(DW_OP_lit11), 421 ENTRY(DW_OP_lit12), 422 ENTRY(DW_OP_lit13), 423 ENTRY(DW_OP_lit14), 424 ENTRY(DW_OP_lit15), 425 ENTRY(DW_OP_lit16), 426 ENTRY(DW_OP_lit17), 427 ENTRY(DW_OP_lit18), 428 ENTRY(DW_OP_lit19), 429 ENTRY(DW_OP_lit20), 430 ENTRY(DW_OP_lit21), 431 ENTRY(DW_OP_lit22), 432 ENTRY(DW_OP_lit23), 433 ENTRY(DW_OP_lit24), 434 ENTRY(DW_OP_lit25), 435 ENTRY(DW_OP_lit26), 436 ENTRY(DW_OP_lit27), 437 ENTRY(DW_OP_lit28), 438 ENTRY(DW_OP_lit29), 439 ENTRY(DW_OP_lit30), 440 ENTRY(DW_OP_lit31), 441 ENTRY(DW_OP_reg0), 442 ENTRY(DW_OP_reg1), 443 ENTRY(DW_OP_reg2), 444 ENTRY(DW_OP_reg3), 445 ENTRY(DW_OP_reg4), 446 ENTRY(DW_OP_reg5), 447 ENTRY(DW_OP_reg6), 448 ENTRY(DW_OP_reg7), 449 ENTRY(DW_OP_reg8), 450 ENTRY(DW_OP_reg9), 451 ENTRY(DW_OP_reg10), 452 ENTRY(DW_OP_reg11), 453 ENTRY(DW_OP_reg12), 454 ENTRY(DW_OP_reg13), 455 ENTRY(DW_OP_reg14), 456 ENTRY(DW_OP_reg15), 457 ENTRY(DW_OP_reg16), 458 ENTRY(DW_OP_reg17), 459 ENTRY(DW_OP_reg18), 460 ENTRY(DW_OP_reg19), 461 ENTRY(DW_OP_reg20), 462 ENTRY(DW_OP_reg21), 463 ENTRY(DW_OP_reg22), 464 ENTRY(DW_OP_reg23), 465 ENTRY(DW_OP_reg24), 466 ENTRY(DW_OP_reg25), 467 ENTRY(DW_OP_reg26), 468 ENTRY(DW_OP_reg27), 469 ENTRY(DW_OP_reg28), 470 ENTRY(DW_OP_reg29), 471 ENTRY(DW_OP_reg30), 472 ENTRY(DW_OP_reg31), 473 ENTRY(DW_OP_breg0), 474 ENTRY(DW_OP_breg1), 475 ENTRY(DW_OP_breg2), 476 ENTRY(DW_OP_breg3), 477 ENTRY(DW_OP_breg4), 478 ENTRY(DW_OP_breg5), 479 ENTRY(DW_OP_breg6), 480 ENTRY(DW_OP_breg7), 481 ENTRY(DW_OP_breg8), 482 ENTRY(DW_OP_breg9), 483 ENTRY(DW_OP_breg10), 484 ENTRY(DW_OP_breg11), 485 ENTRY(DW_OP_breg12), 486 ENTRY(DW_OP_breg13), 487 ENTRY(DW_OP_breg14), 488 ENTRY(DW_OP_breg15), 489 ENTRY(DW_OP_breg16), 490 ENTRY(DW_OP_breg17), 491 ENTRY(DW_OP_breg18), 492 ENTRY(DW_OP_breg19), 493 ENTRY(DW_OP_breg20), 494 ENTRY(DW_OP_breg21), 495 ENTRY(DW_OP_breg22), 496 ENTRY(DW_OP_breg23), 497 ENTRY(DW_OP_breg24), 498 ENTRY(DW_OP_breg25), 499 ENTRY(DW_OP_breg26), 500 ENTRY(DW_OP_breg27), 501 ENTRY(DW_OP_breg28), 502 ENTRY(DW_OP_breg29), 503 ENTRY(DW_OP_breg30), 504 ENTRY(DW_OP_breg31), 505 ENTRY(DW_OP_regx), 506 ENTRY(DW_OP_fbreg), 507 ENTRY(DW_OP_bregx), 508 ENTRY(DW_OP_piece), 509 ENTRY(DW_OP_deref_size), 510 ENTRY(DW_OP_xderef_size), 511 ENTRY(DW_OP_nop), 512 ENTRY(DW_OP_push_object_address), 513 ENTRY(DW_OP_call2), 514 ENTRY(DW_OP_call4), 515 ENTRY(DW_OP_call_ref), 516 ENTRY(DW_OP_form_tls_address), 517 ENTRY(DW_OP_call_frame_cfa), 518 ENTRY(DW_OP_bit_piece), 519 ENTRY(DW_OP_implicit_value), 520 ENTRY(DW_OP_stack_value), 521 ENTRY(DW_OP_implicit_pointer), 522 ENTRY(DW_OP_addrx), 523 ENTRY(DW_OP_constx), 524 ENTRY(DW_OP_entry_value), 525 ENTRY(DW_OP_const_type), 526 ENTRY(DW_OP_regval_type), 527 ENTRY(DW_OP_deref_type), 528 ENTRY(DW_OP_xderef_type), 529 ENTRY(DW_OP_convert), 530 ENTRY(DW_OP_reinterpret), 531 }; 532 533 _Static_assert(DW_OP_MAX == DW_OP_reinterpret + 1); 55 534 56 535 static const char *const dw_lle_names[] = { 57 #include <debug/constants/dw_lle.inc> 58 }; 59 60 static const char *const dw_ate_names[] = { 61 #include <debug/constants/dw_ate.inc> 62 }; 536 ENTRY(DW_LLE_end_of_list), 537 ENTRY(DW_LLE_base_addressx), 538 ENTRY(DW_LLE_startx_endx), 539 ENTRY(DW_LLE_startx_length), 540 ENTRY(DW_LLE_offset_pair), 541 ENTRY(DW_LLE_default_location), 542 ENTRY(DW_LLE_base_address), 543 ENTRY(DW_LLE_start_end), 544 ENTRY(DW_LLE_start_length), 545 }; 546 547 _Static_assert(DW_LLE_MAX == DW_LLE_start_length + 1); 63 548 64 549 static const char *const dw_ds_names[] = { 65 #include <debug/constants/dw_ds.inc> 66 }; 550 ENTRY(DW_DS_unsigned), 551 ENTRY(DW_DS_leading_overpunch), 552 ENTRY(DW_DS_trailing_overpunch), 553 ENTRY(DW_DS_leading_separate), 554 ENTRY(DW_DS_trailing_separate), 555 }; 556 557 _Static_assert(DW_DS_MAX == DW_DS_trailing_separate + 1); 67 558 68 559 static const char *const dw_end_names[] = { 69 #include <debug/constants/dw_end.inc> 70 }; 71 72 static const char *const dw_access_names[] = { 73 #include <debug/constants/dw_access.inc> 74 };560 ENTRY(DW_END_default), 561 ENTRY(DW_END_big), 562 ENTRY(DW_END_little), 563 }; 564 565 _Static_assert(DW_END_MAX == DW_END_little + 1); 75 566 76 567 static const char *const dw_vis_names[] = { 77 #include <debug/constants/dw_vis.inc> 78 }; 568 ENTRY(DW_VIS_local), 569 ENTRY(DW_VIS_exported), 570 ENTRY(DW_VIS_qualified), 571 }; 572 573 _Static_assert(DW_VIS_MAX == DW_VIS_qualified + 1); 79 574 80 575 static const char *const dw_virtuality_names[] = { 81 #include <debug/constants/dw_virtuality.inc> 82 }; 576 ENTRY(DW_VIRTUALITY_none), 577 ENTRY(DW_VIRTUALITY_virtual), 578 ENTRY(DW_VIRTUALITY_pure_virtual), 579 }; 580 581 _Static_assert(DW_VIRTUALITY_MAX == DW_VIRTUALITY_pure_virtual + 1); 83 582 84 583 static const char *const dw_lang_names[] = { 85 #include <debug/constants/dw_lang.inc> 86 }; 584 ENTRY(DW_LANG_C89), 585 ENTRY(DW_LANG_C), 586 ENTRY(DW_LANG_Ada83), 587 ENTRY(DW_LANG_C_plus_plus), 588 ENTRY(DW_LANG_Cobol74), 589 ENTRY(DW_LANG_Cobol85), 590 ENTRY(DW_LANG_Fortran77), 591 ENTRY(DW_LANG_Fortran90), 592 ENTRY(DW_LANG_Pascal83), 593 ENTRY(DW_LANG_Modula2), 594 ENTRY(DW_LANG_Java), 595 ENTRY(DW_LANG_C99), 596 ENTRY(DW_LANG_Ada95), 597 ENTRY(DW_LANG_Fortran95), 598 ENTRY(DW_LANG_PLI), 599 ENTRY(DW_LANG_ObjC), 600 ENTRY(DW_LANG_ObjC_plus_plus), 601 ENTRY(DW_LANG_UPC), 602 ENTRY(DW_LANG_D), 603 ENTRY(DW_LANG_Python), 604 ENTRY(DW_LANG_OpenCL), 605 ENTRY(DW_LANG_Go), 606 ENTRY(DW_LANG_Modula3), 607 ENTRY(DW_LANG_Haskell), 608 ENTRY(DW_LANG_C_plus_plus_03), 609 ENTRY(DW_LANG_C_plus_plus_11), 610 ENTRY(DW_LANG_OCaml), 611 ENTRY(DW_LANG_Rust), 612 ENTRY(DW_LANG_C11), 613 ENTRY(DW_LANG_Swift), 614 ENTRY(DW_LANG_Julia), 615 ENTRY(DW_LANG_Dylan), 616 ENTRY(DW_LANG_C_plus_plus_14), 617 ENTRY(DW_LANG_Fortran03), 618 ENTRY(DW_LANG_Fortran08), 619 ENTRY(DW_LANG_RenderScript), 620 ENTRY(DW_LANG_BLISS), 621 }; 622 623 _Static_assert(DW_LANG_MAX == DW_LANG_BLISS + 1); 87 624 88 625 static const char *const dw_id_names[] = { 89 #include <debug/constants/dw_id.inc> 90 }; 91 92 static const char *const dw_cc_names[] = { 93 #include <debug/constants/dw_cc.inc> 94 }; 626 ENTRY(DW_ID_case_sensitive), 627 ENTRY(DW_ID_up_case), 628 ENTRY(DW_ID_down_case), 629 ENTRY(DW_ID_case_insensitive), 630 }; 631 632 _Static_assert(DW_ID_MAX == DW_ID_case_insensitive + 1); 95 633 96 634 static const char *const dw_lns_names[] = { 97 #include <debug/constants/dw_lns.inc> 98 }; 635 ENTRY(DW_LNS_copy), 636 ENTRY(DW_LNS_advance_pc), 637 ENTRY(DW_LNS_advance_line), 638 ENTRY(DW_LNS_set_file), 639 ENTRY(DW_LNS_set_column), 640 ENTRY(DW_LNS_negate_stmt), 641 ENTRY(DW_LNS_set_basic_block), 642 ENTRY(DW_LNS_const_add_pc), 643 ENTRY(DW_LNS_fixed_advance_pc), 644 ENTRY(DW_LNS_set_prologue_end), 645 ENTRY(DW_LNS_set_epilogue_begin), 646 ENTRY(DW_LNS_set_isa), 647 }; 648 649 _Static_assert(DW_LNS_MAX == DW_LNS_set_isa + 1); 99 650 100 651 static const char *const dw_lne_names[] = { 101 #include <debug/constants/dw_lne.inc> 102 }; 652 ENTRY(DW_LNE_end_sequence), 653 ENTRY(DW_LNE_set_address), 654 ENTRY(DW_LNE_define_file), 655 ENTRY(DW_LNE_set_discriminator), 656 }; 657 658 _Static_assert(DW_LNE_MAX == DW_LNE_set_discriminator + 1); 103 659 104 660 static const char *const dw_lnct_names[] = { 105 #include <debug/constants/dw_lnct.inc> 106 }; 107 108 #undef CVAL 109 110 #define D_(infix) \ 111 const char *dw_##infix##_name(dw_##infix##_t val) { \ 112 if (val >= sizeof(dw_##infix##_names) / sizeof(const char *)) \ 113 return NULL; \ 114 return dw_##infix##_names[val]; \ 115 } 116 117 D_(ut); 118 D_(tag); 119 D_(at); 120 D_(form); 121 D_(op); 122 D_(lle); 123 D_(ate); 124 D_(ds); 125 D_(end); 126 D_(access); 127 D_(vis); 128 D_(virtuality); 129 D_(lang); 130 D_(id); 131 D_(cc); 132 D_(lns); 133 D_(lne); 134 D_(lnct); 135 136 #undef D_ 661 ENTRY(DW_LNCT_path), 662 ENTRY(DW_LNCT_directory_index), 663 ENTRY(DW_LNCT_timestamp), 664 ENTRY(DW_LNCT_size), 665 ENTRY(DW_LNCT_MD5), 666 }; 667 668 _Static_assert(DW_LNCT_MAX == DW_LNCT_MD5 + 1); 669 670 static const char *const dw_inl_names[] = { 671 ENTRY(DW_INL_not_inlined), 672 ENTRY(DW_INL_inlined), 673 ENTRY(DW_INL_declared_not_inlined), 674 ENTRY(DW_INL_declared_inlined), 675 }; 676 677 _Static_assert(DW_INL_MAX == DW_INL_declared_inlined + 1); 678 679 static const char *const dw_ord_names[] = { 680 ENTRY(DW_ORD_row_major), 681 ENTRY(DW_ORD_col_major), 682 }; 683 684 _Static_assert(DW_ORD_MAX == DW_ORD_col_major + 1); 685 686 static const char *const dw_dsc_names[] = { 687 ENTRY(DW_DSC_label), 688 ENTRY(DW_DSC_range), 689 }; 690 691 _Static_assert(DW_DSC_MAX == DW_DSC_range + 1); 692 693 static const char *const dw_idx_names[] = { 694 ENTRY(DW_IDX_compile_unit), 695 ENTRY(DW_IDX_type_unit), 696 ENTRY(DW_IDX_die_offset), 697 ENTRY(DW_IDX_parent), 698 ENTRY(DW_IDX_type_hash), 699 }; 700 701 _Static_assert(DW_IDX_MAX == DW_IDX_type_hash + 1); 702 703 static const char *const dw_defaulted_names[] = { 704 ENTRY(DW_DEFAULTED_no), 705 ENTRY(DW_DEFAULTED_in_class), 706 ENTRY(DW_DEFAULTED_out_of_class), 707 }; 708 709 _Static_assert(DW_DEFAULTED_MAX == DW_DEFAULTED_out_of_class + 1); 710 711 static const char *const dw_macro_names[] = { 712 ENTRY(DW_MACRO_define), 713 ENTRY(DW_MACRO_undef), 714 ENTRY(DW_MACRO_start_file), 715 ENTRY(DW_MACRO_end_file), 716 ENTRY(DW_MACRO_define_strp), 717 ENTRY(DW_MACRO_undef_strp), 718 ENTRY(DW_MACRO_import), 719 ENTRY(DW_MACRO_define_sup), 720 ENTRY(DW_MACRO_undef_sup), 721 ENTRY(DW_MACRO_import_sup), 722 ENTRY(DW_MACRO_define_strx), 723 ENTRY(DW_MACRO_undef_strx), 724 }; 725 726 _Static_assert(DW_MACRO_MAX == DW_MACRO_undef_strx + 1); 727 728 static const char *const dw_cfa_names[] = { 729 ENTRY(DW_CFA_nop), 730 ENTRY(DW_CFA_set_loc), 731 ENTRY(DW_CFA_advance_loc1), 732 ENTRY(DW_CFA_advance_loc2), 733 ENTRY(DW_CFA_advance_loc4), 734 ENTRY(DW_CFA_offset_extended), 735 ENTRY(DW_CFA_restore_extended), 736 ENTRY(DW_CFA_undefined), 737 ENTRY(DW_CFA_same_value), 738 ENTRY(DW_CFA_register), 739 ENTRY(DW_CFA_remember_state), 740 ENTRY(DW_CFA_restore_state), 741 ENTRY(DW_CFA_def_cfa), 742 ENTRY(DW_CFA_def_cfa_register), 743 ENTRY(DW_CFA_def_cfa_offset), 744 ENTRY(DW_CFA_def_cfa_expression), 745 ENTRY(DW_CFA_expression), 746 ENTRY(DW_CFA_offset_extended_sf), 747 ENTRY(DW_CFA_def_cfa_sf), 748 ENTRY(DW_CFA_def_cfa_offset_sf), 749 ENTRY(DW_CFA_val_offset), 750 ENTRY(DW_CFA_val_offset_sf), 751 ENTRY(DW_CFA_val_expression), 752 }; 753 754 _Static_assert(DW_CFA_MAX == DW_CFA_val_expression + 1); 755 756 static const char *const dw_rle_names[] = { 757 ENTRY(DW_RLE_end_of_list), 758 ENTRY(DW_RLE_base_addressx), 759 ENTRY(DW_RLE_startx_endx), 760 ENTRY(DW_RLE_startx_length), 761 ENTRY(DW_RLE_offset_pair), 762 ENTRY(DW_RLE_base_address), 763 ENTRY(DW_RLE_start_end), 764 ENTRY(DW_RLE_start_length), 765 }; 766 767 _Static_assert(DW_RLE_MAX == DW_RLE_start_length + 1); 768 769 #define NAME_FUNC(prefix) \ 770 const char *prefix##_name(prefix##_t val) \ 771 { \ 772 if (val >= sizeof(prefix##_names) / sizeof(const char *)) return NULL; \ 773 return prefix##_names[val]; \ 774 } 775 776 NAME_FUNC(dw_access); 777 NAME_FUNC(dw_at); 778 NAME_FUNC(dw_ate); 779 NAME_FUNC(dw_cc); 780 NAME_FUNC(dw_cfa); 781 NAME_FUNC(dw_defaulted); 782 NAME_FUNC(dw_ds); 783 NAME_FUNC(dw_dsc); 784 NAME_FUNC(dw_end); 785 NAME_FUNC(dw_form); 786 NAME_FUNC(dw_id); 787 NAME_FUNC(dw_idx); 788 NAME_FUNC(dw_inl); 789 NAME_FUNC(dw_lang); 790 NAME_FUNC(dw_lle); 791 NAME_FUNC(dw_lnct); 792 NAME_FUNC(dw_lne); 793 NAME_FUNC(dw_lns); 794 NAME_FUNC(dw_macro); 795 NAME_FUNC(dw_op); 796 NAME_FUNC(dw_ord); 797 NAME_FUNC(dw_rle); 798 NAME_FUNC(dw_tag); 799 NAME_FUNC(dw_ut); 800 NAME_FUNC(dw_virtuality); 801 NAME_FUNC(dw_vis);
Note:
See TracChangeset
for help on using the changeset viewer.