OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [include/] [plugin-api.h] - Diff between revs 17 and 161

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 17 Rev 161
Line 91... Line 91...
  uint64_t size;
  uint64_t size;
  char *comdat_key;
  char *comdat_key;
  int resolution;
  int resolution;
};
};
 
 
 
/* An object's section.  */
 
 
 
struct ld_plugin_section
 
{
 
  const void* handle;
 
  unsigned int shndx;
 
};
 
 
/* Whether the symbol is a definition, reference, or common, weak or not.  */
/* Whether the symbol is a definition, reference, or common, weak or not.  */
 
 
enum ld_plugin_symbol_kind
enum ld_plugin_symbol_kind
{
{
  LDPK_DEF,
  LDPK_DEF,
Line 242... Line 250...
 
 
typedef
typedef
enum ld_plugin_status
enum ld_plugin_status
(*ld_plugin_message) (int level, const char *format, ...);
(*ld_plugin_message) (int level, const char *format, ...);
 
 
 
/* The linker's interface for retrieving the number of sections in an object.
 
   The handle is obtained in the claim_file handler.  This interface should
 
   only be invoked in the claim_file handler.   This function sets *COUNT to
 
   the number of sections in the object.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_get_input_section_count) (const void* handle, unsigned int *count);
 
 
 
/* The linker's interface for retrieving the section type of a specific
 
   section in an object.  This interface should only be invoked in the
 
   claim_file handler.  This function sets *TYPE to an ELF SHT_xxx value.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_get_input_section_type) (const struct ld_plugin_section section,
 
                                     unsigned int *type);
 
 
 
/* The linker's interface for retrieving the name of a specific section in
 
   an object. This interface should only be invoked in the claim_file handler.
 
   This function sets *SECTION_NAME_PTR to a null-terminated buffer allocated
 
   by malloc.  The plugin must free *SECTION_NAME_PTR.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_get_input_section_name) (const struct ld_plugin_section section,
 
                                     char **section_name_ptr);
 
 
 
/* The linker's interface for retrieving the contents of a specific section
 
   in an object.  This interface should only be invoked in the claim_file
 
   handler.  This function sets *SECTION_CONTENTS to point to a buffer that is
 
   valid until clam_file handler returns.  It sets *LEN to the size of the
 
   buffer.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_get_input_section_contents) (const struct ld_plugin_section section,
 
                                         const unsigned char **section_contents,
 
                                         size_t* len);
 
 
 
/* The linker's interface for specifying the desired order of sections.
 
   The sections should be specifed using the array SECTION_LIST in the
 
   order in which they should appear in the final layout.  NUM_SECTIONS
 
   specifies the number of entries in each array.  This should be invoked
 
   in the all_symbols_read handler.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_update_section_order) (const struct ld_plugin_section *section_list,
 
                                   unsigned int num_sections);
 
 
 
/* The linker's interface for specifying that reordering of sections is
 
   desired so that the linker can prepare for it.  This should be invoked
 
   before update_section_order, preferably in the claim_file handler.  */
 
 
 
typedef
 
enum ld_plugin_status
 
(*ld_plugin_allow_section_ordering) (void);
 
 
enum ld_plugin_level
enum ld_plugin_level
{
{
  LDPL_INFO,
  LDPL_INFO,
  LDPL_WARNING,
  LDPL_WARNING,
  LDPL_ERROR,
  LDPL_ERROR,
Line 272... Line 339...
  LDPT_RELEASE_INPUT_FILE,
  LDPT_RELEASE_INPUT_FILE,
  LDPT_ADD_INPUT_LIBRARY,
  LDPT_ADD_INPUT_LIBRARY,
  LDPT_OUTPUT_NAME,
  LDPT_OUTPUT_NAME,
  LDPT_SET_EXTRA_LIBRARY_PATH,
  LDPT_SET_EXTRA_LIBRARY_PATH,
  LDPT_GNU_LD_VERSION,
  LDPT_GNU_LD_VERSION,
  LDPT_GET_VIEW
  LDPT_GET_VIEW,
 
  LDPT_GET_INPUT_SECTION_COUNT,
 
  LDPT_GET_INPUT_SECTION_TYPE,
 
  LDPT_GET_INPUT_SECTION_NAME,
 
  LDPT_GET_INPUT_SECTION_CONTENTS,
 
  LDPT_UPDATE_SECTION_ORDER,
 
  LDPT_ALLOW_SECTION_ORDERING
};
};
 
 
/* The plugin transfer vector.  */
/* The plugin transfer vector.  */
 
 
struct ld_plugin_tv
struct ld_plugin_tv
Line 296... Line 369...
    ld_plugin_get_input_file tv_get_input_file;
    ld_plugin_get_input_file tv_get_input_file;
    ld_plugin_get_view tv_get_view;
    ld_plugin_get_view tv_get_view;
    ld_plugin_release_input_file tv_release_input_file;
    ld_plugin_release_input_file tv_release_input_file;
    ld_plugin_add_input_library tv_add_input_library;
    ld_plugin_add_input_library tv_add_input_library;
    ld_plugin_set_extra_library_path tv_set_extra_library_path;
    ld_plugin_set_extra_library_path tv_set_extra_library_path;
 
    ld_plugin_get_input_section_count tv_get_input_section_count;
 
    ld_plugin_get_input_section_type tv_get_input_section_type;
 
    ld_plugin_get_input_section_name tv_get_input_section_name;
 
    ld_plugin_get_input_section_contents tv_get_input_section_contents;
 
    ld_plugin_update_section_order tv_update_section_order;
 
    ld_plugin_allow_section_ordering tv_allow_section_ordering;
  } tv_u;
  } tv_u;
};
};
 
 
/* The plugin library's "onload" entry point.  */
/* The plugin library's "onload" entry point.  */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.