ldlang.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 480 行 · 第 1/2 页

H
480
字号
  const char *target;  boolean real;} lang_input_statement_type;typedef struct {  lang_statement_header_type header;  asection *section;  lang_input_statement_type *ifile;} lang_input_section_type;typedef struct {  lang_statement_header_type header;  asection *section;  union lang_statement_union *file;} lang_afile_asection_pair_statement_type;typedef struct lang_wild_statement_struct {  lang_statement_header_type header;  const char *section_name;  boolean sections_sorted;  const char *filename;  boolean filenames_sorted;  boolean keep_sections;  struct name_list *exclude_filename_list;  lang_statement_list_type children;} lang_wild_statement_type;typedef struct lang_address_statement_struct {  lang_statement_header_type header;  const char *section_name;  union etree_union *address;} lang_address_statement_type;typedef struct {  lang_statement_header_type header;  bfd_vma output_offset;  size_t size;  asection *output_section;  fill_type fill;} lang_padding_statement_type;/* A group statement collects a set of libraries together.  The   libraries are searched multiple times, until no new undefined   symbols are found.  The effect is to search a group of libraries as   though they were a single library.  */typedef struct {  lang_statement_header_type header;  lang_statement_list_type children;} lang_group_statement_type;typedef union lang_statement_union {  lang_statement_header_type header;  union lang_statement_union *next;  lang_wild_statement_type wild_statement;  lang_data_statement_type data_statement;  lang_reloc_statement_type reloc_statement;  lang_address_statement_type address_statement;  lang_output_section_statement_type output_section_statement;  lang_afile_asection_pair_statement_type afile_asection_pair_statement;  lang_assignment_statement_type assignment_statement;  lang_input_statement_type input_statement;  lang_target_statement_type target_statement;  lang_output_statement_type output_statement;  lang_input_section_type input_section;  lang_common_statement_type common_statement;  lang_object_symbols_statement_type object_symbols_statement;  lang_fill_statement_type fill_statement;  lang_padding_statement_type padding_statement;  lang_group_statement_type group_statement;} lang_statement_union_type;/* This structure holds information about a program header, from the   PHDRS command in the linker script.  */struct lang_phdr {  struct lang_phdr *next;  const char *name;  unsigned long type;  boolean filehdr;  boolean phdrs;  etree_type *at;  etree_type *flags;};/* This structure is used to hold a list of sections which may not   cross reference each other.  */struct lang_nocrossref {  struct lang_nocrossref *next;  const char *name;};/* The list of nocrossref lists.  */struct lang_nocrossrefs {  struct lang_nocrossrefs *next;  struct lang_nocrossref *list;};extern struct lang_nocrossrefs *nocrossref_list;/* This structure is used to hold a list of input section names which   will not match an output section in the linker script.  */struct unique_sections {  struct unique_sections *next;  const char *name;};extern struct unique_sections *unique_section_list;extern lang_output_section_statement_type *abs_output_section;extern lang_statement_list_type lang_output_section_statement;extern boolean lang_has_input_file;extern etree_type *base;extern lang_statement_list_type *stat_ptr;extern boolean delete_output_file_on_failure;extern const char *entry_symbol;extern boolean entry_from_cmdline;extern lang_statement_list_type file_chain;extern void lang_init PARAMS ((void));extern struct memory_region_struct *lang_memory_region_lookup  PARAMS ((const char *const));extern struct memory_region_struct *lang_memory_region_default  PARAMS ((asection *));extern void lang_map PARAMS ((void));extern void lang_set_flags PARAMS ((lang_memory_region_type *, const char *,				    int));extern void lang_add_output PARAMS ((const char *, int from_script));extern lang_output_section_statement_type *lang_enter_output_section_statement  PARAMS ((const char *output_section_statement_name,	   etree_type * address_exp,	   enum section_type sectype,	   bfd_vma block_value,	   etree_type *align,	   etree_type *subalign,	   etree_type *));extern void lang_final PARAMS ((void));extern void lang_process PARAMS ((void));extern void lang_section_start PARAMS ((const char *, union etree_union *));extern void lang_add_entry PARAMS ((const char *, boolean));extern void lang_add_target PARAMS ((const char *));extern void lang_add_wild  PARAMS ((const char *, boolean, const char *, boolean, boolean, name_list *));extern void lang_add_map PARAMS ((const char *));extern void lang_add_fill PARAMS ((int));extern lang_assignment_statement_type * lang_add_assignment PARAMS ((union etree_union *));extern void lang_add_attribute PARAMS ((enum statement_enum));extern void lang_startup PARAMS ((const char *));extern void lang_float PARAMS ((enum bfd_boolean));extern void lang_leave_output_section_statement  PARAMS ((bfd_vma, const char *, struct lang_output_section_phdr_list *,           const char *));extern void lang_abs_symbol_at_end_of PARAMS ((const char *, const char *));extern void lang_abs_symbol_at_beginning_of PARAMS ((const char *,						     const char *));extern void lang_statement_append PARAMS ((struct statement_list *,					   union lang_statement_union *,					   union lang_statement_union **));extern void lang_for_each_input_file  PARAMS ((void (*dothis) (lang_input_statement_type *)));extern void lang_for_each_file  PARAMS ((void (*dothis) (lang_input_statement_type *)));extern bfd_vma lang_do_assignments  PARAMS ((lang_statement_union_type * s,	   lang_output_section_statement_type *output_section_statement,	   fill_type fill,	   bfd_vma dot));#define LANG_FOR_EACH_INPUT_STATEMENT(statement)		\  lang_input_statement_type *statement;				\  for (statement = (lang_input_statement_type *)file_chain.head;\       statement != (lang_input_statement_type *)NULL;		\       statement = (lang_input_statement_type *)statement->next)\extern void lang_process PARAMS ((void));extern void ldlang_add_file PARAMS ((lang_input_statement_type *));extern lang_output_section_statement_type *lang_output_section_find  PARAMS ((const char * const));extern lang_input_statement_type *lang_add_input_file  PARAMS ((const char *name, lang_input_file_enum_type file_type,	   const char *target));extern void lang_add_keepsyms_file PARAMS ((const char *filename));extern lang_output_section_statement_type *  lang_output_section_statement_lookup PARAMS ((const char * const name));extern void ldlang_add_undef PARAMS ((const char *const name));extern void lang_add_output_format PARAMS ((const char *, const char *,					    const char *, int from_script));extern void lang_list_init PARAMS ((lang_statement_list_type*));extern void lang_add_data PARAMS ((int type, union etree_union *));extern void lang_add_reloc  PARAMS ((bfd_reloc_code_real_type reloc, reloc_howto_type *howto,	   asection *section, const char *name, union etree_union *addend));extern void lang_for_each_statement  PARAMS ((void (*func) (lang_statement_union_type *)));extern PTR stat_alloc PARAMS ((size_t size));extern void dprint_statement PARAMS ((lang_statement_union_type *, int));extern bfd_vma lang_size_sections  PARAMS ((lang_statement_union_type *s,	   lang_output_section_statement_type *output_section_statement,	   lang_statement_union_type **prev, fill_type fill,	   bfd_vma dot, boolean relax));extern void lang_enter_group PARAMS ((void));extern void lang_leave_group PARAMS ((void));extern void wild_doit  PARAMS ((lang_statement_list_type *ptr, asection *section,	   lang_output_section_statement_type *output,	   lang_input_statement_type *file));extern void lang_new_phdr  PARAMS ((const char *, etree_type *, boolean, boolean, etree_type *,	   etree_type *));extern void lang_add_nocrossref PARAMS ((struct lang_nocrossref *));extern void lang_enter_overlay PARAMS ((etree_type *, etree_type *, int));extern void lang_enter_overlay_section PARAMS ((const char *));extern void lang_leave_overlay_section  PARAMS ((bfd_vma, struct lang_output_section_phdr_list *));extern void lang_leave_overlay  PARAMS ((bfd_vma, const char *, struct lang_output_section_phdr_list *,           const char *));extern struct bfd_elf_version_tree *lang_elf_version_info;extern struct bfd_elf_version_expr *lang_new_vers_regex  PARAMS ((struct bfd_elf_version_expr *, const char *, const char *));extern struct bfd_elf_version_tree *lang_new_vers_node  PARAMS ((struct bfd_elf_version_expr *, struct bfd_elf_version_expr *));extern struct bfd_elf_version_deps *lang_add_vers_depend  PARAMS ((struct bfd_elf_version_deps *, const char *));extern void lang_register_vers_node  PARAMS ((const char *, struct bfd_elf_version_tree *,	   struct bfd_elf_version_deps *));boolean unique_section_p PARAMS ((const char *));extern void lang_add_unique PARAMS ((const char *));#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?