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 #ifndef dwarf_DST_producer_INCLUDED
00045 #define dwarf_DST_producer_INCLUDED
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 #ifdef _KEEP_RCS_ID
00075 static char *dwarf_DST_producer_rcs_id = "$Source: /scratch/mee/Patch0002-taketwo/kpro64-pending/common/com/SCCS/s.dwarf_DST_producer.h $ $Revision: 1.9 $";
00076 #endif
00077
00078
00079 #include "dwarf_DST.h"
00080
00081 #ifdef __cplusplus
00082 extern "C" {
00083 #endif
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 extern void DST_init_mem(void);
00094
00095
00096
00097
00098
00099
00100 extern void DST_final_write(void);
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 extern DST_DIR_IDX DST_mk_include_dir(char *path);
00111
00112
00113
00114
00115 extern mUINT16 DST_number_of_include_dirs(void);
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130 extern DST_FILE_IDX DST_mk_file_name(char *file_name,
00131 mUINT16 incl_dir,
00132 UINT64 size,
00133 UINT64 modt);
00134
00135
00136
00137
00138 extern mUINT16 DST_number_of_files(void);
00139
00140 #ifdef KEY
00141
00142
00143 extern DST_MACR_IDX
00144 DST_mk_macr (UINT lineno,
00145 char *name,
00146 INT tag );
00147
00148
00149
00150 extern DST_MACR_IDX
00151 DST_mk_macr_end_file (void);
00152
00153
00154
00155 extern DST_MACR_IDX
00156 DST_mk_macr_start_file (UINT lineno,
00157 UINT fileno );
00158
00159
00160
00161 extern mUINT16 DST_number_of_macros(void);
00162 #endif
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184 extern void DST_lock_to_file_scope_mem(void);
00185 extern void DST_release_from_file_scope_mem(void);
00186
00187 extern mINT32 DST_unwind_locks(void);
00188 extern void DST_wind_up_locks(mINT32 number_of_locks);
00189 extern BOOL DST_is_locked_to_file_scope_mem(void);
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 extern DST_INFO_IDX DST_mk_compile_unit(char *src_path,
00202 char *comp_dir,
00203 char *comp_info,
00204 DST_language language,
00205 DST_identifier_case id_case);
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215 extern void DST_begin_PU(void);
00216
00217
00218 extern DST_STR_IDX DST_mk_string(const char *s);
00219
00220
00221
00222
00223
00224 extern void DST_end_PU(void);
00225
00226
00227
00228
00229
00230 extern DST_INFO_IDX
00231 DST_mk_inlined_subroutine(ST_IDX low_pc,
00232 ST_IDX high_pc,
00233 DST_INFO_IDX abstract_origin);
00234
00235
00236
00237
00238 extern DST_INFO_IDX
00239 DST_mk_subprogram_memdef(USRCPOS decl,
00240 ST_IDX subpr,
00241 BOOL is_prototyped,
00242 DST_INFO_IDX spec);
00243
00244
00245
00246
00247
00248 extern DST_INFO_IDX
00249 DST_mk_subprogram(USRCPOS decl,
00250 char *name,
00251 DST_INFO_IDX type,
00252 DST_INFO_IDX origin,
00253 ST_IDX subpr,
00254 DST_inline inlin,
00255 DST_virtuality virtuality,
00256 DST_vtable_elem_location vtable_elem_location,
00257 BOOL is_declaration,
00258 BOOL is_prototyped,
00259 #ifdef KEY
00260 BOOL is_artificial,
00261 #endif
00262 BOOL is_external);
00263
00264
00265
00266
00267 extern void
00268 DST_add_pubname_to_subprogram (DST_INFO_IDX subprogram,
00269 char *pubname);
00270
00271
00272
00273
00274 extern void
00275 DST_add_linkage_name_to_subprogram(DST_INFO_IDX subprogram,
00276 char *linkage_name);
00277
00278
00279
00280
00281
00282 extern void
00283 DST_add_specification_to_subprogram (DST_INFO_IDX subprogram_def,
00284 DST_INFO_IDX subprogram_decl);
00285
00286
00287
00288
00289 extern void
00290 DST_add_specification_to_variable (DST_INFO_IDX variable_def,
00291 DST_INFO_IDX field_decl);
00292
00293 #ifdef KEY
00294
00295
00296
00297 extern void
00298 DST_add_linkage_name_to_variable(DST_INFO_IDX variable_def,
00299 char *linkage_name);
00300 #endif
00301
00302
00303
00304
00305 extern DST_INFO_IDX
00306 DST_mk_entry_point(USRCPOS decl,
00307 char *name,
00308 DST_INFO_IDX type,
00309 ST_IDX subpr);
00310
00311
00312
00313
00314
00315 DST_INFO_IDX
00316 DST_mk_common_block(char *name,
00317 ST_IDX subpr);
00318
00319
00320
00321
00322 DST_INFO_IDX
00323 DST_mk_common_incl( USRCPOS decl,
00324 DST_INFO_IDX comblk);
00325
00326 #ifdef KEY
00327
00328
00329 DST_INFO_IDX
00330 DST_mk_imported_decl( char *mangled_name,
00331 char *name);
00332 DST_INFO_IDX
00333 DST_mk_module( USRCPOS decl,
00334 char *name);
00335 #endif
00336
00337
00338
00339 extern DST_INFO_IDX
00340 DST_mk_lexical_block(char *name,
00341 ST_IDX low_pc,
00342 ST_IDX high_pc,
00343 DST_INFO_IDX abstract_origin);
00344
00345
00346
00347
00348
00349 extern DST_INFO_IDX
00350 DST_mk_label(char *name,
00351 ST_IDX low_pc,
00352 DST_INFO_IDX abstract_origin);
00353
00354
00355
00356
00357
00358
00359
00360 extern DST_INFO_IDX
00361 DST_mk_variable_const(USRCPOS decl,
00362 char *name,
00363 DST_INFO_IDX type,
00364 BOOL is_automatic,
00365 BOOL is_external,
00366 DST_CONST_VALUE cval);
00367
00368
00369
00370
00371
00372
00373 extern DST_INFO_IDX
00374 DST_mk_variable_comm( USRCPOS decl,
00375 char *name,
00376 DST_INFO_IDX type,
00377 ST_IDX var,
00378 UINT64 offset);
00379
00380
00381
00382
00383
00384 extern DST_INFO_IDX
00385 DST_mk_variable_memdef(USRCPOS decl,
00386 ST_IDX var,
00387 DST_INFO_IDX spec);
00388
00389
00390
00391
00392
00393
00394 extern DST_INFO_IDX
00395 DST_mk_variable(USRCPOS decl,
00396 char *name,
00397 DST_INFO_IDX type,
00398 UINT64 offs,
00399 ST_IDX var,
00400 DST_INFO_IDX abstract_origin,
00401 BOOL is_declaration,
00402 BOOL is_automatic,
00403 BOOL is_external,
00404 BOOL is_artificial);
00405
00406
00407
00408
00409
00410 extern DST_INFO_IDX
00411 DST_mk_formal_parameter(USRCPOS decl,
00412 char *name,
00413 DST_INFO_IDX type,
00414 ST_IDX parm,
00415 DST_INFO_IDX abstract_origin,
00416 DST_INFO_IDX default_val,
00417 BOOL is_optional,
00418 BOOL is_variable,
00419
00420
00421
00422
00423 BOOL is_artificial,
00424 BOOL is_declaration_only);
00425
00426
00427
00428
00429
00430 extern DST_INFO_IDX
00431 DST_mk_unspecified_parameters(USRCPOS decl,
00432 DST_INFO_IDX abstract_origin);
00433
00434
00435
00436
00437
00438 DST_INFO_IDX
00439 DST_mk_constant_def(USRCPOS decl,
00440 char *name,
00441 DST_INFO_IDX type,
00442 DST_CONST_VALUE cval,
00443 BOOL is_external);
00444
00445
00446
00447
00448
00449 extern DST_INFO_IDX
00450 DST_mk_constant_decl(USRCPOS decl,
00451 char *name,
00452 DST_INFO_IDX type,
00453 BOOL is_external);
00454
00455
00456
00457
00458
00459 extern DST_INFO_IDX
00460 DST_mk_basetype(const char *name,
00461 DST_ATE_encoding encoding,
00462 DST_size_t byte_size);
00463
00464
00465
00466
00467
00468 extern DST_INFO_IDX
00469 DST_mk_const_type(DST_INFO_IDX type);
00470
00471
00472
00473
00474
00475 extern DST_INFO_IDX
00476 DST_mk_volatile_type(DST_INFO_IDX type);
00477
00478
00479
00480
00481
00482 extern DST_INFO_IDX
00483 DST_mk_pointer_type(DST_INFO_IDX type,
00484 DST_addr_class address_class,
00485 DST_size_t byte_size);
00486
00487
00488
00489
00490
00491 extern DST_INFO_IDX
00492 DST_mk_reference_type(DST_INFO_IDX type,
00493 DST_addr_class address_class,
00494 DST_size_t byte_size);
00495
00496
00497
00498
00499
00500 extern DST_INFO_IDX
00501 DST_mk_typedef(USRCPOS decl,
00502 char *name,
00503 DST_INFO_IDX type,
00504 DST_INFO_IDX abstract_origin);
00505
00506
00507
00508 extern DST_INFO_IDX
00509 DST_mk_ptr_to_member_type(USRCPOS decl,
00510 char *name,
00511 DST_INFO_IDX type,
00512 DST_INFO_IDX class_type);
00513
00514
00515
00516 extern DST_INFO_IDX
00517 DST_mk_array_type(USRCPOS decl,
00518 char *name,
00519 DST_INFO_IDX type,
00520 DST_size_t byte_size,
00521 DST_INFO_IDX abstract_origin,
00522 BOOL is_incomplete);
00523
00524
00525
00526
00527
00528 extern DST_INFO_IDX
00529 DST_mk_subrange_type(DST_flag is_lb_cval,
00530 DST_cval_ref low,
00531 DST_flag is_ub_cval,
00532 DST_cval_ref high);
00533
00534
00535
00536
00537
00538 extern DST_INFO_IDX
00539 DST_mk_string_type(USRCPOS decl,
00540 char *name,
00541 DST_flag is_len_cval,
00542 DST_cval_ref len);
00543
00544
00545
00546
00547
00548 extern DST_INFO_IDX
00549 DST_mk_structure_type(USRCPOS decl,
00550 char *name,
00551 DST_size_t byte_size,
00552 DST_INFO_IDX abstract_origin,
00553 BOOL is_incomplete);
00554
00555
00556
00557
00558
00559 extern DST_INFO_IDX
00560 DST_mk_union_type(USRCPOS decl,
00561 char *name,
00562 DST_size_t byte_size,
00563 DST_INFO_IDX abstract_origin,
00564 BOOL is_incomplete);
00565
00566
00567
00568
00569
00570 extern DST_INFO_IDX
00571 DST_mk_class_type(USRCPOS decl,
00572 char *name,
00573 DST_size_t byte_size,
00574 DST_INFO_IDX abstract_origin,
00575 BOOL is_incomplete);
00576
00577
00578
00579
00580
00581
00582
00583
00584 #ifndef KEY
00585 extern DST_INFO_IDX
00586 DST_mk_member(USRCPOS decl,
00587 char *name,
00588 DST_INFO_IDX type,
00589 DST_size_t memb_loc,
00590 DST_size_t byte_size,
00591 DST_bitsize bit_offset,
00592 DST_bitsize bit_size,
00593
00594 BOOL is_bitfield,
00595 BOOL is_static,
00596 BOOL is_declaration,
00597 BOOL is_artificial);
00598 #else
00599 extern DST_INFO_IDX
00600 DST_mk_member(USRCPOS decl,
00601 char *name,
00602 DST_INFO_IDX type,
00603 DST_size_t memb_loc,
00604 DST_size_t byte_size,
00605 DST_bitsize bit_offset,
00606 DST_bitsize bit_size,
00607
00608 BOOL is_bitfield,
00609 BOOL is_static,
00610 BOOL is_declaration,
00611 BOOL is_artificial,
00612 DST_accessibility accessibility=DW_ACCESS_public);
00613 #endif
00614
00615
00616
00617
00618
00619 #ifndef KEY
00620 extern DST_INFO_IDX
00621 DST_mk_inheritance(USRCPOS decl,
00622 DST_INFO_IDX type,
00623 DST_virtuality virtuality,
00624 DST_size_t memb_loc);
00625 #else
00626 extern DST_INFO_IDX
00627 DST_mk_inheritance(USRCPOS decl,
00628 DST_INFO_IDX type,
00629 DST_virtuality virtuality,
00630 DST_size_t memb_loc,
00631 DST_accessibility accessibility);
00632 #endif
00633
00634
00635
00636 extern DST_INFO_IDX
00637 DST_mk_template_type_parameter(USRCPOS decl,
00638 char *name,
00639 DST_INFO_IDX type);
00640
00641
00642
00643 extern DST_INFO_IDX
00644 DST_mk_template_value_parameter(USRCPOS decl,
00645 char *name,
00646 DST_INFO_IDX type,
00647 DST_CONST_VALUE cval);
00648
00649
00650
00651
00652 extern DST_INFO_IDX
00653 DST_mk_enumeration_type(USRCPOS decl,
00654 char *name,
00655 DST_size_t byte_size,
00656 DST_INFO_IDX abstract_origin,
00657 BOOL is_incomplete);
00658
00659
00660
00661
00662
00663 extern DST_INFO_IDX
00664 DST_mk_enumerator(USRCPOS decl,
00665 char *name,
00666 DST_CONST_VALUE cval);
00667
00668
00669
00670
00671
00672
00673 extern DST_INFO_IDX
00674 DST_mk_subroutine_type(USRCPOS decl,
00675 char *name,
00676 DST_INFO_IDX type,
00677 DST_INFO_IDX abstract_origin,
00678 BOOL is_prototyped);
00679
00680 #ifdef KEY
00681
00682
00683 extern DST_INFO_IDX
00684 DST_mk_namelist(USRCPOS decl,
00685 char *name );
00686
00687
00688
00689 extern DST_INFO_IDX
00690 DST_mk_namelist_item(USRCPOS decl,
00691 char *name );
00692 #endif
00693
00694 #if defined(_SUPPORT_IPA) || defined(_STANDALONE_INLINER)
00695 extern void
00696 DST_label_add_name(DST_LABEL *, char *);
00697
00698 extern void
00699 DST_lexical_block_add_name(DST_LEXICAL_BLOCK *, char *);
00700
00701 extern char *
00702 DST_get_file(mUINT16 , UINT64 *, UINT64 *, char **);
00703
00704 extern void
00705 DST_subprogram_concrete_to_abstract(DST_INFO_IDX);
00706
00707 extern mUINT16
00708 DST_get_cross_inlined_file_id(char *,
00709 char *,
00710 UINT64,
00711 UINT64);
00712
00713 extern DST_INFO_IDX
00714 DST_mk_cross_inlined_subroutine(
00715 ST_IDX,
00716 ST_IDX,
00717 char *,
00718 mUINT16 *,
00719 UINT64 ,
00720 UINT64 ,
00721 USRCPOS ,
00722 char *,
00723 char *);
00724 #endif
00725
00726 #if defined(_SUPPORT_IPA) || defined(_STANDALONE_INLINER) || defined(_LEGO_CLONER)
00727 extern DST_INFO_IDX
00728 DST_mk_cloned_subprogram(USRCPOS,
00729 char *,
00730 DST_INFO_IDX ,
00731 DST_INFO_IDX ,
00732 ST_IDX ,
00733 DST_inline ,
00734 DST_virtuality );
00735
00736 #endif
00737
00738 #ifdef __cplusplus
00739 }
00740 #endif
00741 #endif