From 043beeed5375bcc7982af475b1d599e475f0467a Mon Sep 17 00:00:00 2001 From: cvs2svn <> Date: Thu, 8 Dec 2011 20:47:29 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'cgen- snapshot-20111201'. Sprout from gdb_7_4-branch 2011-12-08 20:47:28 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'gdb_7_4-branch'.' Delete: djunpack.bat include/COPYING include/COPYING3 include/ChangeLog include/ChangeLog-9103 include/MAINTAINERS include/alloca-conf.h include/ansidecl.h include/aout/ChangeLog include/aout/adobe.h include/aout/aout64.h include/aout/ar.h include/aout/dynix3.h include/aout/encap.h include/aout/host.h include/aout/hp.h include/aout/hp300hpux.h include/aout/hppa.h include/aout/ranlib.h include/aout/reloc.h include/aout/stab.def include/aout/stab_gnu.h include/aout/sun4.h include/bfdlink.h include/binary-io.h include/bout.h include/cgen/ChangeLog include/cgen/basic-modes.h include/cgen/basic-ops.h include/cgen/bitset.h include/coff/ChangeLog include/coff/ChangeLog-9103 include/coff/alpha.h include/coff/apollo.h include/coff/arm.h include/coff/aux-coff.h include/coff/ecoff.h include/coff/external.h include/coff/go32exe.h include/coff/h8300.h include/coff/h8500.h include/coff/i386.h include/coff/i860.h include/coff/i960.h include/coff/ia64.h include/coff/internal.h include/coff/m68k.h include/coff/m88k.h include/coff/mcore.h include/coff/mips.h include/coff/mipspe.h include/coff/or32.h include/coff/pe.h include/coff/powerpc.h include/coff/rs6000.h include/coff/rs6k64.h include/coff/sh.h include/coff/sparc.h include/coff/sym.h include/coff/symconst.h include/coff/ti.h include/coff/tic30.h include/coff/tic4x.h include/coff/tic54x.h include/coff/tic80.h include/coff/w65.h include/coff/we32k.h include/coff/x86_64.h include/coff/xcoff.h include/coff/z80.h include/coff/z8k.h include/demangle.h include/dis-asm.h include/dwarf2.h include/dyn-string.h include/elf/ChangeLog include/elf/ChangeLog-9103 include/elf/alpha.h include/elf/arc.h include/elf/arm.h include/elf/avr.h include/elf/bfin.h include/elf/common.h include/elf/cr16.h include/elf/cr16c.h include/elf/cris.h include/elf/crx.h include/elf/d10v.h include/elf/d30v.h include/elf/dlx.h include/elf/dwarf.h include/elf/epiphany.h include/elf/external.h include/elf/fr30.h include/elf/frv.h include/elf/h8.h include/elf/hppa.h include/elf/i370.h include/elf/i386.h include/elf/i860.h include/elf/i960.h include/elf/ia64.h include/elf/internal.h include/elf/ip2k.h include/elf/iq2000.h include/elf/lm32.h include/elf/m32c.h include/elf/m32r.h include/elf/m68hc11.h include/elf/m68k.h include/elf/mcore.h include/elf/mep.h include/elf/microblaze.h include/elf/mips.h include/elf/mmix.h include/elf/mn10200.h include/elf/mn10300.h include/elf/moxie.h include/elf/msp430.h include/elf/mt.h include/elf/openrisc.h include/elf/or32.h include/elf/pj.h include/elf/ppc.h include/elf/ppc64.h include/elf/reloc-macros.h include/elf/rl78.h include/elf/rx.h include/elf/s390.h include/elf/score.h include/elf/sh.h include/elf/sparc.h include/elf/spu.h include/elf/tic6x-attrs.h include/elf/tic6x.h include/elf/tilegx.h include/elf/tilepro.h include/elf/v850.h include/elf/vax.h include/elf/vxworks.h include/elf/x86-64.h include/elf/xc16x.h include/elf/xstormy16.h include/elf/xtensa.h include/fibheap.h include/filenames.h include/floatformat.h include/fnmatch.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/fileio.h include/gdb/remote-sim.h include/gdb/signals.def include/gdb/signals.h include/gdb/sim-arm.h include/gdb/sim-bfin.h include/gdb/sim-cr16.h include/gdb/sim-d10v.h include/gdb/sim-frv.h include/gdb/sim-h8300.h include/gdb/sim-lm32.h include/gdb/sim-m32c.h include/gdb/sim-ppc.h include/gdb/sim-rx.h include/gdb/sim-sh.h include/gdbm.h include/getopt.h include/hashtab.h include/hp-symtab.h include/ieee.h include/libiberty.h include/lto-symtab.h include/mach-o/ChangeLog include/mach-o/external.h include/mach-o/loader.h include/mach-o/reloc.h include/mach-o/x86-64.h include/md5.h include/nlm/ChangeLog include/nlm/alpha-ext.h include/nlm/common.h include/nlm/external.h include/nlm/i386-ext.h include/nlm/internal.h include/nlm/ppc-ext.h include/nlm/sparc32-ext.h include/oasys.h include/objalloc.h include/obstack.h include/opcode/ChangeLog include/opcode/ChangeLog-9103 include/opcode/alpha.h include/opcode/arc.h include/opcode/arm.h include/opcode/avr.h include/opcode/bfin.h include/opcode/cgen.h include/opcode/convex.h include/opcode/cr16.h include/opcode/cris.h include/opcode/crx.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/dlx.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/i960.h include/opcode/ia64.h include/opcode/m68hc11.h include/opcode/m68k.h include/opcode/m88k.h include/opcode/mips.h include/opcode/mmix.h include/opcode/mn10200.h include/opcode/mn10300.h include/opcode/moxie.h include/opcode/msp430.h include/opcode/np1.h include/opcode/ns32k.h include/opcode/or32.h include/opcode/pdp11.h include/opcode/pj.h include/opcode/pn.h include/opcode/ppc.h include/opcode/pyr.h include/opcode/rl78.h include/opcode/rx.h include/opcode/s390.h include/opcode/score-datadep.h include/opcode/score-inst.h include/opcode/sparc.h include/opcode/spu-insns.h include/opcode/spu.h include/opcode/tahoe.h include/opcode/tic30.h include/opcode/tic4x.h include/opcode/tic54x.h include/opcode/tic6x-control-registers.h include/opcode/tic6x-insn-formats.h include/opcode/tic6x-opcode-table.h include/opcode/tic6x.h include/opcode/tic80.h include/opcode/tilegx.h include/opcode/tilepro.h include/opcode/v850.h include/opcode/vax.h include/os9k.h include/partition.h include/plugin-api.h include/progress.h include/safe-ctype.h include/sha1.h include/simple-object.h include/som/ChangeLog include/som/aout.h include/som/clock.h include/som/internal.h include/som/lst.h include/som/reloc.h include/sort.h include/splay-tree.h include/symcat.h include/timeval-utils.h include/vms/ChangeLog include/vms/dcx.h include/vms/dmt.h include/vms/dsc.h include/vms/dst.h include/vms/eeom.h include/vms/egps.h include/vms/egsd.h include/vms/egst.h include/vms/egsy.h include/vms/eiaf.h include/vms/eicp.h include/vms/eidc.h include/vms/eiha.h include/vms/eihd.h include/vms/eihi.h include/vms/eihs.h include/vms/eihvn.h include/vms/eisd.h include/vms/emh.h include/vms/eobjrec.h include/vms/esdf.h include/vms/esdfm.h include/vms/esdfv.h include/vms/esgps.h include/vms/esrf.h include/vms/etir.h include/vms/internal.h include/vms/lbr.h include/vms/prt.h include/vms/shl.h include/xregex.h include/xregex2.h include/xtensa-config.h include/xtensa-isa-internal.h include/xtensa-isa.h texinfo/texinfo.tex --- include/plugin-api.h | 400 --------------------------------------------------- 1 file changed, 400 deletions(-) delete mode 100644 include/plugin-api.h (limited to 'include/plugin-api.h') diff --git a/include/plugin-api.h b/include/plugin-api.h deleted file mode 100644 index 122424c6c..000000000 --- a/include/plugin-api.h +++ /dev/null @@ -1,400 +0,0 @@ -/* plugin-api.h -- External linker plugin API. */ - -/* Copyright 2009, 2010 Free Software Foundation, Inc. - Written by Cary Coutant . - - This file is part of binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* This file defines the interface for writing a linker plugin, which is - described at < http://gcc.gnu.org/wiki/whopr/driver >. */ - -#ifndef PLUGIN_API_H -#define PLUGIN_API_H - -#ifdef HAVE_STDINT_H -#include -#elif defined(HAVE_INTTYPES_H) -#include -#endif -#include -#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) && \ - !defined(UINT64_MAX) && !defined(uint64_t) -#error can not find uint64_t type -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Status code returned by most API routines. */ - -enum ld_plugin_status -{ - LDPS_OK = 0, - LDPS_NO_SYMS, /* Attempt to get symbols that haven't been added. */ - LDPS_BAD_HANDLE, /* No claimed object associated with given handle. */ - LDPS_ERR - /* Additional Error codes TBD. */ -}; - -/* The version of the API specification. */ - -enum ld_plugin_api_version -{ - LD_PLUGIN_API_VERSION = 1 -}; - -/* The type of output file being generated by the linker. */ - -enum ld_plugin_output_file_type -{ - LDPO_REL, - LDPO_EXEC, - LDPO_DYN -}; - -/* An input file managed by the plugin library. */ - -struct ld_plugin_input_file -{ - const char *name; - int fd; - off_t offset; - off_t filesize; - void *handle; -}; - -/* A symbol belonging to an input file managed by the plugin library. */ - -struct ld_plugin_symbol -{ - char *name; - char *version; - int def; - int visibility; - uint64_t size; - char *comdat_key; - 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. */ - -enum ld_plugin_symbol_kind -{ - LDPK_DEF, - LDPK_WEAKDEF, - LDPK_UNDEF, - LDPK_WEAKUNDEF, - LDPK_COMMON -}; - -/* The visibility of the symbol. */ - -enum ld_plugin_symbol_visibility -{ - LDPV_DEFAULT, - LDPV_PROTECTED, - LDPV_INTERNAL, - LDPV_HIDDEN -}; - -/* How a symbol is resolved. */ - -enum ld_plugin_symbol_resolution -{ - LDPR_UNKNOWN = 0, - - /* Symbol is still undefined at this point. */ - LDPR_UNDEF, - - /* This is the prevailing definition of the symbol, with references from - regular object code. */ - LDPR_PREVAILING_DEF, - - /* This is the prevailing definition of the symbol, with no - references from regular objects. It is only referenced from IR - code. */ - LDPR_PREVAILING_DEF_IRONLY, - - /* This definition was pre-empted by a definition in a regular - object file. */ - LDPR_PREEMPTED_REG, - - /* This definition was pre-empted by a definition in another IR file. */ - LDPR_PREEMPTED_IR, - - /* This symbol was resolved by a definition in another IR file. */ - LDPR_RESOLVED_IR, - - /* This symbol was resolved by a definition in a regular object - linked into the main executable. */ - LDPR_RESOLVED_EXEC, - - /* This symbol was resolved by a definition in a shared object. */ - LDPR_RESOLVED_DYN, - - /* This is the prevailing definition of the symbol, with no - references from regular objects. It is only referenced from IR - code, but the symbol is exported and may be referenced from - a dynamic object (not seen at link time). */ - LDPR_PREVAILING_DEF_IRONLY_EXP -}; - -/* The plugin library's "claim file" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_claim_file_handler) ( - const struct ld_plugin_input_file *file, int *claimed); - -/* The plugin library's "all symbols read" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_all_symbols_read_handler) (void); - -/* The plugin library's cleanup handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_cleanup_handler) (void); - -/* The linker's interface for registering the "claim file" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_claim_file) (ld_plugin_claim_file_handler handler); - -/* The linker's interface for registering the "all symbols read" handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_all_symbols_read) ( - ld_plugin_all_symbols_read_handler handler); - -/* The linker's interface for registering the cleanup handler. */ - -typedef -enum ld_plugin_status -(*ld_plugin_register_cleanup) (ld_plugin_cleanup_handler handler); - -/* The linker's interface for adding symbols from a claimed input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_symbols) (void *handle, int nsyms, - const struct ld_plugin_symbol *syms); - -/* The linker's interface for getting the input file information with - an open (possibly re-opened) file descriptor. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_input_file) (const void *handle, - struct ld_plugin_input_file *file); - -typedef -enum ld_plugin_status -(*ld_plugin_get_view) (const void *handle, const void **viewp); - -/* The linker's interface for releasing the input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_release_input_file) (const void *handle); - -/* The linker's interface for retrieving symbol resolution information. */ - -typedef -enum ld_plugin_status -(*ld_plugin_get_symbols) (const void *handle, int nsyms, - struct ld_plugin_symbol *syms); - -/* The linker's interface for adding a compiled input file. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_input_file) (const char *pathname); - -/* The linker's interface for adding a library that should be searched. */ - -typedef -enum ld_plugin_status -(*ld_plugin_add_input_library) (const char *libname); - -/* The linker's interface for adding a library path that should be searched. */ - -typedef -enum ld_plugin_status -(*ld_plugin_set_extra_library_path) (const char *path); - -/* The linker's interface for issuing a warning or error message. */ - -typedef -enum ld_plugin_status -(*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 -{ - LDPL_INFO, - LDPL_WARNING, - LDPL_ERROR, - LDPL_FATAL -}; - -/* Values for the tv_tag field of the transfer vector. */ - -enum ld_plugin_tag -{ - LDPT_NULL = 0, - LDPT_API_VERSION, - LDPT_GOLD_VERSION, - LDPT_LINKER_OUTPUT, - LDPT_OPTION, - LDPT_REGISTER_CLAIM_FILE_HOOK, - LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK, - LDPT_REGISTER_CLEANUP_HOOK, - LDPT_ADD_SYMBOLS, - LDPT_GET_SYMBOLS, - LDPT_ADD_INPUT_FILE, - LDPT_MESSAGE, - LDPT_GET_INPUT_FILE, - LDPT_RELEASE_INPUT_FILE, - LDPT_ADD_INPUT_LIBRARY, - LDPT_OUTPUT_NAME, - LDPT_SET_EXTRA_LIBRARY_PATH, - LDPT_GNU_LD_VERSION, - 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, - LDPT_GET_SYMBOLS_V2 -}; - -/* The plugin transfer vector. */ - -struct ld_plugin_tv -{ - enum ld_plugin_tag tv_tag; - union - { - int tv_val; - const char *tv_string; - ld_plugin_register_claim_file tv_register_claim_file; - ld_plugin_register_all_symbols_read tv_register_all_symbols_read; - ld_plugin_register_cleanup tv_register_cleanup; - ld_plugin_add_symbols tv_add_symbols; - ld_plugin_get_symbols tv_get_symbols; - ld_plugin_add_input_file tv_add_input_file; - ld_plugin_message tv_message; - ld_plugin_get_input_file tv_get_input_file; - ld_plugin_get_view tv_get_view; - ld_plugin_release_input_file tv_release_input_file; - ld_plugin_add_input_library tv_add_input_library; - 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; -}; - -/* The plugin library's "onload" entry point. */ - -typedef -enum ld_plugin_status -(*ld_plugin_onload) (struct ld_plugin_tv *tv); - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(PLUGIN_API_H) */ -- cgit v1.2.3