URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc
- from Rev 725 to Rev 726
- ↔ Reverse comparison
Rev 725 → Rev 726
/trunk/gnu-dev/or1k-gcc/include/lto-symtab.h
0,0 → 1,41
/* Data types used in the IL symbol table. |
Copyright (C) 2009 Free Software Foundation, Inc. |
Contributed by Rafael Espindola <espindola@google.com> |
|
This file is part of GCC. |
|
GCC 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, or (at your option) any later |
version. |
|
GCC 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 GCC; see the file COPYING3. If not see |
<http://www.gnu.org/licenses/>. */ |
|
#ifndef GCC_LTO_SYMTAB_H |
#define GCC_LTO_SYMTAB_H |
|
enum gcc_plugin_symbol_kind |
{ |
GCCPK_DEF, |
GCCPK_WEAKDEF, |
GCCPK_UNDEF, |
GCCPK_WEAKUNDEF, |
GCCPK_COMMON |
}; |
|
enum gcc_plugin_symbol_visibility |
{ |
GCCPV_DEFAULT, |
GCCPV_PROTECTED, |
GCCPV_INTERNAL, |
GCCPV_HIDDEN |
}; |
|
#endif /* GCC_LTO_SYMTAB_H */ |
/trunk/gnu-dev/or1k-gcc/include/ChangeLog-9103
0,0 → 1,2682
2003-12-19 Andreas Tobler <a.tobler@schweiz.ch> |
|
* include/fibheap.h (fibnode): Use __extension__ for |
bit-fields mark and degree if __GNUC__. |
|
2003-12-18 Kazu Hirata <kazu@cs.umass.edu> |
|
* include/fibheap.h (fibnode): Use unsigned long int for |
bit-fields if __GNUC__ is defined. |
|
2003-12-19 Andreas Tobler <a.tobler@schweiz.ch> |
|
* fibheap.h (fibnode): Use __extension__ for |
bit-fields mark and degree if __GNUC__. |
|
2003-12-18 Kazu Hirata <kazu@cs.umass.edu> |
|
* fibheap.h (fibnode): Use unsigned long int for |
bit-fields if __GNUC__ is defined. |
|
2003-12-04 H.J. Lu <hongjiu.lu@intel.com> |
|
* bfdlink.h (bfd_link_info): Change relax_finalizing to |
need_relax_finalize. |
|
2003-12-03 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h (struct bfd_link_hash_entry): Rename "next" to "und_next". |
|
2003-12-02 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h (struct bfd_link_info): Remove mpc860c0 field. |
|
2003-11-14 Nick Clifton <nickc@redhat.com> |
|
* dis-asm.h (struct disassemble_info): Add new field |
'symbol_is_valid' which is a function which can tell the |
disassembler to skip certain symbols as they should not be |
displayed to the user. |
(arm_symbol_is_valid): New prototype. This is the ARM |
specific function for the symbol_is_valid field. |
(generic_symbol_is_valid): New prototype. This is the default |
function pointed to by the symbol_is_valid field. |
|
2003-11-06 Bruno Rohee <bruno@rohee.com> |
|
* hp-symtab.h: Fix "the the" typo. |
|
2003-10-24 H.J. Lu <hongjiu.lu@intel.com> |
|
* bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove |
"wildcard". |
|
2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk> |
|
* obstack.h: Merge the following change from gnulib: |
2003-10-21 Paul Eggert <eggert@twinsun.com> |
* obstack.h (obstack_1grow_fast): Properly parenthesize arg. |
(obstack_ptr_grow_fast, obstack_int_grow_fast): |
Don't use lvalue casts, as GCC plans to remove support for them |
in GCC 3.5. Reported by Joseph S. Myers. This bug |
was also present in the non-GCC version, indicating that this |
code had always been buggy and had never been widely used. |
(obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank): |
Use the fast variant of each macro, rather than copying the |
definiens of the fast variant; that way, we'll be more likely to |
catch future bugs in the fast variants. |
|
2003-10-22 Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (struct bfd_elf_version_expr): Remove match field. |
Add wildcard and mask fields. |
(BFD_ELF_VERSION_C_TYPE): Define. |
(BFD_ELF_VERSION_CXX_TYPE): Likewise. |
(BFD_ELF_VERSION_JAVA_TYPE): Likewise. |
(struct bfd_elf_version_expr_head): New. |
(struct bfd_elf_version_tree): Add match field. |
Change type of globals and locals fields |
to struct bfd_elf_version_expr_head. |
|
2003-09-22 Andrew Cagney <cagney@redhat.com> |
|
* floatformat.h (struct floatformat): Add field "is_valid". |
|
2003-09-15 Andrew Cagney <cagney@redhat.com> |
|
* floatformat.h (floatformat_to_double): Make input buffer constant. |
(floatformat_from_double, floatformat_is_valid): Ditto. |
|
2003-09-15 Andrew Cagney <cagney@redhat.com> |
|
* floatformat.h (struct floatformat): Make "exp_bias" signed. |
|
2003-09-15 Daniel Jacobowitz <drow@mvista.com> |
|
* floatformat.h (floatformat_is_valid): Add prototype. |
|
2003-08-27 Andrew Cagney <cagney@redhat.com> |
|
* dis-asm.h (init_disassemble_info): Declare. |
(INIT_DISASSEMBLE_INFO): Redefine as a call to |
init_disassemble_info. |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Ditto. |
|
2003-08-20 Nick Clifton <nickc@redhat.com> |
|
* bfdlink.h (enum report_method): New enum. Describes how to |
report something. |
(struct bfd_link_info): Delete fields 'no_undefined' and |
'allow_shlib_undefined'. Replace with |
'unresolved_symbols_in_objects' and |
'unresolved_symbols_in_shared_libs'. |
|
2003-08-07 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h: Remove PARAMS macro. Replace PTR with void *. |
* dis-asm.h: Likewise. |
|
2003-07-09 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h: Undef all macros before defining them. |
|
2003-07-06 H.J. Lu <hongjiu.lu@intel.com> |
|
* demangle.h: Support C++. |
|
2003-07-01 Zack Weinberg <zack@codesourcery.com> |
|
* filenames.h: New file imported from binutils. |
|
2003-06-30 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h: New file imported from binutils. |
|
2003-06-30 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_CONST16, XCHAL_HAVE_ABS, |
XCHAL_HAVE_ADDX, XCHAL_HAVE_L32R): Define. |
|
2003-06-25 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h: Correct spelling of "relocatable". |
|
2003-06-22 Zack Weinberg <zack@codesourcery.com> |
|
* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC): Rename to |
HOST_CHARSET_UNKNOWN, HOST_CHARSET_ASCII, HOST_CHARSET_EBCDIC |
respectively. |
|
2003-06-21 Zack Weinberg <zack@codesourcery.com> |
|
* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC, HOST_CHARSET): |
New #defines. |
|
2003-06-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h: Delete HAVE_LONG_DOUBLE GCC bootstrap support. |
|
2003-05-23 Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (struct bfd_link_info): Add execstack and noexecstack. |
|
2003-06-03 H.J. Lu <hongjiu.lu@intel.com> |
|
* bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New. |
|
2003-05-30 Ulrich Drepper <drepper@redhat.com> |
Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (struct bfd_link_info): Add pie and executable |
bits. |
|
2003-05-21 Nick Clifton <nickc@redhat.com> |
|
* bfdlink.h (struct bfd_link_hash_table): Fix typo in comment. |
|
2003-05-15 Jim Blandy <jimb@redhat.com> |
|
* libiberty.h (hex_value): Make the value an unsigned int, to |
avoid unexpected sign-extension when cast to unsigned types larger |
than int --- like bfd_vma, on some platforms. |
(_hex_value): Update declaration. |
|
2003-05-09 Alan Modra <amodra@bigpond.net.au> |
|
* xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on |
gen_num_opcodes_fn return type. |
|
2003-05-07 Jason Merrill <jason@redhat.com> |
|
* hashtab.h (iterative_hash): Prototype. |
(iterative_hash_object): New macro. |
|
2003-04-28 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_info): Add relax_finalizing. |
|
2003-04-23 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_callbacks): Add error_handler. |
|
2003-04-02 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h: Remove comment indicating that this is a |
generated file. |
|
2003-04-01 Bob Wilson <bob.wilson@acm.org> |
|
* dis-asm.h (print_insn_xtensa): Declare. |
* xtensa-config.h: New file. |
* xtensa-isa-internal.h: Likewise. |
* xtensa-isa.h: Likewise. |
|
2003-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (ATTRIBUTE_NONNULL, ATTRIBUTE_NULL_PRINTF, |
ATTRIBUTE_NULL_PRINTF_1, ATTRIBUTE_NULL_PRINTF_2, |
ATTRIBUTE_NULL_PRINTF_3, ATTRIBUTE_NULL_PRINTF_4, |
ATTRIBUTE_NULL_PRINTF_5): New. |
(ATTRIBUTE_PRINTF): Add ATTRIBUTE_NONNULL. |
|
2003-03-17 Jan Hubicka <jh@suse.cz> |
|
* hashtab.h (htab_traverse_noresize): Declare. |
|
2003-02-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h: Document return value of physmem routines. |
|
2003-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (physmem_total, physmem_available): Prototype. |
|
2003-02-20 Daniel Jacobowitz <drow@mvista.com> |
|
* libiberty.h (lrealpath): Add declaration. |
|
2003-01-31 Grant Grundler <grundler@dsl2.external.hp.com> |
|
* hppa.h (ldwa, ldda): Add ordered opcodes. |
|
2003-01-26 Daniel Jacobowitz <drow@mvista.com> |
|
* hashtab.h (htab_alloc_with_arg, htab_free_with_arg): Add new types. |
(struct htab): Add alloc_arg, alloc_with_arg_f, free_with_arg_f. |
(htab_create_alloc_ex): New prototype. |
(htab_set_functions_ex): New prototype. |
|
2002-07-17 Geoffrey Keating <geoffk@redhat.com> |
|
* splay-tree.h (GTY): Define if undefined. |
(splay_tree_allocate_fn): Return PTR for compatibility, not void *. |
(struct splay_tree_node_s): Support gengtype. |
(struct splay_tree_s): Likewise. Make allocate_data a PTR, |
not a void *. |
|
2002-01-02 Ben Elliston <bje@redhat.com> |
|
* dis-asm.h (print_insn_iq2000): Declare. |
|
2002-12-24 Dmitry Diky <diwil@mail.ru> |
|
* dis-asm.h: Add msp430 disassembler prototype. |
|
2002-12-27 Chris Demetriou <cgd@broadcom.com> |
|
* dis-asm.h (print_mips_disassembler_options): Prototype. |
|
2002-12-23 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h (struct bfd_link_info): Add "strip_discarded". |
|
2002-12-20 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h (struct bfd_link_info): Replace bfd_boolean fields with |
bit-fields. Rearrange to put all like types together. |
|
2002-11-30 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h: Replace boolean with bfd_boolean. Formatting. |
|
2002-11-23 Simon Burge <simonb@wasabisystems.com> |
|
* libiberty.h (basename): Add NetBSD to the list. |
|
2002-11-22 Daniel Jacobowitz <drow@mvista.com> |
|
* libiberty.h (make_relative_prefix): Add prototype. |
|
2002-11-14 Egor Duda <deo@logos-m.ru> |
|
* bfdlink.h (struct bfd_link_info): Add new boolean |
field pei386_runtime_pseudo_reloc. |
|
2002-10-26 Roger Sayle <roger@eyesopen.com> |
|
* partition.h: Close the extern "C" scope when compiling with C++. |
|
2002-10-26 Roger Sayle <roger@eyesopen.com> |
DJ Delorie <dj@redhat.com> |
|
PR bootstrap/8351 |
* getopt.h: Avoid prototyping getopt with no arguments in C++. |
|
2002-10-24 Nathan Tallent <eraxxon@alumni.rice.edu> |
|
* ansidecl.h (__STDC__): Add (__alpha && __cplusplus) to the |
list of platform compilers that may look, smell and act |
like __STDC__ but that may not define it. |
|
2002-10-11 David O'Brien <obrien@FreeBSD.org> |
|
* getopt.h: getopt is in unistd.h (based on SUSv2). |
|
2002-09-26 Andrew Cagney <ac131313@redhat.com> |
|
* regs/: Delete directory. |
|
2002-09-19 Alexandre Oliva <aoliva@redhat.com> |
|
* libiberty.h (asprintf, vasprintf): Don't declare them if the |
corresponding HAVE_DECL_ macro is 1. |
|
2002-09-19 Nathan Tallent <eraxxon@alumni.rice.edu> |
|
* dis-asm.h: Remove (errant) trailing semicolon (;) from the |
extern "C" { } declaration. |
|
2002-09-04 Nick Clifton <nickc@redhat.com> |
|
* dis-asm.h (print_ppc_disassembler_options): Prototype. |
|
2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
|
* dis-asm.h: Add standard disassembler for tic4x. |
|
2002-08-07 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_info): Add allow_undefined_version. |
(bfd_elf_version_expr): Add symver and script. |
|
2002-07-31 Ian Dall <ian@sibyl.beware.dropbear.id.au> |
|
* bfdlink.h (bfd_link_common_skip_ar_symbols): New enum. |
(struct bfd_link_info): Add new field 'common_skip_ar_symbols'. |
|
2002-07-19 Denis Chertykov <denisc@overta.ru> |
Matthew Green <mrg@redhat.com> |
|
* dis-asm.h (print_insn_ip2k): Declare. |
|
2002-07-01 Alan Modra <amodra@bigpond.net.au> |
|
* bfdlink.h (struct bfd_sym_chain): Declare. |
(struct bfd_link_info): Add gc_sym_list. Formatting fixes. |
|
2002-06-25 Alan Modra <amodra@bigpond.net.au> |
|
* demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>. |
* fibheap.h: Likewise. |
* hashtab.h: Likewise. |
* partition.h: Likewise. |
* sort.h: Likewise. |
* splay-tree.h: Likewise. |
|
2002-06-24 Alan Modra <amodra@bigpond.net.au> |
|
* libiberty.h (basename): Don't declare if HAVE_DECL_BASENAME. |
* getopt.h (getopt): Don't declare if HAVE_DECL_GETOPT. |
|
2002-06-18 Dave Brolley <brolley@redhat.com> |
|
From Catherine Moore: |
* dis-asm.h (print_insn_frv): New prototype. |
|
2002-06-09 Andrew Cagney <cagney@redhat.com> |
|
* remote-sim.h: Move to directory gdb/. |
* callback.h: Move to directory gdb/. |
|
2002-06-07 Charles Wilson <cwilson@ece.gatech.edu> |
|
* bfdlink.h (struct bfd_link_info): Change type of |
pei386_auto_import field to int so that -1 can mean enabled by |
default and 1 can mean enabled by command line switch. |
|
2002-06-06 DJ Delorie <dj@redhat.com> |
|
* hashtab.h (htab): Rearrange new members for backward |
compatibility. |
(htab_create): Don't use a macro that requires other headers. |
|
2002-06-05 Geoffrey Keating <geoffk@redhat.com> |
|
* hashtab.h (htab_create): Restore prototype for backward |
compatibility. |
(htab_try_create): Likewise. |
|
2002-05-22 Geoffrey Keating <geoffk@redhat.com> |
|
* hashtab.h (struct htab): Update for change to length specifier. |
|
2002-05-10 Geoffrey Keating <geoffk@redhat.com> |
|
* hashtab.h (GTY): Define if undefined. |
(htab_alloc): New typedef. |
(htab_free): New typedef. |
(struct htab): Support gengtype; allow user-specified memory |
allocation. |
(htab_create_alloc): New. |
(htab_create): Replace with #define. |
(htab_try_create): Delete. |
|
2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net> |
|
* dis-asm.h: Prototype print_insn_dlx. |
|
2002-05-23 Andrew Cagney <ac131313@redhat.com> |
|
* sim-d10v.h: Delete file. Moved to include/gdb/. |
|
2002-05-21 H.J. Lu (hjl@gnu.org) |
|
* bfdlink.h (bfd_link_info): Add allow_multiple_definition. |
|
2002-05-17 J"orn Rennecke <joern.rennecke@superh.com> |
|
* dis-asm.h (print_insn_shl, print_insn_sh64l): Remove prototype. |
|
2002-04-16 David S. Miller <davem@redhat.com> |
|
* xregex2.h (__restrict_arr): Define to __restrict on GCC |
3.1 and later. Do not redefine. |
|
2002-04-01 Phil Edwards <pme@gcc.gnu.org> |
|
* dyn-string.h: Also allow IN_GLIBCPP_V3 to redefine names. |
|
2002-03-10 Daniel Jacobowitz <drow@mvista.com> |
|
* gdb: New directory. |
|
2002-03-06 Andrew Cagney <ac131313@redhat.com> |
|
* floatformat.h (floatformat_arm_ext): Delete declaration. |
|
2002-02-21 Jim Blandy <jimb@redhat.com> |
|
Allow the user to specify functions for allocating memory for |
splay tree roots and nodes. |
* splay-tree.h (splay_tree_allocate_fn, splay_tree_deallocate_fn): |
New types. |
(splay_tree): New fields: `allocate', `deallocate', and |
`allocate_data'. |
(splay_tree_new_with_allocator): New function declaration. |
|
2002-02-15 Alan Modra <amodra@bigpond.net.au> |
|
Support arbitrary length fill patterns. |
* bfdlink.h (enum bfd_link_order_type): Remove bfd_fill_link_order. |
(struct bfd_link_order): Remove fill. Add data.size. |
|
2002-02-08 Alexandre Oliva <aoliva@redhat.com> |
|
Contribute sh64-elf. |
2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com> |
* dis-asm.h (print_insn_sh64): New prototype. |
(print_insn_sh64l): New prototype. |
(print_insn_sh64x_media): New prototype. |
|
2002-02-05 Frank Ch. Eigler <fche@redhat.com> |
|
* dis-asm.h (disassemble_info): New field `insn_sets'. |
(INIT_DISASSEMBLE_INFO): Clear it. |
|
2002-02-05 Jason Merrill <jason@redhat.com> |
|
* demangle.h (cplus_demangle_v3): Add "options" parm. |
(cplus_demangle_v3_type): Remove prototype. |
(DMGL_VERBOSE): New macro. |
(DMGL_TYPES): New macro. |
|
2002-02-02 H.J. Lu (hjl@gnu.org) |
|
* demangle.h (cplus_demangle_v3_type): New prototype. |
|
2002-01-31 Ivan Guzvinec <ivang@opencores.org> |
|
* dis-asm.h : Add support for or32 targets |
|
2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC. |
|
2002-01-27 David O'Brien <obrien@FreeBSD.org> |
|
* cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead. |
|
2001-12-14 Nick Clifton <nickc@cambridge.redhat.com> |
|
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the |
disassembler_options field (to NULL). |
|
2001-12-13 Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field. |
|
2001-12-07 Geoffrey Keating <geoffk@redhat.com> |
|
* dis-asm.h (print_insn_xstormy16): Declare. |
|
2001-12-06 Richard Henderson <rth@redhat.com> |
|
* demangle.h (no_demangling): New. |
(NO_DEMANGLING_STYLE_STRING): New. |
|
2001-11-14 Alan Modra <amodra@bigpond.net.au> |
|
* dis-asm.h (print_insn_i386): Declare. |
|
2001-11-11 Timothy Wall <twall@alum.mit.edu> |
|
* dis-asm.h: Fix comment to refer to octets rather than bytes. |
|
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com> |
|
* dis-asm.h (print_insn_mmix): Add prototype. |
|
2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk> |
|
* safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New. |
|
2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (hex_init): Revert delete. |
|
* libiberty.h (_hex_value): Const-ify. |
(hex_init): Delete. |
|
2001-10-16 Christopher Faylor <cgf@redhat.com> |
|
* filenames.h: Add cygwin to the list of dosish style path systems. |
|
2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* demangle.h (demangler_engine): Const-ify. |
* libiberty.h (buildargv): Likewise. |
|
2001-10-03 Vassili Karpov <malc@pulsesoft.com> |
|
* bfdlink.h (struct bfd_link_info): Add nocopyreloc field. |
|
2001-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (reconcat): New function. |
|
2001-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (concat, concat_length, concat_copy, concat_copy2, |
ACONCAT): Improve comments. |
|
2001-09-18 Alan Modra <amodra@bigpond.net.au> |
|
* objalloc.h (OBJALLOC_ALIGN): Define using offsetof. |
|
2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (concat_length, concat_copy, concat_copy2, |
libiberty_concat_ptr, ACONCAT): New. |
|
* libiberty.h (ASTRDUP): New macro. |
libiberty_optr, libiberty_nptr, libiberty_len): Declare. |
|
2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h: Update comments reflecting previous change. |
|
2001-08-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses. |
|
2001-08-25 Nick Clifton <nickc@cambridge.redhat.com> |
|
* bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to |
unsigned to remove a compile time warning message. |
|
2001-08-24 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_hash_table_type): New. The linker hash |
table type, bfd_link_generic_hash_table and |
bfd_link_elf_hash_table. |
(bfd_link_hash_table): Add a new field, type, for the linker |
hash table type. |
|
2001-08-23 Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (struct bfd_link_info): Add combreloc and |
spare_dynamic_tags fields. |
|
2001-08-23 Lars Brinkhoff <lars@nocrew.org> |
|
* dyn-string.h, fibheap.h, partition.h, sort.h, splay-tree.h: |
replace "GNU CC" with "GCC". |
|
2001-08-21 Richard Henderson <rth@redhat.com> |
|
* fibheap.h: Tidy formatting. |
(fibnode_t): Limit degree to 31 bits to avoid warning. |
|
2001-08-20 Daniel Berlin <dan@cgsoftware.com> |
|
* fibheap.h: New file. Fibonacci heap. |
|
2001-08-20 Andrew Cagney <ac131313@redhat.com> |
|
* floatformat.h (floatformat_arm_ext): Document as deprecated. |
(floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword) |
(floatformat_ia64_spill_little, floatformat_ia64_quad_little) |
(floatformat_ia64_spill_big, floatformat_ia64_quad_big) |
(floatformat_m88110_harris_ext): Declare. |
|
2001-08-18 Zack Weinberg <zackw@panix.com> |
|
* ansidecl.h: Reorganize for readability, remove documentation |
of obsolete macros, document PARAMS and VPARAMS. Add new |
macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic |
function implementation. |
|
2001-08-16 Richard Henderson <rth@redhat.com> |
|
* hashtab.h (htab_hash_string): Declare. |
|
2001-08-10 Andrew Cagney <ac131313@redhat.com> |
|
* libiberty.h (lbasename): Change function declaration to return a |
const char pointer. |
|
2001-08-02 Mark Kettenis <kettenis@gnu.org> |
|
* xregex.h (_REGEX_RE_COMP): Define. |
(re_comp): Define to xre_comp. |
(re_exec): Define to xre_exec. |
|
2001-08-02 Charles Wilson <cwilson@ece.gatech.edu> |
|
* bfdlink.h (struct bfd_link_info): add new boolean |
field pei386_auto_import. |
|
2001-07-18 Andreas Jaeger <aj@suse.de> |
|
* xregex2.h: Place under LGPL version 2.1. |
|
2001-07-10 Jeff Johnston <jjohnstn@redhat.com> |
|
* xregex.h: New file to support libiberty regex. |
* xregex2.h: Ditto. |
|
2001-06-15 Hans-Peter Nilsson <hp@axis.com> |
|
* bfdlink.h (struct bfd_link_info): New member export_dynamic. |
|
2001-05-16 Matt Kraai <kraai@alumni.carnegiemellon.edu> |
|
* partition.h: Fix misspelling of `implementation'. |
|
2001-05-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (NULL_PTR): Delete. |
|
2001-05-07 Zack Weinberg <zackw@stanford.edu> |
|
* demangle.h: Use PARAMS for all prototypes. |
* ternary.h: Use PARAMS for all prototypes. Use PTR, not void *. |
Make arguments constant where possible. |
|
2001-05-07 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (splay_tree_max): New function. |
(splay_tree_min): Likewise. |
|
2001-04-27 Johan Rydberg <jrydberg@opencores.org> |
|
* dis-asm.h (print_insn_openrisc): Add prototype. |
|
2001-04-15 Daniel Berlin <dan@cgsoftware.com> |
|
* ternary.h: New file - Ternary search tree header. |
|
2001-04-13 Jakub Jelinek <jakub@redhat.com> |
|
* bfdlink.h (bfd_link_discard): Add discard_sec_merge. |
|
2001-04-03 Zack Weinberg <zackw@stanford.edu> |
|
* ansidecl.h: All logic from gcc/gansidecl.h moved here. |
|
2001-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (alloca): Handle setting C_ALLOCA. |
|
2001-03-20 Jim Blandy <jimb@redhat.com> |
|
* demangle.h (enum gnu_v3_constructor_kinds, |
is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds, |
is_gnu_v3_mangled_dtor): New declarations. |
|
2001-03-14 Nick Clifton <nickc@redhat.com> |
|
* ansidecl.h: Fix copyright dates. |
* demangle.h: Fix copyright dates. |
* floatformat.h: Fix copyright dates. |
* fnmatch.h: Fix copyright dates. |
* getopt.h: Fix copyright dates. |
* libiberty.h: Add FSF copyright notice. |
* md5.h: Fix copyright dates. |
* obstack.h: Fix copyright dates. |
* splay-tree.h: Fix copyright dates. |
|
2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> |
John David Anglin <dave@hiauly1.hia.nrc.ca> |
|
* libiberty.h: Add lbasename. |
|
2001-03-06 Zack Weinberg <zackw@stanford.edu> |
|
* libiberty.h: Prototype C_alloca; define alloca to either |
__builtin_alloca or C_alloca as appropriate. |
|
2001-03-01 John David Anglin <dave@hiauly1.hia.nrc.ca> |
|
* safe-ctype.h (_sch_test): Cast enum bit to unsigned short int for pcc |
compatibility. |
|
2001-02-18 lars brinkhoff <lars@nocrew.org> |
|
* dis-asm.h: Add PDP-11 target. |
|
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com> |
|
* dis-asm.h: Add linux target for S/390. |
|
2001-01-11 Peter Targett <peter.targett@arccores.com> |
|
* dis-asm.h (arc_get_disassembler): Correct declaration. |
|
2001-01-09 Philip Blundell <philb@gnu.org> |
|
* bin-bugs.h (REPORT_BUGS_TO): Set to `bug-binutils@gnu.org'. |
|
2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> |
|
* COPYING: Update to current |
ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references |
to 19yy as example year in copyright notice). |
|
2000-12-19 Hans-Peter Nilsson <hp@bitrange.com> |
|
* dis-asm.h (struct disassemble_info): New member "section". |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize private_data member. |
Initialize section member. |
|
2000-12-16 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
|
* safe-ctype.h: Make code work on all targets and not just on |
targets where a char is 8 bits. |
|
2000-12-10 Fred Fish <fnf@be.com> |
|
* bfdlink.h (struct bfd_link_info): Add new allow_shlib_undefined |
member to struct for systems where it is normal to have undefined |
symbols in shared libraries at runtime and the runtime linker |
takes care of redirecting them. |
|
2000-12-07 Zack Weinberg <zack@wolery.stanford.edu> |
|
* safe-ctype.h: New file. |
|
2000-12-06 Rodney Brown <RodneyBrown@mynd.com> |
|
* getopt.h obstack.h: Standarize copyright statement. |
|
2000-12-04 Richard Henderson <rth@redhat.com> |
|
* demangle.h: Change "new_abi" to "v3" everywhere. |
|
2000-11-22 Zack Weinberg <zack@wolery.stanford.edu> |
|
* libiberty.h: Move #includes to top. Prototype xmalloc_failed. |
|
2000-11-15 Kenneth Block <kenneth.block@compaq.com> |
|
* demangle.h: Add gnat and java demangle styles. |
|
2000-11-04 Hans-Peter Nilsson <hp@bitrange.com> |
|
* hashtab.h (struct htab): Add member return_allocation_failure. |
(htab_try_create): New prototype. Mention which functions may |
return NULL when this is used. |
|
2000-11-03 Hans-Peter Nilsson <hp@bitrange.com> |
|
* hashtab.h: Change void * to PTR where necessary. |
|
2000-10-11 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (splay_tree_predecessor): Declare. |
|
2000-09-29 Hans-Peter Nilsson <hp@axis.com> |
|
* dis-asm.h: Declare cris_get_disassembler, not print_insn_cris. |
Fix typo in comment. |
|
2000-09-28 John David Anglin <dave@hiauly1.hia.nrc.ca> |
|
* alloca-conf.h: New file (copied from libiberty). |
|
2000-09-05 John David Anglin <dave@hiauly1.hia.nrc.ca> |
|
* md5.h (md5_uint32): Choose via INT_MAX instead of UINT_MAX. |
|
2000-09-04 Alex Samuel <samuel@codesourcery.com> |
|
* dyn-string.h: Adjust formatting. |
(dyn_string_insert_char): New macro. New declaration. |
|
2000-08-28 Jason Merrill <jason@redhat.com> |
|
* md5.h: New file. |
|
2000-08-24 Greg McGary <greg@mcgary.org> |
|
* libiberty.h (ARRAY_SIZE): New macro. |
|
2000-07-29 Nick Clifton <nickc@cygnus.com> |
|
* os9k.h: Add copyright notice. |
Fix formatting. |
|
2000-07-22 Jason Eckhardt <jle@cygnus.com> |
|
* dis-asm.h (print_insn_i860): Add prototype. |
|
2000-07-20 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_info): Add new_dtags. |
|
2000-07-20 Hans-Peter Nilsson <hp@axis.com> |
|
* dis-asm.h (print_insn_cris): Declare. |
|
2000-07-19 H.J. Lu (hjl@gnu.org) |
|
* bfdlink.h (bfd_link_info): Add flags and flags_1. |
|
2000-06-05 DJ Delorie <dj@redhat.com> |
|
* MAINTAINERS: new |
|
2000-06-21 Alex Samuel <samuel@codesourcery.com> |
|
* dyn-string.h (dyn_string_init, dyn_string_new, |
dyn_string_delete, dyn_string_release, dyn_string_resize, |
dyn_string_clear, dyn_string_copy, dyn_string_copy_cstr, |
dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert, |
dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr, |
dyn_string_append_char, dyn_string_substring_dyn_string_eq): |
Define as same name with __cxa_ prepended, if IN_LIBGCC2. |
(dyn_string_init, dyn_string_copy, dyn_string_copy_cstr, |
dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert, |
dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr, |
dyn_string_append_char, dyn_string_substring): Change return type |
to int. |
|
2000-06-18 Stephane Carrez <stcarrez@worldnet.fr> |
|
* dis-asm.h (print_insn_m68hc12): Define. |
(print_insn_m68hc11): Likewise. |
|
2000-06-18 Nick Clifton <nickc@redhat.com> |
|
* os9k.h: Change values of MODSYNC and CRCCON due to bug report |
from Russ Magee <rmagee@home.com>. |
|
2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* demangle.h (demangling_styles): Remove trailing comma in enum. |
|
* dyn-string.h (dyn_string_append_char): Change parameter from |
char to int. |
|
2000-06-04 Alex Samuel <samuel@codesourcery.com> |
|
* dyn-string.h: Move here from gcc/dyn-string.h. Add new functions. |
|
* demangle.h (DMGL_GNU_NEW_ABI): New macro. |
(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI. |
(current_demangling_style): Add gnu_new_abi_demangling. |
(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro. |
(GNU_NEW_ABI_DEMANGLING): Likewise. |
(cplus_demangle_new_abi): New declaration. |
|
Tue May 30 16:53:34 2000 Andrew Cagney <cagney@b1.cygnus.com> |
|
* floatformat.h (struct floatformat): Add field name. |
|
2000-05-26 Eli Zaretskii <eliz@is.elta.co.il> |
|
* filenames.h: New file. |
(HAVE_DOS_BASED_FILE_SYSTEM, IS_DIR_SEPARATOR) |
(IS_ABSOLUTE_PATH, FILENAME_CMP): New macros. |
|
2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* getopt.h (getopt): Also check HAVE_DECL_* when prototyping. |
|
* libiberty.h (basename): Likewise. |
|
2000-05-17 S. Bharadwaj Yadavalli <sby@scrugs.lkg.dec.com> |
Rick Gorton <gorton@scrugs.lkg.dec.com> |
|
* bfdlink.h (struct bfd_link_info): Add emitrelocations flag. |
|
2000-05-08 Alan Modra <alan@linuxcare.com.au> |
|
* dis-asm.h (print_insn_tic54x): Declare. |
|
2000-05-06 Zack Weinberg <zack@wolery.cumb.org> |
|
* ansidecl.h: #define __extension__ to nothing if |
GCC_VERSION < 2008. |
|
2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* demangle.h (demangler_engine): Constify. |
|
Thu May 4 17:15:26 2000 Philippe De Muyter <phdm@macqel.be> |
|
* sort.h (sys/types.h): File included unconditionnaly. |
(stddef.h): File include only #ifdef __STDC__. |
|
2000-05-03 Zack Weinberg <zack@wolery.cumb.org> |
|
* symcat.h: Remove #endif label. |
|
2000-04-28 Kenneth Block <block@zk3.dec.com> |
Jason Merrill <jason@casey.cygnus.com> |
|
* demangle.h (libiberty_demanglers): new table for different styles. |
(cplus_demangle_set_style): New function for setting style. |
(cplus_demangle_name_to_style): New function to translate name. |
|
2000-04-24 Mark Mitchell <mark@codesourcery.com> |
|
* hashtab.h (hash_pointer): Declare. |
(eq_pointer): Likewise. |
|
2000-04-23 Mark Mitchell <mark@codesourcery.com> |
|
* sort.h: New file. |
|
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com> |
David Mosberger <davidm@hpl.hp.com> |
|
* dis-asm.h (print_insn_ia64): Declare. |
|
Tue Apr 18 16:22:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
|
* hashtab.h (enum insert_option): New type. |
(htab_find_slot, htab_find_slot_with_hash): Use it. |
|
2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* symcat.h: Honor autoconf macro HAVE_STRINGIZE. Add |
comments/caveats with regard to traditional C behavior. |
|
2000-04-05 Richard Henderson <rth@cygnus.com> |
|
* splay-tree.h (splay_tree_remove): Declare. |
|
2000-04-04 Alan Modra <alan@linuxcare.com.au> |
|
* bin-bugs.h (REPORT_BUGS_TO): Remove translated part. |
|
2000-04-03 Alan Modra <alan@linuxcare.com.au> |
|
* bin-bugs.h: New file. |
|
2000-03-30 Mark Mitchell <mark@codesourcery.com> |
|
* hashtab.h (hashval_t): New type. |
(htab_find_with_hash): Use it as an argument. |
(htab_find_slot_with_hash): Likewise. |
|
2000-03-27 Denis Chertykov <denisc@overta.ru> |
|
* dis-asm.h (print_insn_avr): Declare. |
|
2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk> |
|
* hashtab.h (htab_trav): Modify type so that first arg is of type |
void **. |
(htab_find_with_hash, htab_find_slot_with_hash): Declare new |
functions. |
|
2000-03-09 Alex Samuel <samuel@codesourcery.com> |
|
* partition.h: New file. |
|
2000-03-09 Zack Weinberg <zack@wolery.cumb.org> |
|
* hashtab.h (struct htab): Add del_f. |
(htab_del): New type. |
(htab_create): Add fourth argument. |
|
2000-03-08 Zack Weinberg <zack@wolery.cumb.org> |
|
* hashtab.h (hash_table_t): Rename to htab_t. |
(struct hash_table): Rename to struct htab. Shorten element |
names. Reorder elements by size. |
(htab_hash, htab_eq, htab_trav): New typedefs for the callback |
function pointers. |
(hash_table_entry_t): Discard; just use void * for element |
type. |
|
2000-03-01 H.J. Lu <hjl@gnu.org> |
|
* bfdlink.h (bfd_link_callbacks): Add a boolean arg to |
the undefined_symbol callback. |
|
2000-02-23 Linas Vepstas <linas@linas.org> |
|
* dis-asm.h (print_insn_i370): Declare. |
|
Tue Feb 22 15:19:54 2000 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_trace): Document return values. |
(sim_set_trace): Declare. Deprecate. |
|
2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> |
|
* dis-asm.h (struct disassemble_info): Change `length' param of |
read_memory_func to unsigned. Change type of `buffer_length' and |
`octets_per_byte' to unsigned. |
(buffer_read_memory): Change `length' param to unsigned. |
|
2000-02-16 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h: Add prototypes for ARM register name functions. |
|
Wed Feb 9 18:45:49 2000 Andrew Cagney <cagney@b1.cygnus.com> |
|
* wait.h: Delete. No longer used by GDB. |
|
Tue Feb 8 17:01:13 2000 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_resume): Clarify use of SIGGNAL. |
(sim_stop_reason): Clarify meaning of sim_signalled. |
|
2000-02-03 Timothy Wall <twall@redhat.com> |
|
* dis-asm.h (struct disassemble_info): Added octets_per_byte |
field and initialize it to one (1). |
|
2000-01-27 Nick Clifton <nickc@redhat.com> |
|
* dis-asm.h: Add prototype for disassembler_usage(). |
Add prototype for arm_disassembler_options(). |
Remove prototype for arm_toggle_regnames(). |
Add prototype for parse_arm_disassembler_option(). |
|
Sat Jan 1 19:06:52 2000 Hans-Peter Nilsson <hp@bitrange.com> |
|
* symcat.h (STRINGX) [!__STDC__ || ALMOST_STDC]: Change "?" to "s" |
to stringify argument s. |
|
Wed Dec 15 11:22:56 1999 Jeffrey A Law (law@cygnus.com) |
|
* hp-symtab.h (HP_LANGUAGE_FORTRAN): New enumeration constant. |
(HP_LANGUAGE_F77): Define using HP_LANGUAGE_FORTRAN. |
|
1999-12-15 Doug Evans <dje@transmeta.com> |
|
* dis-asm.h: Enclose in extern "C" ifdef __cplusplus. |
|
1999-12-05 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (struct splay_tree_node): Rename to ... |
(struct splay_tree_node_s): ... this. |
(struct splay_tree): Rename to ... |
(struct splay_tree_s): ... this. |
|
1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (ATTRIBUTE_MALLOC): New macro. |
|
* libiberty.h (buildargv, dupargv, concat, choose_temp_base, |
make_temp_file, xmalloc, xcalloc, xstrdup, xmemdup): Add |
ATTRIBUTE_MALLOC. |
(xatexit): Remove __GNUC__ check, add ATTRIBUTE_NORETURN. |
|
1999-11-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h: Include stdarg.h when ANSI_PROTOTYPES is defined. |
(asprintf, vasprintf): Provide declarations. |
|
Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be> |
Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'. |
|
1999-11-04 Jimmy Guo <guo@cup.hp.com> |
|
* hp-symtab.h (dntt_type_fparam): Add doc_ranges, misc_kind |
fields, change location type to CORE_ADDR from int. |
(dntt_type_const): Name the 5th field location_type. |
|
Sun Oct 24 19:11:32 1999 Andrew Cagney <cagney@b1.cygnus.com> |
|
* sim-d10v.h (SIM_D10V_TS2_DMAP_REGNUM): Define. |
|
1999-10-23 08:51 -0700 Zack Weinberg <zack@bitmover.com> |
|
* hashtab.h: Give hash_table_t a struct tag. Add prototypes |
for clear_hash_table_slot and traverse_hash_table. Correct |
prototype of all_hash_table_collisions. |
|
Sat Oct 23 19:00:13 1999 Andrew Cagney <cagney@b1.cygnus.com> |
|
* sim-d10v.h: New file. |
|
Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com> |
|
* hashtab.h: New file. |
|
1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (HAVE_GCC_VERSION): New macro. Use it instead of |
explicitly testing __GNUC__ and __GNUC_MINOR__. |
|
(ATTRIBUTE_PRINTF): Use `__format__', not `format'. |
|
1999-09-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (make_temp_file): Add a prototype. |
|
Tue Sep 14 00:35:02 1999 Marc Espie <espie@cvs.openbsd.org> |
|
* libiberty.h (basename): OpenBSD has a correct prototype. |
(xrealloc): Remove outdated comment. |
|
1999-09-07 Jeff Garzik <jgarzik@pobox.com> |
|
* libiberty.h (xmemdup): Add prototype for new function. |
|
1999-09-04 Steve Chamberlain <sac@pobox.com> |
|
* dis-asm.h (print_insn_pj): Declare. |
|
1999-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* obstack.h (obstack_grow, obstack_grow0): Move (char*) casts |
in calls to `_obstack_memcpy' from here ... |
|
(_obstack_memcpy): ... to here, except in the __STDC__ case which |
doesn't need it. |
|
1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (getpwd): Prototype. |
|
1999-08-01 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (splay_tree_insert): Return the new node. |
|
1999-07-11 Ian Lance Taylor <ian@zembu.com> |
|
* ansidecl.h: Copy attribute support macros from egcs. |
|
1999-06-22 Mark Mitchell <mark@codesourcery.com> |
|
* bfdlink.h (struct bfd_link_hash_entry): Add init_function and |
fini_function. |
|
1999-06-20 Mark Mitchell <mark@codesourcery.com> |
|
* mips.h (Elf32_Internal_Msym): New structure. |
(Elf32_External_Msym): Likewise. |
(ELF32_MS_REL_INDEX): New macro. |
(ELF32_MS_FLAGS): Likewise. |
(ELF32_MS_INFO): Likewise. |
|
1999-06-14 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h (arm_toggle_regnames): New prototype. |
(struct diassemble_info): New field: disassembler_options. |
|
1999-04-11 Richard Henderson <rth@cygnus.com> |
|
* bfdlink.h (bfd_elf_version_expr): Rename `match' to `pattern'. |
Add `match' callback function. |
|
1999-04-10 Richard Henderson <rth@cygnus.com> |
|
* bfdlink.h (bfd_link_info): Add no_undefined. |
|
1999-04-08 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h: Add prototype for print_insn_mcore. |
|
1999-04-02 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (splay_tree_compare_pointers): Declare. |
|
1999-03-30 Mark Mitchell <mark@codesourcery.com> |
|
* splay-tree.h (splay_tree_compare_ints): Declare. |
|
Wed Mar 24 12:46:29 1999 Andrew Cagney <cagney@amy.cygnus.com> |
|
* libiberty.h (basename): Cygwin{,32} should have the prototype. |
|
1999-02-22 Jim Lemke <jlemke@cygnus.com> |
|
* bfdlink.h (bfd_link_info): add field "mpc860c0". |
|
Mon Feb 1 21:05:46 1999 Catherine Moore <clm@cygnus.com> |
|
* dis-asm.h (print_insn_i386_att): Declare. |
(print_insn_i386_intel): Declare. |
|
1998-12-30 Michael Meissner <meissner@cygnus.com> |
|
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Cast STREAM and |
FPRINTF_FUNC to avoid compiler warnings. |
|
Wed Dec 30 16:07:14 1998 David Taylor <taylor@texas.cygnus.com> |
|
* dis-asm.h: change void * to PTR (two places). |
|
Mon Dec 14 09:53:31 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* demangle.h: Don't check IN_GCC anymore. |
* splay-tree.h: Likewise. |
|
Tue Dec 8 00:30:31 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com> |
|
The following changes were made by Elena Zannoni |
<ezannoni@kwikemart.cygnus.com> and Edith Epstein |
<eepstein@sophia.cygnus.com> as part of a project to merge in |
changes made by HP; HP did not create ChangeLog entries. |
|
* dis-asm.h (struct disassemble_info): change the type of stream |
from FILE* to void*, for use with gdb's new type GDB_FILE. |
(fprintf_ftype): change FILE* parameter type to void*. |
|
* demangle.h: (DMGL_EDG): new macro for Kuck and Associates |
(DMGL_STYLE_MASK): modify to include Kuck and Assoc style |
(demangling_styles): add new edg_demangling style |
(EDG_DEMANGLING_STYLE_STRING): new macro |
(EDG_DEMANGLING): new macro |
(DMGL_HP): new macro, for HP/aCC compiler. |
(DMGL_STYLE_MASK): modify to include new HP's style. |
(demangling_styles): add new hp_demangling value. |
(HP_DEMANGLING_STYLE_STRING): new macro. |
(ARM_DEMANGLING): coerce to int. |
(HP_DEMANGLING): new macro. |
|
* hp-symtab.h: rewritten, from HP. |
(quick_procedure): change type of language field to unsigned int |
(quick_module): change type of language field to unsigned int |
(struct dntt_type_svar): add field thread_specific. |
(hp_language): add languages modcal and dmpascal. |
|
Fri Nov 20 13:14:00 1998 Andrew Cagney <cagney@b1.cygnus.com> |
|
* libiberty.h (basename): Add prototype for FreeBSD. |
|
Fri Nov 13 19:19:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h: Prototype xcalloc. |
|
Sun Nov 8 17:42:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h: Wrap problematic macros with !IN_GCC. |
|
* demangle.h: Never define PARAMS(). |
* splay-tree.h: Likewise. |
|
Sat Nov 7 18:30:20 1998 Peter Schauer <peter.schauer@regent.e-technik.tu-muenchen.de> |
|
* dis-asm.h (print_insn_vax): Declare. |
|
Sat Nov 7 16:04:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* demangle.h: Don't include gansidecl.h. |
* splay-tree.h: Likewise. |
|
1998-10-26 16:03 Ulrich Drepper <drepper@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Add new field optimize. |
|
Thu Oct 22 19:58:00 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* splay-tree.h: Wrap function pointer parameter declarations in |
PARAMS() macro. |
|
1998-10-21 Mark Mitchell <mark@markmitchell.com> |
|
* splay-tree.h: New file. |
|
Fri Oct 9 00:02:03 1998 Jeffrey A Law (law@cygnus.com) |
|
* Merge devo and egcs include directories. |
|
Sat Sep 5 12:16:33 1998 Jeffrey A Law (law@cygnus.com) |
|
* getopt.h, obstack.h: Updated from gcc. |
|
1998-08-03 Jason Molenda (jsm@bugshack.cygnus.com) |
|
* libiberty.h (xexit): Change decl to use modern GCC attribute |
to indicate exit does not return. |
|
Mon Jun 1 13:48:32 1998 Jason Molenda (crash@bugshack.cygnus.com) |
|
* obstack.h: Update to latest FSF version. |
|
Tue Feb 24 13:05:02 1998 Doug Evans <devans@canuck.cygnus.com> |
|
* dis-asm.h (disassemble_info): Member `symbol' renamed to `symbols' |
and made an "asymbol **". New member num_symbols. |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Update. |
|
Tue Feb 17 12:32:18 1998 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_fetch_register, sim_store_register): Add |
register length parameter. Functions return actual length of |
register. |
|
Thu Feb 12 16:29:01 1998 Ian Lance Taylor <ian@cygnus.com> |
|
* getopt.h: Update to latest FSF version. |
|
Wed Feb 11 16:56:06 1998 Doug Evans <devans@canuck.cygnus.com> |
|
* symcat.h: New file. |
|
Mon Feb 2 17:13:31 1998 Steve Haworth <steve@pm.cse.rmit.EDU.AU> |
|
* dis-asm.h (print_insn_tic30): Declare. |
|
Thu Jan 22 16:23:59 1998 Fred Fish <fnf@cygnus.com> |
|
* dis-asm.h: Add flag INSN_HAS_RELOC to tell disassembly |
function there is a reloc on this line. |
|
Mon Dec 8 11:22:23 1997 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h: Remove prototype of disasm_symaddr() as this function |
no longer exists. |
|
Tue Dec 2 10:20:53 1997 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h (disasm_symaddr): New prototype. |
|
Mon Dec 1 11:29:35 1997 Doug Evans <devans@canuck.cygnus.com> |
|
* callback.h (CB_SYSCALL): Comment out arg names in prototypes. |
|
Wed Nov 26 16:47:58 1997 Michael Meissner <meissner@cygnus.com> |
|
* callback.h (CB_SYSCALL): Consistantly use names for prototype |
arguments. |
|
Wed Nov 26 11:39:30 1997 Doug Evans <devans@canuck.cygnus.com> |
|
* callback.h (CB_SYSCALL): Change byte count arguments to |
{read,write}_mem to `int'. New member `magic'. |
(CB_SYSCALL_MAGIC,CB_SYSCALL_INIT): New macros. |
|
Tue Nov 25 01:35:52 1997 Doug Evans <devans@seba.cygnus.com> |
|
* callback.h (struct stat): Move forward decl up. |
(host_callback): Pass stat struct pointer to stat,fstat. |
(CB_SYS_nnn): Reorganize. |
(CB_SYSCALL): New members p1,p2. |
(cb_host_to_target_stat): Delete fourth arg. |
|
Sat Nov 22 23:34:15 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_stop_reason): Clarify sim_signalled SIGRC |
argument. |
|
Mon Nov 17 14:00:51 1997 Doug Evans <devans@seba.cygnus.com> |
|
* callback.h (CB_TARGET_DEFS_MAP): Renamed from target_defs_map. |
(host_callback): Add stat, fstat, syscall_map, errno_map, open_map, |
signal_map, stat_map. |
(errn_map,open_map): Renamed to cb_init_foo_map. |
(cb_host_to_target_errno,cb_target_to_host_open): Renamed from |
host_to_target_errno,target_to_host_open. |
(cb_read_target_syscall_maps): Add prototype. |
(cb_target_to_host_syscall): Likewise. |
(cb_host_to_target_stat): Likewise. |
(cb_syscall): Likewise. |
(CB_SYS_{exit,open,close,read,write,lseek,unlink,getpid,kill,fstat, |
argvlen,argv,chdir,stat,chmod,utime,time}): Define. |
(CB_SYSCALL): New type. |
(CB_RC): New enum. |
|
Fri Nov 7 10:34:09 1997 Rob Savoye <rob@darkstar.cygnus.com> |
|
* libiberty.h: Add extern "C" { so it can be used with C++ |
programs. |
* remote-sim.h: Add extern "C" { so it can be used with C++ |
programs. |
|
Tue Oct 14 16:07:51 1997 Nick Clifton <nickc@cygnus.com> |
|
* dis-asm.h (struct disassemble_info): New field |
'symbol_at_address_func'. |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise new field with |
generic_symbol_at_address. |
|
Mon Oct 13 10:17:15 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h: Clarify sim_read, sim_write MEM argument. |
|
Wed Sep 24 18:03:10 1997 Stu Grossman <grossman@babylon-5.cygnus.com> |
|
* remote-sim.h (SIM_RC): Add a bunch of new return codes for |
breakpoint stuff. |
* Add functions to tell the simulator to set/clear/enable/disable |
intrinsic breakpoints. |
|
Thu Aug 28 19:41:42 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* libiberty.h (dupargv): Add prototype. |
|
Tue Aug 26 12:25:49 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_create_inferior): Add ABFD arg. Document. |
|
Mon Aug 25 10:50:51 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_open): Add ABFD arg. Document. |
|
Fri Aug 8 16:43:56 1997 Doug Evans <dje@canuck.cygnus.com> |
|
* dis-asm.h (arc_get_disassembler): Declare. |
|
Wed Jul 30 11:39:50 1997 Per Bothner <bothner@deneb.cygnus.com> |
|
* demangle.h (DMGL_JAVA): New option to request Java demangling. |
|
Tue Jul 22 17:59:54 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* libiberty.h (PEXECUTE_*): Define. |
(pexecute, pwait): Declare. |
|
Fri Jun 6 13:02:33 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_kill): Mark as depreciated. |
|
Fri May 23 13:43:41 1997 Fred Fish <fnf@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Add task_link member. |
|
Thu May 22 11:32:49 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h: Review documentation. Clarify restrictions on |
when functions can be called. |
|
Wed May 21 16:47:53 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_set_profile_size): Add prototype, document as |
depreciated. |
|
Tue May 20 09:32:22 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_open): Add callback struct. |
(sim_set_callbacks): Drop SIM_DESC argument. Document. |
(sim_size): Remove recently added SIM_DESC argument. Document. |
|
Mon May 19 19:14:44 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h: Pass SD into sim_size. |
|
Thu May 15 01:24:16 1997 Mark Alexander <marka@cygnus.com> |
|
* obstack.h (obstack_specify_allocation_with_arg, obstack_chunkfun, |
obstack_freefun): Eliminate compile warnings in gdb. |
|
Tue Apr 22 10:24:34 1997 Fred Fish <fnf@cygnus.com> |
|
* floatformat.h (floatformat_byteorders): Add comments for previous |
formats and add floatformat_littlebyte_bigword, primarily for ARM. |
Add declaration for floatformat_ieee_double_littlebyte_bigword. |
|
Fri Apr 18 13:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com> |
|
* remote-sim.h (sim_stop): New interface - asynchronous |
notification of a request to stop / suspend the running |
simulation. |
|
* remote-sim.h (enum sim_stop): Add sim_running and sim_polling as |
states for use internal to simulators. |
|
* callback.h (struct host_callback_strut): Put a magic number at |
the end of the struct to allow basic checking. |
(struct host_callback_struct ): Add poll_quit - so |
that the console etc can be polled at regular intervals. |
|
Thu Apr 17 02:17:12 1997 Doug Evans <dje@canuck.cygnus.com> |
|
* remote-sim.h (struct _bfd): Declare. |
(sim_load): Return SIM_RC. New arg `abfd'. |
(sim_create_inferior): Return SIM_RC. Delete arg `start_address'. |
|
Wed Apr 2 17:09:12 1997 Andrew Cagney <cagney@kremvax.cygnus.com> |
|
* remote-sim.h (sim_trace, sim_size): Make these global. They |
will go away shortly. |
|
Wed Apr 2 15:23:49 1997 Doug Evans <dje@canuck.cygnus.com> |
|
* remote-sim.h (SIM_OPEN_KIND, SIM_RC): New enums. |
(sim_open): New argument `kind'. |
|
Wed Apr 2 14:45:51 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* COPYING: Update FSF address. |
|
Fri Mar 28 15:29:54 1997 Mike Meissner <meissner@cygnus.com> |
|
* callback.h (top level): Include stdarg.h or varargs.h if |
va_start is not defined. |
(host_callback_struct): Make {,e}vprintf_filtered take a va_list |
instead of void *, since va_list might be an array or structure |
type. |
|
Fri Mar 28 15:44:41 1997 H.J. Lu <hjl@gnu.ai.mit.edu> |
|
* libiberty.h (basename): Add prototype for glibc and linux. |
|
Mon Mar 17 19:22:12 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* objalloc.h: New file. |
|
Mon Mar 17 14:57:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com> |
|
* remote-sim.h: New file, copied in from gdb/remote-sim.h. One |
day this will be placed in a directory of its own. |
|
Sat Mar 15 19:00:14 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* obstack.h: Update to current FSF version. |
|
Thu Mar 6 15:46:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com> |
|
* callback.h (struct host_callback_struct): Add callbacks - |
flush_stdout, write_stderr, flush_stderr, vprintf_filtered, |
evprintf_filtered. Delete redundant callbacks - printf_filtered. |
|
Thu Feb 27 23:18:27 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Remove lprefix and lprefix_len |
fields. |
|
Tue Feb 25 00:10:49 1997 Ian Lance Taylor <ian@cygnus.com> |
|
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize |
bytes_per_chunk and display_endian. |
|
Mon Feb 24 17:47:02 1997 Ian Lance Taylor <ian@cygnus.com> |
|
From Eric Youngdale <eric@andante.jic.com>: |
* bfdlink.h (struct bfd_elf_version_expr): Define. |
(struct bfd_elf_version_deps): Define. |
(struct bfd_elf_version_tree): Define. |
|
Thu Feb 6 14:20:01 1997 Martin M. Hunt <hunt@pizza.cygnus.com> |
|
* dis-asm.h: (disassemble_info): Add new fields |
bytes_per_chunk and display_endian to control the |
display of raw instructions. |
|
Fri Dec 27 22:17:37 1996 Fred Fish <fnf@cygnus.com> |
|
* dis-asm.h (print_insn_tic80): Declare. |
|
Sun Dec 8 17:11:12 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* callback.h (host_callback): New member `error'. |
|
Wed Nov 20 00:40:23 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* callback.h: New file, moved here from gdb. |
|
Mon Nov 18 16:34:00 1996 Dawn Perchik <dawn@critters.cygnus.com> |
|
* libiberty.h: Checkin again; last checkin failed due to sticky tag. |
|
Wed Nov 13 08:22:00 1996 Dawn Perchik <dawn@critters.cygnus.com> |
|
* libiberty.h: Revert last commit due to conflicts with hpux |
system headers. |
|
Tue Nov 12 16:31:00 1996 Dawn Perchik <dawn@critters.cygnus.com> |
|
* libiberty.h: Move prototypes from argv.c here. |
|
Thu Oct 31 14:56:18 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* ansidecl.h (VPARAMS,VA_START): Define. |
|
Fri Oct 25 12:08:04 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* dis-asm.h (disassemble_info): Add bytes_per_line field. |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize bytes_per_line field. |
|
Thu Oct 24 17:10:01 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* dis-asm.h (disassemble_info): Add symbol field. |
(INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize symbol field. |
|
Thu Oct 17 11:17:40 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* dis-asm.h (print_insn_m32r): Declare. |
|
Mon Oct 14 23:56:52 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* libiberty.h: Declare parameter types for xmalloc and xrealloc. |
|
Thu Oct 3 13:45:27 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* fnmatch.h: New file. |
|
Thu Oct 3 10:33:14 1996 Jeffrey A Law (law@cygnus.com) |
|
* dis-asm.h (print_insn_mn10x00): Delete declaration. |
(print_insn_mn10200, print_insn_mn10300): Declare. |
|
Wed Oct 2 21:24:43 1996 Jeffrey A Law (law@cygnus.com) |
|
* dis-asm.h (print_insn_mn10x00): Declare. |
|
Mon Sep 30 13:56:11 1996 Fred Fish <fnf@cygnus.com> |
|
* libiberty.h: Remove #ifndef PRIVATE_XMALLOC. |
|
Sat Aug 31 13:27:06 1996 Jeffrey A Law (law@cygnus.com) |
|
* dis-asm.h (print_insn_v850): Declare. |
|
Tue Aug 13 16:10:30 1996 Stu Grossman (grossman@critters.cygnus.com) |
|
* obstack.h: Change bcopy to memcpy. Works better on Posix |
systems, which generally lack bcopy. |
|
Mon Aug 12 17:03:18 1996 Stu Grossman (grossman@critters.cygnus.com) |
|
* ansidecl.h: Change WIN32 to _WIN32. |
|
Fri Jul 26 13:58:18 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* dis-asm.h: Add flavour field. |
(print_insn_alpha): Declare. |
(print_insn_alpha_osf, print_insn_alpha_vms): Don't declare. |
(INIT_DISASSEMBLE_INFO): Initialize flavour field. |
|
Tue Jul 23 17:37:58 1996 Fred Fish <fnf@cygnus.com> |
|
* libiberty.h (PRIVATE_XMALLOC): Enclose xmalloc/xrealloc |
definitions inside #ifndef so that programs that want to |
can define PRIVATE_XMALLOC and then define xmalloc and |
xrealloc anyway they want. |
(basename): Document in source that we can't declare the |
parameter type because it is declared inconsistently across |
different systems. |
|
Mon Jul 22 13:16:13 1996 Richard Henderson <rth@tamu.edu> |
|
* dis-asm.h (print_insn_alpha): Don't declare. |
(print_insn_alpha_osf, print_insn_alpha_vms): Declare. |
|
Wed Jul 17 14:45:12 1996 Martin M. Hunt <hunt@pizza.cygnus.com> |
|
* dis-asm.h: (print_insn_d10v): Declare. |
|
Mon Jul 15 16:55:38 1996 Stu Grossman (grossman@critters.cygnus.com) |
|
* dis-asm.h: Get rid of decls for print_insn_i8086, |
print_insn_sparc64 and print_insn_sparclite. |
* (INIT_DISASSEMBLE_INFO): Split into two pieces. One, |
INIT_DISASSEMBLE_INFO_NO_ARCH inits everything except for endian, |
mach, and arch. |
|
Fri Jul 12 10:19:27 1996 Stu Grossman (grossman@critters.cygnus.com) |
|
* dis-asm.h (print_insn_i8086): Declare. |
|
Wed Jul 3 16:02:39 1996 Stu Grossman (grossman@critters.cygnus.com) |
|
* dis-asm.h (print_insn_sparclite): Declare. |
|
Tue Jun 18 16:02:46 1996 Jeffrey A. Law <law@rtl.cygnus.com> |
|
* dis-asm.h (print_insn_h8300s): Declare. |
|
Tue Jun 18 15:11:33 1996 Klaus Kaempf <kkaempf@progis.de> |
|
* fopen-vms.h: New file. |
|
Tue Jun 4 18:58:16 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Add notice_all field. |
|
Fri Apr 26 10:33:12 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* demangle.h (#ifdef IN_GCC): #include "gansidecl.h". |
(PROTO,PTR,const): Delete. |
|
Mon Apr 22 17:27:42 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Add traditional_format field. |
|
Mon Apr 15 15:16:56 1996 Doug Evans <dje@canuck.cygnus.com> |
|
* libiberty.h (choose_temp_base): Add prototype. |
|
Tue Mar 12 17:29:46 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (bfd_wrapped_link_hash_lookup): Declare. |
(struct bfd_link_info): Add wrap_hash field. |
|
Wed Feb 14 16:49:17 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de> |
|
* ieee.h (ieee_record_enum_type): Define |
ieee_external_reference_info_enum. |
|
Fri Feb 2 17:09:25 1996 Doug Evans <dje@charmed.cygnus.com> |
|
* dis-asm.h (DISASM_RAW_INSN): Delete. |
|
Tue Jan 23 09:21:47 1996 Doug Evans <dje@charmed.cygnus.com> |
|
* dis-asm.h (INIT_DISASSEMBLE_INFO): Set endian to BFD_ENDIAN_UNKNOWN. |
New argument FPRINTF_FUNC. |
|
Mon Jan 22 16:37:59 1996 Doug Evans <dje@charmed.cygnus.com> |
|
* dis-asm.h (disassemble_info): New members arch, mach, endian. |
(INIT_DISASSEMBLE_INFO): Initialize them. |
(DISASM_RAW_INSN{,FLAG}): Define. |
|
Thu Jan 18 11:32:38 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* demangle.h (cplus_demangle_opname): Change opname parameter to |
const char *. |
(cplus_mangle_opname): Change return type and opname parameter to |
const char *. |
|
Fri Jan 5 00:01:22 1996 Ian Lance Taylor <ian@cygnus.com> |
|
* ieee.h (enum ieee_record): Add ieee_asn_record_enum, |
ieee_at_record_enum, ieee_ty_record_enum, ieee_atn_record_enum, |
ieee_bb_record_enum, and ieee_be_record_enum. |
|
Wed Jan 3 13:12:09 1996 Fred Fish <fnf@cygnus.com> |
|
* obstack.h: Update copyright to 1996. |
(_obstack_memory_used): Declare. |
(obstack_memory_used): Define macro. |
|
Thu Dec 28 11:42:12 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* libiberty.h (xstrdup): Declare. |
|
Thu Dec 21 14:47:17 1995 Michael Meissner <meissner@tiktok.cygnus.com> |
|
* wait.h: Protect all macros with #ifndef. |
|
Tue Oct 24 21:45:40 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Add static_link field. |
|
Tue Sep 12 16:28:04 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_callbacks): Add symbol parameter to |
warning callback. |
|
Fri Sep 1 13:11:51 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_callbacks): Change warning callback |
to take BFD, section, and address arguments. |
|
Thu Aug 31 16:45:12 1995 steve chamberlain <sac@slash.cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Remove PE stuff. |
|
Tue Aug 22 03:18:23 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> |
|
* libiberty.h: Declare xstrerror. From Pat Rankin. |
|
Mon Aug 21 18:11:36 1995 steve chamberlain <sac@slash.cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Remove PE stuff. |
|
Wed Aug 2 08:14:12 1995 Doug Evans <dje@canuck.cygnus.com> |
|
* dis-asm.h (print_insn_sparc64): Declare. |
|
Mon Jul 10 13:26:49 1995 Eric Youngdale <eric@aib.com> |
|
* bfdlink.h (struct bfd_link_info): Add new field symbolic. |
|
Sun Jul 2 17:48:40 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Change type of base_file to |
PTR. |
|
Thu Jun 29 00:02:45 1995 Steve Chamberlain <sac@slash.cygnus.com> |
|
* bfdlink.h (struct bfd_link_info): Added base_file member. |
|
Tue Jun 20 16:40:04 1995 Steve Chamberlain <sac@slash.cygnus.com> |
|
* ansidecl.h: win32s is ANSI enough. |
|
Thu May 18 04:25:50 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> |
|
Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk) |
|
* dis-asm.h (print_insn_arm): Delete declaration. |
(print_insn_{little,big}_arm): New declarations. |
|
* floatformat.h (floatformat_arm_ext): Declare. |
|
Sat May 13 10:14:08 1995 Steve Chamberlain <sac@slash.cygnus.com> |
|
* bfdlink.h (subsytem, stack_heap_parameters): New. |
|
Thu May 4 14:36:42 1995 Jason Merrill <jason@phydeaux.cygnus.com> |
|
* demangle.h: Don't include ansidecl.h if IN_GCC. |
|
Tue Feb 21 00:37:28 1995 Jeff Law (law@snake.cs.utah.edu) |
|
* hp-symtab.h: Don't use bitfield enumerations, the HP C compiler |
does not handle them correctly. |
|
Thu Feb 9 14:20:27 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* libiberty.h (basename): Don't declare parameter type; some |
systems have this in their header files. |
|
Wed Feb 8 17:35:38 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (struct bfd_link_hash_entry): Change format of common |
symbol information, to remove restrictions on maximum size and |
alignment power, by using a pointer to a structure instead. |
|
Mon Feb 6 14:55:32 1995 Ian Lance Taylor <ian@cygnus.com> |
|
* bfdlink.h (enum bfd_link_hash_type): Rename bfd_link_hash_weak |
to bfd_link_hash_undefweak. Add bfd_link_hash_defweak. |
|
Mon Jan 16 21:00:23 1995 Stan Shebs <shebs@andros.cygnus.com> |
|
* dis-asm.h (GDB_INIT_DISASSEMBLE_INFO, etc): Remove all |
GDB-specific definitions. |
|
Sun Jan 15 18:39:35 1995 Steve Chamberlain <sac@splat> |
|
* dis-asm.h (print_insn_w65): Declare. |
|
Thu Jan 12 17:51:17 1995 Ken Raeburn <raeburn@cujo.cygnus.com> |
|
* libiberty.h (hex_p): Fix sense of test. |
|
Wed Jan 11 22:36:40 1995 Ken Raeburn <raeburn@cujo.cygnus.com> |
|
* libiberty.h (_hex_array_size, _hex_bad, _hex_value, hex_init, |
hex_p, hex_value): New macros and declarations, for hex.c. |
|
Fri Jan 6 17:44:14 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> |
|
* dis-asm.h: Make idempotent. |
|
Wed Dec 14 13:08:43 1994 Stan Shebs <shebs@andros.cygnus.com> |
|
* progress.h: New file, empty definitions for progress macros. |
|
Fri Nov 25 00:14:05 1994 Jeff Law (law@snake.cs.utah.edu) |
|
* hp-symtab.h: New file describing the debug symbols emitted |
by the HP C compilers. |
|
Fri Nov 11 15:48:37 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> |
|
* bfdlink.h (struct bfd_link_hash_entry): Change u.c.size from 24 |
to 26 bits, and change u.c.alignment_power from 8 to 6 bits. 6 |
bit in the alignment power is enough for a 64 bit address space. |
|
Mon Oct 31 13:02:51 1994 Stan Shebs (shebs@andros.cygnus.com) |
|
* demangle.h (cplus_mangle_opname): Declare. |
|
Tue Oct 25 11:38:02 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> |
|
* bfdlink.h (struct bfd_link_callbacks): Fix comments for |
multiple_common field. |
|
Sun Sep 04 17:58:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) |
|
* dis-asm.h: Add support for the ARM. |
|
Wed Aug 10 12:51:41 1994 Doug Evans (dje@canuck.cygnus.com) |
|
* libiberty.h (strsignal): Document its existence even if we |
can't declare it. |
|
Tue Aug 2 14:40:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com) |
|
* os9k.h: Remove u_int16, u_int32, and owner_id typedefs and |
expand their uses. Those names conflict with Mach headers. |
|
Fri Jul 22 14:17:12 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) |
|
* bfdlink.h (struct bfd_link_hash_entry): Change u.c.size into a |
bitfield. Add field u.c.alignment_power. |
|
Sun Jul 10 00:26:39 1994 Ian Dall (dall@hfrd.dsto.gov.au) |
|
* dis-asm.h: Add print_insn_ns32k declaration. |
|
Mon Jun 20 17:13:29 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) |
|
* bfdlink.h (bfd_link_hash_table): Make creator a const pointer. |
|
Sat Jun 18 16:09:32 1994 Stan Shebs (shebs@andros.cygnus.com) |
|
* demangle.h (cplus_demangle_opname): Declare. |
|
Thu Jun 16 15:19:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (struct bfd_link_info): Add new field shared. |
|
Mon Jun 6 14:39:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (struct bfd_link_hash_entry): Remove written field: |
not needed for all backends. |
|
Thu Apr 28 19:06:50 1994 Ken Raeburn (raeburn@cujo.cygnus.com) |
|
* dis-asm.h (disassembler): Declare. |
|
Fri Apr 1 00:38:17 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu) |
|
* obstack.h: Delete use of IN_GCC to control whether |
stddef.h or gstddef.h is included. |
|
Tue Mar 22 13:06:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (enum bfd_link_order_type): Add bfd_data_link_order. |
(struct bfd_link_order): Add data field to union. |
|
Mon Mar 21 18:45:26 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (struct bfd_link_callbacks): Change bitsize argument |
to add_to_set to reloc. Remove bitsize argument from constructor. |
Comment that reloc_overflow, reloc_dangerous and unattached_reloc |
must handle NULL pointers for reloc location. |
(enum bfd_link_order_type): Add bfd_section_reloc_link_order and |
bfd_symbol_reloc_link_order. |
(struct bfd_link_order): Add reloc field to union. |
(struct bfd_link_order_reloc): Define. |
|
Mon Mar 14 12:27:50 1994 Ian Lance Taylor (ian@cygnus.com) |
|
* ieee-float.h: Removed; no longer used. |
|
Tue Mar 1 18:10:49 1994 Kung Hsu (kung@mexican.cygnus.com) |
|
* os9k.h: os9000 target specific header file, the header of the |
object file is used now. |
|
Sun Feb 27 21:52:26 1994 Jim Kingdon (kingdon@deneb.cygnus.com) |
|
* floatformat.h: New file, intended to replace ieee-float.h. |
|
Sun Feb 20 17:15:42 1994 Ian Lance Taylor (ian@lisa.cygnus.com) |
|
* ansidecl.h (ANSI_PROTOTYPES): Define if using ANSI prototypes. |
|
Wed Feb 16 01:07:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* libiberty.h: Don't declare strsignal, to avoid conflicts with |
Solaris system header files. |
|
Sat Feb 12 22:11:32 1994 Jeffrey A. Law (law@snake.cs.utah.edu) |
|
* libiberty.h (xexit): Use __volatile__ to avoid losing if |
compiling with gcc -traditional. |
|
Thu Feb 10 14:05:41 1994 Ian Lance Taylor (ian@cygnus.com) |
|
* libiberty.h: New file. Declares functions provided by |
libiberty. |
|
Tue Feb 8 05:19:52 1994 David J. Mackenzie (djm@thepub.cygnus.com) |
|
Handle obstack_chunk_alloc returning NULL. This allows |
obstacks to be used by libraries, without forcing them |
to call exit or longjmp. |
* obstack.h (struct obstack): Add alloc_failed flag. |
_obstack_begin, _obstack_begin_1): Declare to return int, not void. |
(obstack_finish): If alloc_failed, return NULL. |
(obstack_base, obstack_next_free, objstack_object_size): |
If alloc_failed, return 0. |
(obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow, |
obstack_int_grow, obstack_blank): If alloc_failed, do nothing that |
could corrupt the obstack. |
|
Mon Jan 24 15:06:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (struct bfd_link_callbacks): Add name, reloc_name and |
addend argments to reloc_overflow callback. |
|
Fri Jan 21 19:13:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* dis-asm.h (print_insn_big_powerpc, print_insn_little_powerpc, |
print_insn_rs6000): Declare. |
|
Thu Jan 6 14:15:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfdlink.h (struct bfd_link_callbacks): Add bitsize argument to |
add_to_set field. Add new callback named constructor. |
|
Thu Dec 30 10:44:06 1993 Ian Lance Taylor (ian@rtl.cygnus.com) |
|
* bfdlink.h: New file for new BFD linker backend routines. |
|
Mon Nov 29 10:43:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* dis-asm.h (enum dis_insn_tyupe): Remove non-ANSI trailing comma. |
|
Sat Oct 2 20:42:26 1993 Jim Kingdon (kingdon@lioth.cygnus.com) |
|
* dis-asm.h: Move comment to right place. |
|
Mon Aug 9 19:03:35 1993 David J. Mackenzie (djm@thepub.cygnus.com) |
|
* obstack.h (obstack_chunkfun, obstack_freefun): Add defns from |
previous version. Are these Cygnus local changes? |
|
Fri Aug 6 17:05:47 1993 David J. Mackenzie (djm@thepub.cygnus.com) |
|
* getopt.h, obstack.h: Update to latest FSF version. |
|
Mon Aug 2 14:45:29 1993 John Gilmore (gnu@cygnus.com) |
|
* dis-asm.h: Move enum outside of struct defn to avoid warnings. |
|
Mon Aug 2 08:49:30 1993 Stu Grossman (grossman at cygnus.com) |
|
* wait.h (WEXITSTATUS, WSTOPSIG): Mask down to 8 bits. This is |
for systems that store stuff into the high 16 bits of a wait |
status. |
|
Fri Jul 30 18:38:02 1993 John Gilmore (gnu@cygnus.com) |
|
* dis-asm.h: Add new fields insn_info_valid, branch_delay_insns, |
data_size, insn_type, target, target2. These are used to return |
information from the instruction decoders back to the calling |
program. Add comments, make more readable. |
|
Mon Jul 19 22:14:14 1993 Fred Fish (fnf@deneb.cygnus.com) |
|
* nlm: New directory containing NLM/NetWare includes. |
|
Thu Jul 15 12:10:04 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) |
|
* dis-asm.h (struct disassemble_info): New field application_data. |
|
Thu Jul 15 12:41:15 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* dis-asm.h: Added declaration of print_insn_m88k. |
|
Fri Jul 2 10:31:59 1993 Ian Lance Taylor (ian@cygnus.com) |
|
* ansidecl.h: Use ANSI macros if __mips and _SYSTYPE_SVR4 are |
defined, since RISC/OS cc handles ANSI declarations in SVR4 mode |
but does not define __STDC__. |
|
Sun Jun 20 18:27:52 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) |
|
* dis-asm.h: Don't need to include ansidecl.h any more. |
|
Fri Jun 18 03:22:10 1993 John Gilmore (gnu@cygnus.com) |
|
* oasys.h: Eliminate "int8_type", "int16_type", "int32_type", and |
their variants. These changes are coordinated with corresponding |
changes in ../bfd/oasys.c. |
|
Wed Jun 16 10:43:08 1993 Fred Fish (fnf@cygnus.com) |
|
* bfd.h: Note that it has been removed. |
|
Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) |
|
Support for H8/300-H |
* dis-asm.h (print_insn_h8300, print_insn_h8300h): Declare it. |
|
Tue Jun 1 07:35:03 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) |
|
* ansidecl.h (const): Don't define it if it's already defined. |
|
Thu May 27 18:19:51 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) |
|
* dis-asm.h (print_insn_hppa): Declare it. |
|
* bfd.h: Moved to bfd directory. Small stub here includes it |
without requiring "-I../bfd". |
|
Thu Apr 29 12:06:13 1993 Ken Raeburn (raeburn@deneb.cygnus.com) |
|
* bfd.h: Updated with BSF_FUNCTION. |
|
Mon Apr 26 18:15:50 1993 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h, dis-asm.h: Updated with Hitachi SH. |
|
Fri Apr 23 18:41:38 1993 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h: Updated with alpha changes. |
* dis-asm.h: Added alpha. |
|
Fri Apr 16 17:35:30 1993 Jim Kingdon (kingdon@cygnus.com) |
|
* bfd.h: Update for signed bfd_*get_*. |
|
Thu Apr 15 09:24:21 1993 Jim Kingdon (kingdon@cygnus.com) |
|
* bfd.h: Updated for file_truncated error. |
|
Thu Apr 8 10:53:47 1993 Ian Lance Taylor (ian@cygnus.com) |
|
* ansidecl.h: If no ANSI, define const to be empty. |
|
Thu Apr 1 09:00:10 1993 Jim Kingdon (kingdon@cygnus.com) |
|
* dis-asm.h: Declare a29k and i960 print_insn_*. |
|
* dis-asm.h: Add print_address_func and related stuff. |
|
* dis-asm.h (dis_asm_read_memory): Fix prototype. |
|
Wed Mar 31 17:40:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com) |
|
* dis-asm.h: Add print_insn_sparc. |
|
Wed Mar 31 17:51:42 1993 Ian Lance Taylor (ian@cygnus.com) |
|
* bfd.h: Updated for BFD_RELOC_MIPS_GPREL and bfd_[gs]et_gp_size |
prototypes. |
|
Wed Mar 31 16:35:12 1993 Stu Grossman (grossman@cygnus.com) |
|
* dis-asm.h: (disassemble_info): Fix typo in prototype of |
dis_asm_memory_error(). |
|
Tue Mar 30 19:09:23 1993 Jim Kingdon (kingdon@lioth.cygnus.com) |
|
* dis-asm.h (disassembler_info): Add read_memory_func, |
memory_error_func, buffer, and length. |
({GDB_,}INIT_DISASSEMBLE_INFO): Set them. |
print_insn_*: Remove second argument. |
|
Tue Mar 30 14:48:55 1993 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h: Update for lma field of section. |
|
Tue Mar 30 12:22:55 1993 Jim Kingdon (kingdon@cygnus.com) |
|
* ansidecl.h: Use ANSI versions on AIX regardless of __STDC__. |
|
Fri Mar 19 14:49:49 1993 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* dis-asm.h: Add h8500. |
|
Thu Mar 18 13:49:09 1993 Per Bothner (bothner@rtl.cygnus.com) |
|
* ieee-float.h: Moved from ../gdb. |
* dis-asm.h: New file. Interface to dis-assembler. |
|
Thu Mar 11 10:52:57 1993 Fred Fish (fnf@cygnus.com) |
|
* demangle.h (DMGL_NO_OPTS): Add define (set to 0) to use |
in place of bare 0, for readability reasons. |
|
Tue Mar 2 17:50:11 1993 Fred Fish (fnf@cygnus.com) |
|
* demangle.h: Replace all references to cfront with ARM. |
|
Tue Feb 23 12:21:14 1993 Ian Lance Taylor (ian@cygnus.com) |
|
* bfd.h: Update for new elements in JUMP_TABLE. |
|
Tue Feb 16 00:51:30 1993 John Gilmore (gnu@cygnus.com) |
|
* bfd.h: Update for BFD_VERSION 2.1. |
|
Tue Jan 26 11:49:20 1993 Ian Lance Taylor (ian@cygnus.com) |
|
* bfd.h: Update for SEC_IS_COMMON flag. |
|
Tue Jan 19 12:25:12 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfd.h: Update for bfd_asymbol_value bug fix. |
|
Fri Jan 8 16:37:18 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) |
|
* bfd.h: Update to include ECOFF tdata and target_flavour. |
|
Sun Dec 27 17:52:30 1992 Fred Fish (fnf@cygnus.com) |
|
* bfd.h: Add declaration for bfd_get_size(). |
|
Tue Dec 22 22:42:46 1992 Fred Fish (fnf@cygnus.com) |
|
* demangle.h: Protect file from multiple inclusions with |
#if !defined(DEMANGLE_H)...#define DEMANGLE_H...#endif. |
|
Mon Dec 21 21:25:50 1992 Stu Grossman (grossman at cygnus.com) |
|
* bfd.h: Update to get hppa_core_struct from bfd.c. |
|
Thu Dec 17 00:42:35 1992 John Gilmore (gnu@cygnus.com) |
|
* bfd.h: Update to get tekhex tdata name change from bfd. |
|
Mon Nov 9 23:55:42 1992 John Gilmore (gnu@cygnus.com) |
|
* ansidecl.h: Update comments to discourage use of EXFUN. |
|
Thu Nov 5 16:35:44 1992 Ian Lance Taylor (ian@cygnus.com) |
|
* bfd.h: Update to bring in SEC_SHARED_LIBRARY. |
|
Thu Nov 5 03:21:32 1992 John Gilmore (gnu@cygnus.com) |
|
* bfd.h: Update to match EXFUN, bfd_seclet_struct, and SDEF |
cleanups in bfd. |
|
Wed Nov 4 07:28:05 1992 Ken Raeburn (raeburn@cygnus.com) |
|
* bout.h (N_CALLNAME, N_BALNAME): Define as char-type values, so |
widening works consistently. |
|
Fri Oct 16 03:17:08 1992 John Gilmore (gnu@cygnus.com) |
|
* getopt.h: Update to Revised Standard FSF Version. |
|
Thu Oct 15 21:43:22 1992 K. Richard Pixley (rich@sendai.cygnus.com) |
|
* getopt.h (struct option): use the provided enum for has_arg. |
|
* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING, |
LUCID_DEMANGLING): ultrix compilers require enums to be |
enums and ints to be ints and casts where they meet. cast some |
enums into ints. |
|
Thu Oct 15 04:35:51 1992 John Gilmore (gnu@cygnus.com) |
|
* bfd.h: Update after comment changes. |
|
Thu Oct 8 09:03:02 1992 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h (bfd_get_symbol_leading_char): new macro for getting in xvec |
|
Thu Sep 3 09:10:50 1992 Stu Grossman (grossman at cygnus.com) |
|
* bfd.h (struct reloc_howto_struct): size needs to be signed if |
it's going to hold negative values. |
|
Sun Aug 30 17:50:27 1992 Per Bothner (bothner@rtl.cygnus.com) |
|
* demangle.h: New file, moved from ../gdb. Made independent |
of gdb. Allow demangling style option to be passed as a |
parameter to cplus_demangle(), but using the |
current_demangling_style global as the default. |
|
Sat Aug 29 10:07:55 1992 Fred Fish (fnf@cygnus.com) |
|
* obstack.h: Merge comment change from current FSF version. |
|
Thu Aug 27 12:59:29 1992 Brendan Kehoe (brendan@cygnus.com) |
|
* bfd.h: add we32k |
|
Tue Aug 25 15:07:47 1992 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h: new after Z8000 stuff |
|
Mon Aug 17 09:01:23 1992 Ken Raeburn (raeburn@cygnus.com) |
|
* bfd.h: Regenerated after page/segment size changes. |
|
Sat Aug 1 13:46:31 1992 Fred Fish (fnf@cygnus.com) |
|
* obstack.h: Merge changes from current FSF version. |
|
Mon Jul 20 21:06:23 1992 Fred Fish (fnf@cygnus.com) |
|
* obstack.h (area_id, flags): Remove, replace with extra_arg, |
use_extra_arg, and maybe_empty_object. |
* obstack.h (OBSTACK_MAYBE_EMPTY_OBJECT, OBSTACK_MMALLOC_LIKE): |
Remove, replaced by maybe_empty_object and use_extra_arg bitfields. |
* obstack.h (obstack_full_begin, _obstack_begin): Remove area_id |
and flags arguments. |
* obstack.h (obstack_alloc_arg): New macro to set extra_arg. |
|
Thu Jul 16 08:12:44 1992 Steve Chamberlain (sac@thepub.cygnus.com) |
|
* bfd.h: new after adding BFD_IS_RELAXABLE |
|
Sat Jul 4 03:22:23 1992 John Gilmore (gnu at cygnus.com) |
|
* bfd.h: Regen after adding BSF_FILE. |
|
Mon Jun 29 14:18:36 1992 Fred Fish (fnf at sunfish) |
|
* obstack.h: Convert bcopy() use to memcpy(), which is more |
portable, more standard, and can take advantage of gcc's builtin |
functions for increased performance. |
|
Thu Jun 25 04:46:08 1992 John Gilmore (gnu at cygnus.com) |
|
* ansidecl.h (PARAMS): Incorporate this macro from gdb's defs.h. |
It's a cleaner way to forward-declare function prototypes. |
|
Fri Jun 19 15:46:32 1992 Stu Grossman (grossman at cygnus.com) |
|
* bfd.h: HPPA merge. |
|
Tue Jun 16 21:30:56 1992 K. Richard Pixley (rich@cygnus.com) |
|
* getopt.h: gratuitous white space changes merged from other prep |
releases. |
|
Thu Jun 11 01:10:55 1992 John Gilmore (gnu at cygnus.com) |
|
* bfd.h: Regen'd from bfd.c after removing elf_core_tdata_struct. |
|
Mon May 18 17:29:03 1992 K. Richard Pixley (rich@cygnus.com) |
|
* getopt.h: merged changes from make-3.62.11. |
|
* getopt.h: merged changes from grep-1.6 (alpha). |
|
Fri May 8 14:53:32 1992 K. Richard Pixley (rich@cygnus.com) |
|
* getopt.h: merged changes from bison-1.18. |
|
Sat Mar 14 17:25:20 1992 Fred Fish (fnf@cygnus.com) |
|
* obstack.h: Add "area_id" and "flags" members to obstack |
structure. Add obstack_chunkfun() and obstack_freefun() to |
set functions explicitly. Convert maybe_empty_object to |
a bit in "flags". |
|
Thu Feb 27 22:01:02 1992 Per Bothner (bothner@cygnus.com) |
|
* wait.h (WIFSTOPPED): Add IBM rs6000-specific version. |
|
Fri Feb 21 20:49:20 1992 John Gilmore (gnu at cygnus.com) |
|
* obstack.h: Add obstack_full_begin. |
* bfd.h, obstack.h: Protolint. |
|
Thu Jan 30 01:18:42 1992 John Gilmore (gnu at cygnus.com) |
|
* bfd.h: Remove comma from enum declaration. |
|
Mon Jan 27 22:01:13 1992 Steve Chamberlain (sac at cygnus.com) |
|
* bfd.h : new target entr, bfd_relax_section |
|
Wed Dec 18 17:19:44 1991 Stu Grossman (grossman at cygnus.com) |
|
* bfd.h, ieee.h: ANSIfy enums. |
|
Thu Dec 12 20:59:56 1991 John Gilmore (gnu at cygnus.com) |
|
* fopen-same.h, fopen-bin.h: New files for configuring |
whether fopen distinguishes binary files or not. For use |
by host-dependent config files. |
|
Sat Nov 30 20:46:43 1991 Steve Chamberlain (sac at rtl.cygnus.com) |
|
* bfd.h: change the documentation format. |
|
* created coff, elf and opcode and aout directories. Moved: |
|
aout64.h ==> aout/aout64.h |
ar.h ==> aout/ar.h |
a.out.encap.h ==> aout/encap.h |
a.out.host.h ==> aout/host.h |
a.out.hp.h ==> aout/hp.h |
a.out.sun4.h ==> aout/sun4.h |
ranlib.h ==> aout/ranlib.h |
reloc.h ==> aout/reloc.h |
stab.def ==> aout/stab.def |
stab.gnu.h ==> aout/stab_gnu.h |
|
coff-a29k.h ==> coff/a29k.h |
coff-h8300.h ==> coff/h8300.h |
coff-i386.h ==> coff/i386.h |
coff-i960.h ==> coff/i960.h |
internalcoff.h ==> coff/internal.h |
coff-m68k.h ==> coff/m68k.h |
coff-m88k.h ==> coff/m88k.h |
coff-mips.h ==> coff/mips.h |
coff-rs6000.h ==> coff/rs6000.h |
|
elf-common.h ==> elf/common.h |
dwarf.h ==> elf/dwarf.h |
elf-external.h ==> elf/external.h |
elf-internal.h ==> elf/internal.h |
|
a29k-opcode.h ==> opcode/a29k.h |
arm-opcode.h ==> opcode/arm.h |
h8300-opcode.h ==> opcode/h8300.h |
i386-opcode.h ==> opcode/i386.h |
i860-opcode.h ==> opcode/i860.h |
i960-opcode.h ==> opcode/i960.h |
m68k-opcode.h ==> opcode/m68k.h |
m88k-opcode.h ==> opcode/m88k.h |
mips-opcode.h ==> opcode/mips.h |
np1-opcode.h ==> opcode/np1.h |
ns32k-opcode.h ==> opcode/ns32k.h |
pn-opcode.h ==> opcode/pn.h |
pyr-opcode.h ==> opcode/pyr.h |
sparc-opcode.h ==> opcode/sparc.h |
tahoe-opcode.h ==> opcode/tahoe.h |
vax-opcode.h ==> opcode/vax.h |
|
|
|
Wed Nov 27 10:38:31 1991 Steve Chamberlain (sac at rtl.cygnus.com) |
|
* internalcoff.h: (internal_scnhdr) took out #def dependency, now |
s_nreloc and s_nlnno are always long. (internal_reloc): allways |
has an offset field now. |
|
Fri Nov 22 08:12:58 1991 John Gilmore (gnu at cygnus.com) |
|
* coff-rs6000.h: Lint; use unsigned chars for external fields. |
* internalcoff.h: Lint; cast storage classes to signed char. |
|
Thu Nov 21 21:01:05 1991 Per Bothner (bothner at cygnus.com) |
|
* stab.def: Remove the GNU extended type codes (e.g. N_SETT). |
* aout64.h: The heuristic for distinguishing between |
sunos-style and bsd-style ZMAGIC files (wrt. where the |
text segment starts) is moved into (the default definition of) |
the macro N_HEADER_IN_TEXT. This definition is only used |
if no other definition is used - e.g. bfd/newsos3.c defines |
N_HEADER_IN_TEXT(x) to be always 0 (as before). |
|
Thu Nov 21 11:53:03 1991 John Gilmore (gnu at cygnus.com) |
|
* aout64.h (N_TXTADDR, N_TXTOFF, N_TXTSIZE): New definitions |
that should handle all uses. LOGICAL_ versions deleted. |
Eliminate N_HEADER_IN_TEXT, using a_entry to determine which |
kind of zmagic a.out file we are looking at. |
* coff-rs6000.h: Typo. |
|
Tue Nov 19 18:43:37 1991 Per Bothner (bothner at cygnus.com) |
|
(Note: This is a revised entry, as was aout64.h.) |
* aout64.h: Some cleanups of N_TXTADDR and N_TXTOFF: |
Will now work for both old- and new-style ZMAGIC files, |
depending on N_HEADER_IN_TEXT macro. |
Add LOGICAL_TXTADDR, LOICAL_TXTOFF and LOGICAL_TXTSIZE |
that don't count the exec header as part |
of the text segment, to be consistent with bfd. |
* a.out.sun4.h: Simplified/fixed for previous change. |
|
Mon Nov 18 00:02:06 1991 Fred Fish (fnf at cygnus.com) |
|
* dwarf.h: Update to DWARF draft 5 version from gcc2. |
|
Thu Nov 14 19:44:59 1991 Per Bothner (bothner at cygnus.com) |
|
* stab.def: Added defs for extended GNU symbol types, |
such as N_SETT. These are normally ifdef'd out (because |
of conflicts with a.out.gnu.h), but are used by bfb_stab_name(). |
|
Thu Nov 14 19:17:03 1991 Fred Fish (fnf at cygnus.com) |
|
* elf-common.h: Add defines to support ELF symbol table code. |
|
Mon Nov 11 19:01:06 1991 Fred Fish (fnf at cygnus.com) |
|
* elf-internal.h, elf-external.h, elf-common.h: Add support for |
note sections, which are used in ELF core files to hold copies |
of various /proc structures. |
|
Thu Nov 7 08:58:26 1991 Steve Chamberlain (sac at cygnus.com) |
|
* internalcoff.h: took out the M88 dependency in the lineno |
struct. |
* coff-m88k.h: defines GET_LINENO_LNNO and PUT_LINENO_LNNO to use |
32bit linno entries. |
* a29k-opcode.h: fixed encoding of mtacc |
|
Sun Nov 3 11:54:22 1991 Per Bothner (bothner at cygnus.com) |
|
* bfd.h: Updated from ../bfd/bfd-in.h (q.v). |
|
Fri Nov 1 11:13:53 1991 John Gilmore (gnu at cygnus.com) |
|
* internalcoff.h: Add x_csect defines. |
|
Fri Oct 25 03:18:20 1991 John Gilmore (gnu at cygnus.com) |
|
* Rename COFF-related files in `coff-ARCH.h' form. |
coff-a29k.h, coff-i386.h, coff-i960.h, coff-m68k.h, coff-m88k.h, |
coff-mips.h, coff-rs6000.h to be exact. |
|
Thu Oct 24 22:11:11 1991 John Gilmore (gnu at cygnus.com) |
|
RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and |
John Gilmore. |
|
* a.out.gnu.h: Update slightly. |
* bfd.h: Add new error code, fix doc, add bfd_arch_rs6000. |
* internalcoff.h: Add more F_ codes for filehdr. Add |
rs/6000-dependent fields to aouthdr. Add storage classes |
to syments. Add 6000-specific auxent. Add r_size in reloc. |
* rs6000coff.c: New file. |
|
Thu Oct 24 04:13:20 1991 Fred Fish (fnf at cygnus.com) |
|
* dwarf.h: New file for dwarf support. Copied from gcc2 |
distribution. |
|
Wed Oct 16 13:31:45 1991 John Gilmore (gnu at cygnus.com) |
|
* aout64.h: Remove PAGE_SIZE defines; they are target-dependent. |
Add N_FN_SEQ for N_FN symbol type used on Sequent machines. |
* stab.def: Include N_FN_SEQ in table. |
* bout.h: External formats of structures use unsigned chars. |
|
Fri Oct 11 12:40:43 1991 Steve Chamberlain (steve at cygnus.com) |
|
* bfd.h:upgrade from bfd.c |
* internalcoff.h: add n_name, n_zeroes and n_offset macros |
* amdcoff.h: Define OMAGIC and AOUTHDRSZ. |
|
Fri Oct 11 10:58:06 1991 Per Bothner (bothner at cygnus.com) |
|
* a.out.host.h: Change SEGMENT_SIZE to 0x1000 for Sony. |
* bfd.h (align_power): Add (actually move) comment. |
|
Tue Oct 8 15:29:32 1991 Per Bothner (bothner at cygnus.com) |
|
* sys/h-rtbsd.h: Define MISSING_VFPRINT (for binutils/bucomm.c). |
|
Sun Oct 6 19:24:39 1991 John Gilmore (gnu at cygnus.com) |
|
* aout64.h: Move struct internal_exec to ../bfd/libaout.h so |
it can be shared by all `a.out-family' code. Rename |
EXTERNAL_LIST_SIZE to EXTERNAL_NLIST_SIZE. Use basic types |
for nlist members, and make strx integral rather than pointer. |
More commentary on n_type values. |
* bout.h: Provide a struct external_exec rather than an |
internal_exec. |
* m68kcoff.h: Remove `tagentries' which snuck in from the i960 |
COFF port. |
|
Fri Oct 4 01:25:59 1991 John Gilmore (gnu at cygnus.com) |
|
* h8300-opcode.h: Remove `_enum' from the typedef for an enum. |
* bfd.h: Update to match bfd changes. |
|
* sys/h-i386mach.h, sysdep.h: Add 386 Mach host support. |
|
Tue Oct 1 04:58:42 1991 John Gilmore (gnu at cygnus.com) |
|
* bfd.h, elf-common.h, elf-external.h, elf-internal.h: |
Add preliminary ELF support, sufficient for GDB, from Fred Fish. |
* sysdep.h, sys/h-amix.h: Support Amiga SVR4. |
|
* sys/h-vaxult.h: Make it work. (David Taylor <taylor@think.com>) |
* a.out.vax.h: Remove unused and confusing file. |
|
Mon Sep 30 12:52:35 1991 Per Bothner (bothner at cygnus.com) |
|
* sysdep.h: Define NEWSOS3_SYS, and use it. |
|
Fri Sep 20 13:38:21 1991 John Gilmore (gnu at cygnus.com) |
|
* a.out.gnu.h (N_FN): Its value *really is* 0x1F. |
Fix it, and add comments warning about or-ing N_EXT with it |
and/or N_WARNING. |
* aout64.h (N_FN): Fix value, add comments about N_EXT. |
* stab.def (table at end): Update to show all the type |
values <0x20, including low order bits. Move N_FN to |
its rightful place. |
|
Tue Sep 17 17:41:37 1991 Stu Grossman (grossman at cygnus.com) |
|
* sys/h-irix3.h: sgi/irix support. |
|
Tue Sep 17 07:52:59 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* stab.def (N_DEFD): Add GNU Modula-2 debug stab, from Andrew |
Beers. |
|
Thu Sep 12 14:12:59 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* internalcoff.h (SYMNMLEN, FILNMLEN, DIMNUM): Define these |
for internalcoff, separately from the various external coff's. |
* amdcoff.h, bcs88kcoff.h, i386coff.h, intel-coff.h, m68kcoff.h, |
m88k-bcs.h: Prefix SYMNMLEN, FILNMLEN, and DIMNUM with E_'s for |
the external struct definitions. |
* ecoff.h: Remove these #define's, kludge no longer needed. |
|
* sys/h-ultra3.h: Add new Ultracomputer host. |
* sysdep.h: Add ULTRA3_SYM1_SYS and use it. |
|
Tue Sep 10 10:11:46 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* i386coff.h (LINESZ): Always 6, not based on sizeof(). |
(Fix from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.) |
|
Wed Sep 4 08:58:37 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* a.out.gnu.h, aout64.h: Add N_WARNING. Change N_FN to 0x0E, |
to match SunOS and BSD. Add N_COMM as 0x12 for SunOS shared lib |
support. |
* stab.def: Add N_COMM to table, fix overlap comment. |
|
Tue Sep 3 06:29:20 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
Merge with latest FSF versions of these files. |
|
* stab.gnu.h: Add LAST_UNUSED_STAB_CODE. |
* stab.def: Update to GPL2. Move N_WARNING out, since not a |
debug symbol. Change comments, and reorder table to numeric |
order. Update final table comment. |
(N_DSLINE, N_BSLINE): Renumber from 0x66 and 0x68, to 0x46 and 0x48. |
|
* obstack.h: GPL2. Merge. |
|
Fri Aug 23 01:54:23 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* a.out.gnu.h, a.out.sun4.h: Make SEGMENT_SIZE able to depend |
on the particular a.out being examined. |
* a.out.sun4.h: Define segment sizes for Sun-3's and Sun-4's. |
* FIXME: a.out.gnu.h is almost obsolete. |
* FIXME: a.out.sun4.h should be renamed a.out.sun.h now. |
|
Wed Aug 21 20:32:13 1991 John Gilmore (gnu at cygint.cygnus.com) |
|
* Start a ChangeLog for the includes directory. |
|
* a.out.gnu.h (N_FN): Fix value -- was 15, should be 0x1E. |
* stab.def: Update allocation table in comments at end, |
to reflect reality as I know it. |
|
|
Local Variables: |
mode: change-log |
left-margin: 8 |
fill-column: 74 |
version-control: never |
End: |
/trunk/gnu-dev/or1k-gcc/include/sha1.h
0,0 → 1,141
/* Declarations of functions and data types used for SHA1 sum |
library functions. |
Copyright (C) 2000, 2001, 2003, 2005, 2006, 2008, 2010 |
Free Software Foundation, Inc. |
|
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, 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. */ |
|
#ifndef SHA1_H |
# define SHA1_H 1 |
|
#include <stdio.h> |
|
#if defined HAVE_LIMITS_H || _LIBC |
# include <limits.h> |
#endif |
|
#include "ansidecl.h" |
|
/* The following contortions are an attempt to use the C preprocessor |
to determine an unsigned integral type that is 32 bits wide. An |
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but |
doing that would require that the configure script compile and *run* |
the resulting executable. Locally running cross-compiled executables |
is usually not possible. */ |
|
#ifdef _LIBC |
# include <sys/types.h> |
typedef u_int32_t sha1_uint32; |
typedef uintptr_t sha1_uintptr; |
#else |
# define INT_MAX_32_BITS 2147483647 |
|
/* If UINT_MAX isn't defined, assume it's a 32-bit type. |
This should be valid for all systems GNU cares about because |
that doesn't include 16-bit systems, and only modern systems |
(that certainly have <limits.h>) have 64+-bit integral types. */ |
|
# ifndef INT_MAX |
# define INT_MAX INT_MAX_32_BITS |
# endif |
|
# if INT_MAX == INT_MAX_32_BITS |
typedef unsigned int sha1_uint32; |
# else |
# if SHRT_MAX == INT_MAX_32_BITS |
typedef unsigned short sha1_uint32; |
# else |
# if LONG_MAX == INT_MAX_32_BITS |
typedef unsigned long sha1_uint32; |
# else |
/* The following line is intended to evoke an error. |
Using #error is not portable enough. */ |
"Cannot determine unsigned 32-bit data type." |
# endif |
# endif |
# endif |
#endif |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* Structure to save state of computation between the single steps. */ |
struct sha1_ctx |
{ |
sha1_uint32 A; |
sha1_uint32 B; |
sha1_uint32 C; |
sha1_uint32 D; |
sha1_uint32 E; |
|
sha1_uint32 total[2]; |
sha1_uint32 buflen; |
sha1_uint32 buffer[32]; |
}; |
|
|
/* Initialize structure containing state of computation. */ |
extern void sha1_init_ctx (struct sha1_ctx *ctx); |
|
/* Starting with the result of former calls of this function (or the |
initialization function update the context for the next LEN bytes |
starting at BUFFER. |
It is necessary that LEN is a multiple of 64!!! */ |
extern void sha1_process_block (const void *buffer, size_t len, |
struct sha1_ctx *ctx); |
|
/* Starting with the result of former calls of this function (or the |
initialization function update the context for the next LEN bytes |
starting at BUFFER. |
It is NOT required that LEN is a multiple of 64. */ |
extern void sha1_process_bytes (const void *buffer, size_t len, |
struct sha1_ctx *ctx); |
|
/* Process the remaining bytes in the buffer and put result from CTX |
in first 20 bytes following RESBUF. The result is always in little |
endian byte order, so that a byte-wise output yields to the wanted |
ASCII representation of the message digest. |
|
IMPORTANT: On some systems it is required that RESBUF be correctly |
aligned for a 32 bits value. */ |
extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf); |
|
|
/* Put result from CTX in first 20 bytes following RESBUF. The result is |
always in little endian byte order, so that a byte-wise output yields |
to the wanted ASCII representation of the message digest. |
|
IMPORTANT: On some systems it is required that RESBUF is correctly |
aligned for a 32 bits value. */ |
extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf); |
|
|
/* Compute SHA1 message digest for bytes read from STREAM. The |
resulting message digest number will be written into the 20 bytes |
beginning at RESBLOCK. */ |
extern int sha1_stream (FILE *stream, void *resblock); |
|
/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The |
result is always in little endian byte order, so that a byte-wise |
output yields to the wanted ASCII representation of the message |
digest. */ |
extern void *sha1_buffer (const char *buffer, size_t len, void *resblock); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/trunk/gnu-dev/or1k-gcc/include/simple-object.h
0,0 → 1,204
/* simple-object.h -- simple routines to read and write object files |
Copyright 2010 Free Software Foundation, Inc. |
Written by Ian Lance Taylor, Google. |
|
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 2, 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, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef SIMPLE_OBJECT_H |
#define SIMPLE_OBJECT_H |
|
#include <stddef.h> |
#include <sys/types.h> |
|
#ifdef HAVE_UNISTD_H |
#include <unistd.h> |
#endif |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* This header file provides four types with associated functions. |
They are used to read and write object files. This is a minimal |
interface, intended to support the needs of gcc without bringing in |
all the power and complexity of BFD. */ |
|
/* The type simple_object_read * is used to read an existing object |
file. */ |
|
typedef struct simple_object_read_struct simple_object_read; |
|
/* Create an simple_object_read given DESCRIPTOR, an open file |
descriptor, and OFFSET, an offset within the file. The offset is |
for use with archives, and should be 0 for an ordinary object file. |
The descriptor must remain open until done with the returned |
simple_object_read. SEGMENT_NAME is used on Mach-O and is required |
on that platform: it means to only look at sections within the |
segment with that name. It is ignored for other object file |
formats. On error, this function returns NULL, and sets *ERRMSG to |
an error string and sets *ERR to an errno value or 0 if there is no |
relevant errno. */ |
|
extern simple_object_read * |
simple_object_start_read (int descriptor, off_t offset, |
const char *segment_name, const char **errmsg, |
int *err); |
|
/* Call PFN for each section in SIMPLE_OBJECT, passing it the section |
name, offset within the file of the section contents, and length of |
the section contents. The offset within the file is relative to |
the offset passed to simple_object_start_read. The DATA argument |
to simple_object_find_sections is passed on to PFN. If PFN returns |
0, the loop is stopped and simple_object_find_sections returns. If |
PFN returns non-zero, the loop continues. On success this returns |
NULL. On error it returns an error string, and sets *ERR to an |
errno value or 0 if there is no relevant errno. */ |
|
extern const char * |
simple_object_find_sections (simple_object_read *simple_object, |
int (*pfn) (void *data, const char *, |
off_t offset, off_t length), |
void *data, |
int *err); |
|
/* Look for the section NAME in SIMPLE_OBJECT. This returns |
information for the first section NAME in SIMPLE_OBJECT. Note that |
calling this multiple times is inefficient; use |
simple_object_find_sections instead. |
|
If found, return 1 and set *OFFSET to the offset in the file of the |
section contents and set *LENGTH to the length of the section |
contents. *OFFSET will be relative to the offset passed to |
simple_object_start_read. |
|
If the section is not found, and no error occurs, return 0 and set |
*ERRMSG to NULL. |
|
If an error occurs, return 0, set *ERRMSG to an error message, and |
set *ERR to an errno value or 0 if there is no relevant errno. */ |
|
extern int |
simple_object_find_section (simple_object_read *simple_object, |
const char *name, off_t *offset, off_t *length, |
const char **errmsg, int *err); |
|
/* Release all resources associated with SIMPLE_OBJECT. This does not |
close the file descriptor. */ |
|
extern void |
simple_object_release_read (simple_object_read *); |
|
/* The type simple_object_attributes holds the attributes of an object |
file that matter for creating a file or ensuring that two files are |
compatible. This is a set of magic numbers. */ |
|
typedef struct simple_object_attributes_struct simple_object_attributes; |
|
/* Fetch the attributes of SIMPLE_OBJECT. This information will |
persist until simple_object_attributes_release is called, even if |
SIMPLE_OBJECT is closed. On error this returns NULL, sets *ERRMSG |
to an error message, and sets *ERR to an errno value or 0 if there |
isn't one. */ |
|
extern simple_object_attributes * |
simple_object_fetch_attributes (simple_object_read *simple_object, |
const char **errmsg, int *err); |
|
/* Merge the FROM attributes into TO. If two objects with these |
attributes could be linked together without error, returns NULL. |
Otherwise, returns an error message, and sets *ERR to an errno |
value or 0 if there isn't one. */ |
|
extern const char * |
simple_object_attributes_merge (simple_object_attributes *to, |
simple_object_attributes *from, |
int *err); |
|
/* Release all resources associated with ATTRS. */ |
|
extern void |
simple_object_release_attributes (simple_object_attributes *attrs); |
|
/* The type simple_object_write is used to create a new object file. */ |
|
typedef struct simple_object_write_struct simple_object_write; |
|
/* Start creating a new object file which is like ATTRS. You must |
fetch attribute information from an existing object file before you |
can create a new one. There is currently no support for creating |
an object file de novo. The segment name is only used on Mach-O, |
where it is required. It means that all sections are created |
within that segment. It is ignored for other object file formats. |
On error this function returns NULL, sets *ERRMSG to an error |
message, and sets *ERR to an errno value or 0 if there isn't |
one. */ |
|
extern simple_object_write * |
simple_object_start_write (simple_object_attributes *attrs, |
const char *segment_name, |
const char **errmsg, int *err); |
|
/* The type simple_object_write_section is a handle for a section |
which is being written. */ |
|
typedef struct simple_object_write_section_struct simple_object_write_section; |
|
/* Add a section to SIMPLE_OBJECT. NAME is the name of the new |
section. ALIGN is the required alignment expressed as the number |
of required low-order 0 bits (e.g., 2 for alignment to a 32-bit |
boundary). The section is created as containing data, readable, |
not writable, not executable, not loaded at runtime. On error this |
returns NULL, sets *ERRMSG to an error message, and sets *ERR to an |
errno value or 0 if there isn't one. */ |
|
extern simple_object_write_section * |
simple_object_write_create_section (simple_object_write *simple_object, |
const char *name, unsigned int align, |
const char **errmsg, int *err); |
|
/* Add data BUFFER/SIZE to SECTION in SIMPLE_OBJECT. If COPY is |
non-zero, the data will be copied into memory if necessary. If |
COPY is zero, BUFFER must persist until SIMPLE_OBJECT is released. |
On success this returns NULL. On error this returns an error |
message, and sets *ERR to an errno value or 0 if there isn't |
one. */ |
|
extern const char * |
simple_object_write_add_data (simple_object_write *simple_object, |
simple_object_write_section *section, |
const void *buffer, size_t size, |
int copy, int *err); |
|
/* Write the complete object file to DESCRIPTOR, an open file |
descriptor. This returns NULL on success. On error this returns |
an error message, and sets *ERR to an errno value or 0 if there |
isn't one. */ |
|
extern const char * |
simple_object_write_to_file (simple_object_write *simple_object, |
int descriptor, int *err); |
|
/* Release all resources associated with SIMPLE_OBJECT, including any |
simple_object_write_section's that may have been created. */ |
|
extern void |
simple_object_release_write (simple_object_write *); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/trunk/gnu-dev/or1k-gcc/include/fibheap.h
0,0 → 1,95
/* A Fibonacci heap datatype. |
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009 |
Free Software Foundation, Inc. |
Contributed by Daniel Berlin (dan@cgsoftware.com). |
|
This file is part of GCC. |
|
GCC 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 2, or (at your option) |
any later version. |
|
GCC 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 GCC; see the file COPYING. If not, write to |
the Free Software Foundation, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
/* Fibonacci heaps are somewhat complex, but, there's an article in |
DDJ that explains them pretty well: |
|
http://www.ddj.com/articles/1997/9701/9701o/9701o.htm?topic=algoritms |
|
Introduction to algorithms by Corman and Rivest also goes over them. |
|
The original paper that introduced them is "Fibonacci heaps and their |
uses in improved network optimization algorithms" by Tarjan and |
Fredman (JACM 34(3), July 1987). |
|
Amortized and real worst case time for operations: |
|
ExtractMin: O(lg n) amortized. O(n) worst case. |
DecreaseKey: O(1) amortized. O(lg n) worst case. |
Insert: O(2) amortized. O(1) actual. |
Union: O(1) amortized. O(1) actual. */ |
|
#ifndef _FIBHEAP_H_ |
#define _FIBHEAP_H_ |
|
#include "ansidecl.h" |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
typedef long fibheapkey_t; |
|
typedef struct fibheap |
{ |
size_t nodes; |
struct fibnode *min; |
struct fibnode *root; |
} *fibheap_t; |
|
typedef struct fibnode |
{ |
struct fibnode *parent; |
struct fibnode *child; |
struct fibnode *left; |
struct fibnode *right; |
fibheapkey_t key; |
void *data; |
#if defined (__GNUC__) && (!defined (SIZEOF_INT) || SIZEOF_INT < 4) |
__extension__ unsigned long int degree : 31; |
__extension__ unsigned long int mark : 1; |
#else |
unsigned int degree : 31; |
unsigned int mark : 1; |
#endif |
} *fibnode_t; |
|
extern fibheap_t fibheap_new (void); |
extern fibnode_t fibheap_insert (fibheap_t, fibheapkey_t, void *); |
extern int fibheap_empty (fibheap_t); |
extern fibheapkey_t fibheap_min_key (fibheap_t); |
extern fibheapkey_t fibheap_replace_key (fibheap_t, fibnode_t, |
fibheapkey_t); |
extern void *fibheap_replace_key_data (fibheap_t, fibnode_t, |
fibheapkey_t, void *); |
extern void *fibheap_extract_min (fibheap_t); |
extern void *fibheap_min (fibheap_t); |
extern void *fibheap_replace_data (fibheap_t, fibnode_t, void *); |
extern void *fibheap_delete_node (fibheap_t, fibnode_t); |
extern void fibheap_delete (fibheap_t); |
extern fibheap_t fibheap_union (fibheap_t, fibheap_t); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* _FIBHEAP_H_ */ |
/trunk/gnu-dev/or1k-gcc/include/dyn-string.h
0,0 → 1,73
/* An abstract string datatype. |
Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005, 2009 |
Free Software Foundation, Inc. |
Contributed by Mark Mitchell (mark@markmitchell.com). |
|
This file is part of GCC. |
|
GCC 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 2, or (at your option) |
any later version. |
|
GCC 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 GCC; see the file COPYING. If not, write to |
the Free Software Foundation, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef DYN_STRING_H |
#define DYN_STRING_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
typedef struct dyn_string |
{ |
int allocated; /* The amount of space allocated for the string. */ |
int length; /* The actual length of the string. */ |
char *s; /* The string itself, NUL-terminated. */ |
}* dyn_string_t; |
|
/* The length STR, in bytes, not including the terminating NUL. */ |
#define dyn_string_length(STR) \ |
((STR)->length) |
|
/* The NTBS in which the contents of STR are stored. */ |
#define dyn_string_buf(STR) \ |
((STR)->s) |
|
/* Compare DS1 to DS2 with strcmp. */ |
#define dyn_string_compare(DS1, DS2) \ |
(strcmp ((DS1)->s, (DS2)->s)) |
|
|
extern int dyn_string_init (struct dyn_string *, int); |
extern dyn_string_t dyn_string_new (int); |
extern void dyn_string_delete (dyn_string_t); |
extern char *dyn_string_release (dyn_string_t); |
extern dyn_string_t dyn_string_resize (dyn_string_t, int); |
extern void dyn_string_clear (dyn_string_t); |
extern int dyn_string_copy (dyn_string_t, dyn_string_t); |
extern int dyn_string_copy_cstr (dyn_string_t, const char *); |
extern int dyn_string_prepend (dyn_string_t, dyn_string_t); |
extern int dyn_string_prepend_cstr (dyn_string_t, const char *); |
extern int dyn_string_insert (dyn_string_t, int, dyn_string_t); |
extern int dyn_string_insert_cstr (dyn_string_t, int, const char *); |
extern int dyn_string_insert_char (dyn_string_t, int, int); |
extern int dyn_string_append (dyn_string_t, dyn_string_t); |
extern int dyn_string_append_cstr (dyn_string_t, const char *); |
extern int dyn_string_append_char (dyn_string_t, int); |
extern int dyn_string_substring (dyn_string_t, dyn_string_t, int, int); |
extern int dyn_string_eq (dyn_string_t, dyn_string_t); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* !defined (DYN_STRING_H) */ |
/trunk/gnu-dev/or1k-gcc/include/timeval-utils.h
0,0 → 1,40
/* Basic struct timeval utilities. |
Copyright (C) 2011 Free Software Foundation, Inc. |
|
This file is part of the libiberty library. |
Libiberty is free software; you can redistribute it and/or |
modify it under the terms of the GNU Library General Public |
License as published by the Free Software Foundation; either |
version 2 of the License, or (at your option) any later version. |
|
Libiberty 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 |
Library General Public License for more details. |
|
You should have received a copy of the GNU Library General Public |
License along with libiberty; see the file COPYING.LIB. If not, |
write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef TIMEVAL_UTILS_H |
#define TIMEVAL_UTILS_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
/* forward decl */ |
struct timeval; |
|
extern void timeval_add (struct timeval *result, |
const struct timeval *a, const struct timeval *b); |
|
extern void timeval_sub (struct timeval *result, |
const struct timeval *a, const struct timeval *b); |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* TIMEVAL_UTILS_H */ |
/trunk/gnu-dev/or1k-gcc/include/safe-ctype.h
0,0 → 1,150
/* <ctype.h> replacement macros. |
|
Copyright (C) 2000, 2001 Free Software Foundation, Inc. |
Contributed by Zack Weinberg <zackw@stanford.edu>. |
|
This file is part of the libiberty library. |
Libiberty is free software; you can redistribute it and/or |
modify it under the terms of the GNU Library General Public |
License as published by the Free Software Foundation; either |
version 2 of the License, or (at your option) any later version. |
|
Libiberty 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 |
Library General Public License for more details. |
|
You should have received a copy of the GNU Library General Public |
License along with libiberty; see the file COPYING.LIB. If |
not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
/* This is a compatible replacement of the standard C library's <ctype.h> |
with the following properties: |
|
- Implements all isxxx() macros required by C99. |
- Also implements some character classes useful when |
parsing C-like languages. |
- Does not change behavior depending on the current locale. |
- Behaves properly for all values in the range of a signed or |
unsigned char. |
|
To avoid conflicts, this header defines the isxxx functions in upper |
case, e.g. ISALPHA not isalpha. */ |
|
#ifndef SAFE_CTYPE_H |
#define SAFE_CTYPE_H |
|
/* Determine host character set. */ |
#define HOST_CHARSET_UNKNOWN 0 |
#define HOST_CHARSET_ASCII 1 |
#define HOST_CHARSET_EBCDIC 2 |
|
#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \ |
&& 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 |
# define HOST_CHARSET HOST_CHARSET_ASCII |
#else |
# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \ |
&& 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A |
# define HOST_CHARSET HOST_CHARSET_EBCDIC |
# else |
# define HOST_CHARSET HOST_CHARSET_UNKNOWN |
# endif |
#endif |
|
/* Categories. */ |
|
enum { |
/* In C99 */ |
_sch_isblank = 0x0001, /* space \t */ |
_sch_iscntrl = 0x0002, /* nonprinting characters */ |
_sch_isdigit = 0x0004, /* 0-9 */ |
_sch_islower = 0x0008, /* a-z */ |
_sch_isprint = 0x0010, /* any printing character including ' ' */ |
_sch_ispunct = 0x0020, /* all punctuation */ |
_sch_isspace = 0x0040, /* space \t \n \r \f \v */ |
_sch_isupper = 0x0080, /* A-Z */ |
_sch_isxdigit = 0x0100, /* 0-9A-Fa-f */ |
|
/* Extra categories useful to cpplib. */ |
_sch_isidst = 0x0200, /* A-Za-z_ */ |
_sch_isvsp = 0x0400, /* \n \r */ |
_sch_isnvsp = 0x0800, /* space \t \f \v \0 */ |
|
/* Combinations of the above. */ |
_sch_isalpha = _sch_isupper|_sch_islower, /* A-Za-z */ |
_sch_isalnum = _sch_isalpha|_sch_isdigit, /* A-Za-z0-9 */ |
_sch_isidnum = _sch_isidst|_sch_isdigit, /* A-Za-z0-9_ */ |
_sch_isgraph = _sch_isalnum|_sch_ispunct, /* isprint and not space */ |
_sch_iscppsp = _sch_isvsp|_sch_isnvsp, /* isspace + \0 */ |
_sch_isbasic = _sch_isprint|_sch_iscppsp /* basic charset of ISO C |
(plus ` and @) */ |
}; |
|
/* Character classification. */ |
extern const unsigned short _sch_istable[256]; |
|
#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit)) |
|
#define ISALPHA(c) _sch_test(c, _sch_isalpha) |
#define ISALNUM(c) _sch_test(c, _sch_isalnum) |
#define ISBLANK(c) _sch_test(c, _sch_isblank) |
#define ISCNTRL(c) _sch_test(c, _sch_iscntrl) |
#define ISDIGIT(c) _sch_test(c, _sch_isdigit) |
#define ISGRAPH(c) _sch_test(c, _sch_isgraph) |
#define ISLOWER(c) _sch_test(c, _sch_islower) |
#define ISPRINT(c) _sch_test(c, _sch_isprint) |
#define ISPUNCT(c) _sch_test(c, _sch_ispunct) |
#define ISSPACE(c) _sch_test(c, _sch_isspace) |
#define ISUPPER(c) _sch_test(c, _sch_isupper) |
#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit) |
|
#define ISIDNUM(c) _sch_test(c, _sch_isidnum) |
#define ISIDST(c) _sch_test(c, _sch_isidst) |
#define IS_ISOBASIC(c) _sch_test(c, _sch_isbasic) |
#define IS_VSPACE(c) _sch_test(c, _sch_isvsp) |
#define IS_NVSPACE(c) _sch_test(c, _sch_isnvsp) |
#define IS_SPACE_OR_NUL(c) _sch_test(c, _sch_iscppsp) |
|
/* Character transformation. */ |
extern const unsigned char _sch_toupper[256]; |
extern const unsigned char _sch_tolower[256]; |
#define TOUPPER(c) _sch_toupper[(c) & 0xff] |
#define TOLOWER(c) _sch_tolower[(c) & 0xff] |
|
/* Prevent the users of safe-ctype.h from accidently using the routines |
from ctype.h. Initially, the approach was to produce an error when |
detecting that ctype.h has been included. But this was causing |
trouble as ctype.h might get indirectly included as a result of |
including another system header (for instance gnulib's stdint.h). |
So we include ctype.h here and then immediately redefine its macros. */ |
|
#include <ctype.h> |
#undef isalpha |
#define isalpha(c) do_not_use_isalpha_with_safe_ctype |
#undef isalnum |
#define isalnum(c) do_not_use_isalnum_with_safe_ctype |
#undef iscntrl |
#define iscntrl(c) do_not_use_iscntrl_with_safe_ctype |
#undef isdigit |
#define isdigit(c) do_not_use_isdigit_with_safe_ctype |
#undef isgraph |
#define isgraph(c) do_not_use_isgraph_with_safe_ctype |
#undef islower |
#define islower(c) do_not_use_islower_with_safe_ctype |
#undef isprint |
#define isprint(c) do_not_use_isprint_with_safe_ctype |
#undef ispunct |
#define ispunct(c) do_not_use_ispunct_with_safe_ctype |
#undef isspace |
#define isspace(c) do_not_use_isspace_with_safe_ctype |
#undef isupper |
#define isupper(c) do_not_use_isupper_with_safe_ctype |
#undef isxdigit |
#define isxdigit(c) do_not_use_isxdigit_with_safe_ctype |
#undef toupper |
#define toupper(c) do_not_use_toupper_with_safe_ctype |
#undef tolower |
#define tolower(c) do_not_use_tolower_with_safe_ctype |
|
#endif /* SAFE_CTYPE_H */ |
/trunk/gnu-dev/or1k-gcc/include/symcat.h
0,0 → 1,55
/* Symbol concatenation utilities. |
|
Copyright (C) 1998, 2000, 2010 Free Software Foundation, Inc. |
|
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 2 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. */ |
|
#ifndef SYM_CAT_H |
#define SYM_CAT_H |
|
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) |
#define CONCAT2(a,b) a##b |
#define CONCAT3(a,b,c) a##b##c |
#define CONCAT4(a,b,c,d) a##b##c##d |
#define CONCAT5(a,b,c,d,e) a##b##c##d##e |
#define CONCAT6(a,b,c,d,e,f) a##b##c##d##e##f |
#define STRINGX(s) #s |
#else |
/* Note one should never pass extra whitespace to the CONCATn macros, |
e.g. CONCAT2(foo, bar) because traditonal C will keep the space between |
the two labels instead of concatenating them. Instead, make sure to |
write CONCAT2(foo,bar). */ |
#define CONCAT2(a,b) a/**/b |
#define CONCAT3(a,b,c) a/**/b/**/c |
#define CONCAT4(a,b,c,d) a/**/b/**/c/**/d |
#define CONCAT5(a,b,c,d,e) a/**/b/**/c/**/d/**/e |
#define CONCAT6(a,b,c,d,e,f) a/**/b/**/c/**/d/**/e/**/f |
#define STRINGX(s) "s" |
#endif |
|
#define XCONCAT2(a,b) CONCAT2(a,b) |
#define XCONCAT3(a,b,c) CONCAT3(a,b,c) |
#define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d) |
#define XCONCAT5(a,b,c,d,e) CONCAT5(a,b,c,d,e) |
#define XCONCAT6(a,b,c,d,e,f) CONCAT6(a,b,c,d,e,f) |
|
/* Note the layer of indirection here is typically used to allow |
stringification of the expansion of macros. I.e. "#define foo |
bar", "XSTRING(foo)", to yield "bar". Be aware that this only |
works for __STDC__, not for traditional C which will still resolve |
to "foo". */ |
#define XSTRING(s) STRINGX(s) |
|
#endif /* SYM_CAT_H */ |
/trunk/gnu-dev/or1k-gcc/include/ChangeLog
0,0 → 1,893
2012-01-26 Cary Coutant <ccoutant@google.com> |
|
* dwarf2.h (enum dwarf_form): Add Fission extensions. |
(enum dwarf_attribute): Likewise. |
|
2012-01-06 Jason Merrill <jason@redhat.com> |
|
PR c++/6057 |
PR c++/48051 |
PR c++/50855 |
PR c++/51322 |
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY. |
|
2011-11-07 Richard Henderson <rth@redhat.com> |
|
Merged from transactional-memory. |
|
* demangle.h (enum gnu_v3_ctor_kinds): Add gnu_v3_object_ctor_group. |
(enum gnu_v3_dtor_kinds): Add gnu_v3_object_dtor_group. |
(DEMANGLE_COMPONENT_TRANSACTION_CLONE): New. |
(DEMANGLE_COMPONENT_NONTRANSACTION_CLONE): New. |
|
2011-10-21 Ulrich Drepper <drepper@gmail.com> |
|
* obstack.h [!GNUC] (obstack_free): Avoid cast to int. |
|
2011-10-21 Marc Glisse <marc.glisse@inria.fr> |
|
* ansidecl.h (ENUM_BITFIELD): Always use enum in C++ |
|
2011-09-28 Doug Evans <dje@google.com> |
|
* timeval-utils.h: New file. |
|
* libiberty.h (countargv): Declare. |
|
2011-09-26 Cary Coutant <ccoutant@google.com> |
|
PR lto/47247 |
* plugin-api.h (enum ld_plugin_symbol_resolution): Add |
LDPR_PREVAILING_DEF_IRONLY_EXP. |
(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2. |
|
2011-09-23 Cary Coutant <ccoutant@google.com> |
|
PR 40831 |
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_CLONE. |
|
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
|
* xregex.h (regoff_t): Define. |
|
2011-07-22 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (DW_AT_GNU_macros): New. |
(enum dwarf_macro_record_type): New enum. Add DW_MACRO_GNU_*. |
|
PR c++/49756 |
* libiberty.h (stack_limit_increase): New prototype. |
|
2011-07-13 Sriraman Tallam <tmsriram@google.com> |
|
* plugin-api.h |
(ld_plugin_section): New struct. |
(ld_plugin_get_section_count): New typedef. |
(ld_plugin_get_section_type): New typedef. |
(ld_plugin_get_section_name): New typedef. |
(ld_plugin_get_section_contents): New typedef. |
(ld_plugin_update_section_order): New typedef. |
(ld_plugin_allow_section_ordering): New typedef. |
(LDPT_GET_SECTION_COUNT): New enum value. |
(LDPT_GET_SECTION_TYPE): New enum value. |
(LDPT_GET_SECTION_NAME): New enum value. |
(LDPT_GET_SECTION_CONTENTS): New enum value. |
(LDPT_UPDATE_SECTION_ORDER): New enum value. |
(LDPT_ALLOW_SECTION_ORDERING): New enum value. |
(tv_get_section_count): New struct members. |
(tv_get_section_type): New struct members. |
(tv_get_section_name): New struct members. |
(tv_get_section_contents): New struct members. |
(tv_update_section_order): New struct members. |
(tv_allow_section_ordering): New struct members. |
|
2011-07-01 Joel Brobecker <brobecker@adacore.com> |
|
* filenames.h (HAVE_CASE_INSENSITIVE_FILE_SYSTEM): Define |
on Darwin, as well as on the systems that use a DOS-like |
filesystem. |
|
2011-06-22 Jakub Jelinek <jakub@redhat.com> |
|
PR debug/47858 |
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref. |
|
2011-06-13 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
* demangle.h (DMGL_RET_POSTFIX): Extend the comment. |
(DMGL_RET_DROP): New. |
|
2011-04-30 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type, |
DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): New. |
|
2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
* ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h. |
|
2011-03-31 Tristan Gingold <gingold@adacore.com> |
|
* dwarf2.h (dwarf_line_number_hp_sfc_ops): New enum. |
|
2011-03-24 Mark Wielaard <mjw@redhat.com> |
|
* dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define. |
|
2010-03-23 Rafael Ávila de Espíndola <respindola@mozilla.com> |
|
* plugin-api.h (ld_plugin_get_view): New. |
(ld_plugin_tag): Add LDPT_GET_VIEW. |
(ld_plugin_tv): Add tv_get_view. |
|
2011-03-16 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter, |
DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value, |
DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered, |
DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites, |
DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites, |
DW_OP_GNU_entry_value): New. |
|
2011-02-28 Kai Tietz <kai.tietz@onevision.com> |
|
* filenames.h (filename_ncmp): New prototype. |
|
2011-02-23 Kai Tietz <kai.tietz@onevision.com> |
|
* dwarf2.h (_ELF_DWARF2_H): Renamed to |
_DWARF2_H. |
(DWARF2_External_LineInfo, DWARF2_Internal_LineInfo, |
DWARF2_External_PubNames, DWARF2_Internal_PubNames, |
DWARF2_External_CompUnit, DWARF2_Internal_CompUnit, |
DWARF2_External_ARange, DWARF2_Internal_ARange): Removed. |
|
2011-01-12 Iain Sandoe <iains@gcc.gnu.org> |
|
* dwarf2.h: Update value for DW_AT_hi_user. |
|
2010-11-16 Ian Lance Taylor <iant@google.com> |
|
* simple-object.h (simple_object_attributes_merge): Declare, |
replacing simple_object_attributes_compare. |
|
2010-11-04 Ian Lance Taylor <iant@google.com> |
|
* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Go. |
|
2010-11-02 Ian Lance Taylor <iant@google.com> |
|
* simple-object.h: New file. |
|
2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com> |
|
Sync LD plugin patch series (part 1/6) with src/include/. |
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member. |
|
2010-10-06 Andi Kleen <ak@linux.intel.com> |
|
* libiberty.h (setproctitle): Add prototype. |
|
2010-09-09 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (DW_OP_GNU_implicit_pointer): New. |
|
2010-07-06 Ken Werner <ken.werner@de.ibm.com> |
|
* floatformat.h (floatformat_ieee_half_big): Add declaration. |
(floatformat_ieee_half_little): Likewise. |
|
2010-06-21 Rafael Espindola <espindola@google.com> |
|
* plugin-api.h (ld_plugin_set_extra_library_path): New. |
(ld_plugin_tag): Add LDPT_SET_EXTRA_LIBRARY_PATH. |
(ld_plugin_tv): Add tv_set_extra_library_path. |
|
2010-06-21 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (enum dwarf_type): Add DW_ATE_UTF. |
|
2010-06-18 Rafael Espindola <espindola@google.com> |
|
* plugin.h (ld_plugin_add_input_file, ld_plugin_add_input_library): |
Make argument const. |
|
2010-06-08 Tristan Gingold <gingold@adacore.com> |
|
* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and |
DW_TAG_HP_Bliss_field_set. |
(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue, |
DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size, |
DW_AT_HP_definition_points, DW_AT_HP_default_location and |
DW_AT_HP_is_result_param. |
(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d, |
DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited, |
DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed, |
DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d. |
(enum dwarf_line_number_x_ops): Add |
DW_LNE_HP_source_file_correlation. |
(enum dwarf_source_language): Add DW_LANG_HP_Bliss, |
DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro, |
DW_LANG_HP_Assembler. |
|
2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> |
|
* splay-tree.h: Update copyright years. |
(splay_tree_s): Document fields. |
(splay_tree_new_typed_alloc): New. |
|
* hashtab.h: Update copyright years. |
(htab_create_typed_alloc): New. |
|
2010-06-01 Rafael Espindola <espindola@google.com> |
|
* plugin-api.h (ld_plugin_tag): Add LDPT_OUTPUT_NAME. |
|
2010-04-26 Pedro Alves <pedro@codesourcery.com> |
|
* filenames.h (PATH_SEPARATOR): Delete. |
|
2010-04-23 Pedro Alves <pedro@codesourcery.com> |
|
* filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR, |
always define it independently of host, add `dos_based' parameter, |
and handle it. |
(PATH_SEPARATOR): Define. |
(HAS_DRIVE_SPEC_1): Rename from HAS_DRIVE_SPEC, always define it |
independently of host, add `dos_based' parameter, and handle it. |
(IS_ABSOLUTE_PATH_1): Rename from IS_ABSOLUTE_PATH, always define |
it independently of host, add `dos_based' parameter, and handle |
it. |
(IS_DOS_DIR_SEPARATOR, IS_DOS_ABSOLUTE_PATH) |
(IS_UNIX_DIR_SEPARATOR, IS_UNIX_ABSOLUTE_PATH) |
(HAS_DOS_DRIVE_SPEC): New. |
(HAS_DRIVE_SPEC): Reimplement on top of HAS_DRIVE_SPEC_1. |
(IS_DIR_SEPARATOR): Reimplement on top of IS_DIR_SEPARATOR_1. |
(IS_ABSOLUTE_PATH): Reimplement on top of IS_ABSOLUTE_PATH_1. |
* libiberty.h (dos_lbasename, unix_lbasename): Declare. |
|
2010-04-20 Nick Clifton <nickc@redhat.com> |
|
* sha1.h: Update copyright notice to use GPLv3. |
|
2010-04-14 Doug Evans <dje@google.com> |
|
* filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros. |
|
2010-04-13 Matthias Klose <doko@ubuntu.com> |
|
* elf: Remove empty directory. |
|
2010-04-06 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (DWARF2_Internal_LineInfo): Add li_max_ops_per_insn |
field. |
|
2010-03-23 Joseph Myers <joseph@codesourcery.com> |
|
* symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define. |
|
2010-01-13 Joel Brobecker <brobecker@adacore.com> |
|
Add new DW_AT_use_GNAT_descriptive_type CU attribute. |
* dwarf2.h (dwarf_attribute): Add DW_AT_use_GNAT_descriptive_type. |
|
2010-01-11 Tristan Gingold <gingold@adacore.com> |
|
* demangle.h (ada_demangle): Add prototype. |
|
2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
|
PR bootstrap/41771 |
* ansidecl.h: Fix inline test for C99 and Sun Studio cc. |
|
2009-12-29 Joel Brobecker <brobecker@adacore.com> |
|
* dwarf2.h (enum dwarf_attribute): Add DW_AT_GNAT_descriptive_type. |
|
2009-11-06 Jonas Maebe <jonas.maebe@elis.ugent.be> |
|
Add DWARF attribute value for the "Borland fastcall" calling |
convention. |
* elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant. |
|
2009-10-23 Kai Tietz <kai.tietz@onevision.com> |
|
* splay-tree.h (libi_uhostptr_t): Add gcc specific |
__extension__ for long long type case to silent cX9. |
(libi_shostptr_t): Likewise. |
|
2009-10-19 Rafael Avila de Espindola <espindola@google.com> |
|
PR40790 |
* plugin-api.h: Don't include stdint.h unconditionally. |
|
2009-10-15 Jakub Jelinek <jakub@redhat.com> |
|
* include/dwarf2.h (DW_LANG_Python): Add comment that it is |
a DWARF 4 addition. |
|
2009-10-09 Rafael Espindola <espindola@google.com> |
|
* plugin-api.h (ld_plugin_add_input_library): Change argument name to |
libname. |
|
2009-10-05 Rafael Espindola <espindola@google.com> |
|
* plugin-api.h (ld_plugin_status): Add LDPS_BAD_HANDLE. |
(ld_plugin_get_input_file): New. |
(ld_plugin_release_input_file): New. |
(ld_plugin_add_input_library): New. |
(ld_plugin_message): Mark format const. |
(ld_plugin_level): Add LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE and |
LDPT_ADD_INPUT_LIBRARY. |
(ld_plugin_tv): Add tv_get_input_file, tv_release_input_file and |
tv_add_input_library. |
|
2009-10-04 Jerry Quinn <jlquinn@optonline.net> |
|
* plugin-api.h: Fix compile. |
|
2009-10-03 Rafael Espindola <espindola@google.com> |
|
* plugin-api.h: New. |
* lto-symtab.h: New. |
|
2009-09-29 Jason Merrill <jason@redhat.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_LAMBDA, DEMANGLE_COMPONENT_DEFAULT_ARG, |
DEMANGLE_COMPONENT_UNNAMED_TYPE. |
(struct demangle_component): Add s_unary_num. |
|
2009-09-25 Dodji Seketeli <dodji@redhat.com> |
|
* dwarf2.h (enum dwarf_tag): Rename DW_TAG_template_parameter_pack and |
DW_TAG_formal_parameter_pack into DW_TAG_GNU_template_parameter_pack |
and DW_TAG_formal_parameter_pack until DWARF 5 is out. |
|
2009-09-25 Cary Coutant <ccoutant@google.com> |
|
Add rest of new values from DWARF Version 4. |
* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias): |
New tags. |
(DW_FORM_ref_sig8): New name for DW_FORM_sig8. |
(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr, |
DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by, |
DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, |
DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required, |
DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New |
attributes. |
(DW_LANG_Python): New language. |
|
2009-09-22 Dodji Seketeli <dodji@redhat.com> |
|
* dwarf2.h (enum dwarf_tag): Add |
DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack. |
|
2009-07-24 Ian Lance Taylor <iant@google.com> |
|
PR bootstrap/40854 |
* libiberty.h (xcrc32): Rename from crc32. |
|
2009-07-24 Ian Lance Taylor <iant@google.com> |
|
* libiberty.h (crc32): Declare. |
|
2009-07-20 Cary Coutant <ccoutant@google.com> |
Doug Evans <dje@google.com> |
|
Add some dwarf4 values. |
* dwarf2.h (enum dwarf_tag): Add DW_TAG_type_unit. |
(enum dwarf_form): Add DW_FORM_sec_offset, DW_FORM_exprloc, |
DW_FORM_flag_present, DW_FORM_sig8. |
(enum dwarf_attribute): Add DW_AT_signature. |
|
2009-07-17 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
* demangle.h |
(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>) |
(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>): |
New. |
|
2009-07-09 Jakub Jelinek <jakub@redhat.com> |
|
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value |
and DW_OP_stack_value. |
|
2009-07-09 Tom Tromey <tromey@redhat.com> |
|
* elf/dwarf2.h: Remove, renaming to... |
* dwarf2.h: ... this. |
|
2009-06-29 Tom Tromey <tromey@redhat.com> |
|
* elf/dwarf2.h: New file. Merged with gdb. |
|
2009-06-09 Ian Lance Taylor <ian@airs.com> |
|
* ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define for C++. |
|
2009-06-03 Ian Lance Taylor <iant@google.com> |
|
* ansidecl.h (EXPORTED_CONST): Define. |
|
2009-05-31 Ian Lance Taylor <iant@google.com> |
|
* ansidecl.h: Add extern "C" when compiling with C++. Treat C++ |
the way we treat an ISO C compiler. Don't define inline as a |
macro when compiling with C++. |
* dyn-string.h: Add header guard DYN_STRING_H. Add extern "C" |
when compiling with C++. |
* fibheap.h: Add extern "C" when compiling with C++. |
|
2009-04-22 Taras Glek <tglek@mozilla.com> |
|
* hashtab.h: Update GTY annotations to new syntax. |
* splay-tree.h: Likewise. |
|
2009-03-17 Jason Merrill <jason@redhat.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_FUNCTION_PARAM. |
|
2008-12-10 Jason Merrill <jason@redhat.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_FIXED_TYPE. |
|
2008-11-19 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32) |
(XCHAL_HAVE_MINMAX, XCHAL_HAVE_SEXT, XCHAL_HAVE_THREADPTR) |
(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): Change to 1. |
(XCHAL_NUM_AREGS): Change to 32. |
(XCHAL_ICACHE_SIZE, XCHAL_DCACHE_SIZE): Change to 16K. |
(XCHAL_ICACHE_LINESIZE, XCHAL_DCACHE_LINESIZE): Change to 32. |
(XCHAL_ICACHE_LINEWIDTH, XCHAL_DCACHE_LINEWIDTH): Change to 5. |
(XCHAL_DCACHE_IS_WRITEBACK): Change to 1. |
(XCHAL_DEBUGLEVEL): Change to 6. |
|
2008-10-21 Alan Modra <amodra@bigpond.net.au> |
|
* obstack.h (obstack_finish <!__GNUC__>): Cast result to void *. |
|
2008-10-06 Jason Merrill <jason@redhat.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_PACK_EXPANSION. |
|
2008-09-09 Jason Merrill <jason@redhat.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_DECLTYPE. |
|
2008-07-07 Joel Brobecker <brobecker@adacore.com> |
|
* safe-ctype.h: Add #include of ctype.h before redefining |
the ctype.h macros. |
|
2008-07-04 Joel Brobecker <brobecker@adacore.com> |
|
* safe-ctype.h: Remove #error when detecting that ctype.h has been |
included. Redefine the various macros provided by ctype.h as |
undefined variables. |
|
2008-06-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR, |
XDUPVAR, XOBNEWVEC, XOBNEWVAR): New. |
|
2008-03-24 Ian Lance Taylor <iant@google.com> |
|
* sha1.h: New file, from gnulib. |
|
* md5.h: Add extern "C" when compiled with C++. |
|
2008-03-21 Ian Lance Taylor <iant@google.com> |
|
* filenames.h: Add extern "C" when compiled with C++. |
|
2008-02-11 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_THREADPTR): Redefine to zero. |
(XCHAL_NUM_AREGS, XCHAL_MAX_INSTRUCTION_SIZE): New. |
|
2008-01-26 David Daney <ddaney@avtrex.com> |
|
* demangle.h (demangle_component_type): Add |
DEMANGLE_COMPONENT_JAVA_RESOURCE, |
DEMANGLE_COMPONENT_COMPOUND_NAME, and |
DEMANGLE_COMPONENT_CHARACTER as new enum values. |
(demangle_component): Add struct s_character to union u. |
|
2007-11-07 Joseph Myers <joseph@codesourcery.com> |
Daniel Jacobowitz <dan@codesourcery.com> |
|
* floatformat.h (struct floatformat): Add split_half field. |
(floatformat_ibm_long_double): New. |
|
2007-09-06 Tom Tromey <tromey@redhat.com> |
|
* libiberty.h (pex_free): Document process killing. |
|
2007-08-31 Douglas Gregor <doug.gregor@gmail.com> |
|
* demangle.h (enum demangle_component_type): Add |
DEMANGLE_COMPONENT_RVALUE_REFERENCE. |
|
2007-07-25 Ben Elliston <bje@au.ibm.com> |
|
* ternary.h: Remove. |
|
2007-07-18 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_THREADPTR): New. |
(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): New. |
|
2007-07-17 Nick Clifton <nickc@redhat.com> |
|
* COPYING3: New file. Contains version 3 of the GNU General |
Public License. |
|
2007-07-12 Kai Tietz <kai.tietz@onevision.com> |
|
* splay-tree.h (libi_uhostptr_t, libi_shostptr_t): New types, |
needed for WIN64 when a long is not wide enough for a pointer. |
(splay_tree_key, splay_tree_value): Use the new types. |
|
2007-05-07 Nathan Froyd <froydnj@codesourcery.com> |
|
* libiberty.h (writeargv): Declare. |
|
2007-04-25 Mark Mitchell <mark@codesourcery.com> |
|
* demangle.h: Change license to LGPL + exception. |
|
2007-03-29 Joel Brobecker <brobecker@adacore.com> |
|
* filenames.h (FILENAME_CMP): Adjust define to call filename_cmp |
regardless of the type of file system. |
|
2007-03-06 Jan Hubicka <jh@suse.cz> |
|
* ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New. |
|
2007-02-09 Joseph S. Myers <joseph@codesourcery.com> |
|
* libiberty.h (pex_write_input): Remove prototype. |
|
2007-01-31 Vladimir Prus <vladimir@codesourcery.com> |
|
* libiberty.h (PEX_STDERR_TO_PIPE): New define. |
(PEX_BINARY_ERROR): New define. |
(pex_read_err): New function. |
|
2007-01-29 Simon Baldwin <simonb@google.com> |
|
* demangle.h: New cplus_demangle_print_callback, |
cplus_demangle_v3_callback, and java_demangle_v3_callback function |
prototypes, and demangle_callbackref type definition. |
|
2006-12-06 Nick Clifton <nickc@redhat.com> |
|
* ansidecl.h (ATTRIBUTE_PACKED): Define. |
|
2006-11-30 Andrew Stubbs <andrew.stubbs@st.com> |
J"orn Rennecke <joern.rennecke@st.com> |
|
PR driver/29931 |
* libiberty.h (make_relative_prefix_ignore_links): Declare. |
|
2006-11-27 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XSHAL_ABI): New. |
(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New. |
|
2006-04-11 Jim Blandy <jimb@codesourcery.com> |
|
* libiberty.h (pex_input_file, pex_input_pipe): New declarations. |
|
2006-01-18 DJ Delorie <dj@redhat.com> |
|
* md5.h: Include ansidecl.h |
|
2006-01-09 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define. |
|
2005-12-30 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New. |
|
2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com> |
|
PR java/9861 |
* demangle.h : Add DMGL_RET_POSTFIX define to enable alternative |
output format for return types |
|
2005-10-31 Mark Kettenis <kettenis@gnu.org> |
|
* floatformat.h (enum floatformat_byteorders): Add |
floatformat_vax. |
(floatformat_vax_aingle, floatformat_vax_double): Declare. |
|
2005-09-26 Mark Mitchell <mark@codesourcery.com> |
|
* libiberty.h (expandargv): New function. |
|
2005-08-17 Mark Kettenis <kettenis@gnu.org> |
|
* floatformat.h (struct floatformat): Change type of large |
argument for is_valid member to `const void *'. |
(floatformat_to_double): Change type of second argument to `const |
void *'. |
(floatformat_from_double): Change type of last argument to `void |
*'. |
(floatformat_is_valid): Change type of last argument to `const |
void *'. |
|
2005-07-12 Ben Elliston <bje@au.ibm.com> |
|
* xregex2.h (regexec): Qualify this prototype with __extension__ |
when compiling with GNU C. |
|
2005-07-03 Steve Ellcey <sje@cup.hp.com> |
|
PR other/13906 |
* ansidecl.h (ATTRIBUTE_ALIGNED_ALIGNOF): New. |
* md5.h (md5_uintptr): New. |
(md5_ctx): Align buffer field. |
|
2005-06-30 Daniel Berlin <dberlin@dberlin.org> |
|
* hashtab.h (HTAB_DELETED_ENTRY): New macro. |
(HTAB_EMPTY_ENTRY): New macro. |
|
2005-06-20 Geoffrey Keating <geoffk@apple.com> |
|
* libiberty.h (strverscmp): Prototype. |
|
2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* libiberty.h (XOBFINISH): New. |
|
2005-06-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (vsnprintf): Add format attribute. |
|
2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h: Add ATTRIBUTE_FPTR_PRINTF. |
|
2005-05-28 Eli Zaretskii <eliz@gnu.org> |
|
* libiberty.h: (snprintf) [!HAVE_DECL_SNPRINTF]: Declare if |
needed. |
(vsnprintf) [!HAVE_DECL_VSNPRINTF]: Declare if needed. |
|
2005-05-25 Richard Henderson <rth@redhat.com> |
|
* demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New. |
|
2005-05-24 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* libiberty.h (ACONCAT): Properly cast value of alloca(). |
|
* ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Don't define if |
__cplusplus. |
|
2005-05-12 Steve Ellcey <sje@cup.hp.com> |
|
libiberty.h: Do not define empty basename prototype. |
|
2005-05-10 Nick Clifton <nickc@redhat.com> |
|
* Update the address and phone number of the FSF organization in |
the GPL notices in the following files: |
COPYING, ansidecl.h, bfdlink.h, bout.h, demangle.h, dis-asm.h, |
dyn-string.h, fibheap.h, filenames.h, floatformat.h, |
fnmatch.h, gdbm.h, getopt.h, hashtab.h, hp-symtab.h, ieee.h, |
libiberty.h, md5.h, oasys.h, objalloc.h, obstack.h, os9k.h, |
partition.h, progress.h, safe-ctype.h, sort.h, splay-tree.h, |
symcat.h, ternary.h, xregex2.h, xtensa-config.h, |
xtensa-isa-internal.h, xtensa-isa.h |
|
2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (unlock_std_streams): New. |
|
2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* hashtab.h, libiberty.h, objalloc.h, splay-tree.h, ternary.h: |
Don't use the PTR macro. |
|
* sort.h: Don't use the PARAMS macro. |
|
2005-04-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (unlock_stream): New. |
|
2005-04-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked): |
Remove parameter names. |
|
2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked): |
Provide prototypes for new functions. |
|
2005-03-29 Ian Lance Taylor <ian@airs.com> |
|
* libiberty.h: Fix indentation. |
|
2005-03-28 Ian Lance Taylor <ian@airs.com> |
|
* libiberty.h: Include <stdio.h>. |
(PEX_RECORD_TIMES, PEX_USE_PIPES, PEX_SAVE_TEMPS): Define. |
(PEX_LAST, PEX_SEARCH, PEX_SUFFIX, PEX_STDERR_TO_STDOUT): Define. |
(PEX_BINARY_INPUT, PEX_BINARY_OUTPUT): Define. |
(pex_init, pex_run, pex_read_output): Declare. |
(pex_get_status, pex_get_times, pex_free, pex_one): Declare. |
(struct pex_time): Define. |
|
2005-03-28 Mark Mitchell <mark@codesourcery.com> |
|
* libiberty.h (ffs): Declare, if necessary. |
|
2005-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* xregex2.h (_RE_ARGS): Remove definition and uses. |
|
2005-03-27 Gabriel Dos Reis <gdr@integreable-solutions.net> |
|
* ternary.h: Don't use PARAMS anymore. |
|
2005-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* partition.h: Remove use of PARAMS. |
* obstack.h: Remove conditional prototypes __STDC__. |
* objalloc.h: Remove use of PARAMS. |
* splay-tree.h: Likewise. |
|
2005-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* md5.h: Remove definition and uses of __P. |
* dyn-string.h: Remove uses of PARAMS. |
* fibheap.h: Likewise. |
* floatformat.h: Likewise. |
* hashtab.h: Likewise. |
|
2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* demangle.h: Remove uses of PARAMS. |
|
* libiberty.h (ANSI_PROTOTYPES): Remove guard since |
ANSI_PROTOTYPES is always assumed. |
Remove uses of PARAMS throughout. |
|
2005-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (xstrndup): Declare. |
|
2005-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* libiberty.h (make_relative_prefix): Add ATTRIBUTE_MALLOC. |
|
2005-03-09 Mark Mitchell <mark@codesourcery.com> |
|
* libiberty.h (gettimeofday): Declare. |
|
2005-03-01 Jan Beulich <jbeulich@novell.com> |
|
* libiberty.h: Declare unlink_if_ordinary. |
|
2005-02-14 Paolo Bonzini <bonzini@gnu.org> |
|
PR bootstrap/19818 |
* ansidecl.h (PARAMS): Guard from redefinition. |
|
2004-12-11 Ben Elliston <bje@au.ibm.com> |
|
* fibheap.h (struct fibnode): Only use unsigned long bitfields |
when __GNUC__ is defined and ints are less than 32-bits wide. |
|
2004-10-07 Bob Wilson <bob.wilson@acm.org> |
|
* xtensa-config.h (XSHAL_USE_ABSOLUTE_LITERALS, |
XCHAL_HAVE_PREDICTED_BRANCHES, XCHAL_INST_FETCH_WIDTH): New. |
(XCHAL_EXTRA_SA_SIZE, XCHAL_EXTRA_SA_ALIGN): Delete. |
|
2004-09-13 Aaron W. LaFramboise <aaronavay62@aaronwl.com> |
|
* libiberty.h (basename): Prototype for __MINGW32__. |
|
2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
|
* ansidecl.h (ATTRIBUTE_SENTINEL): Define. |
* libiberty.h (concat, reconcat, concat_length, concat_copy, |
concat_copy2): Use ATTRIBUTE_SENTINEL. |
|
2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net> |
|
* libiberty.h (XDELETE, XDELETEVEC, XRESIZEVEC): Remove any |
const-qualification before disposal. |
|
2004-07-24 Bernardo Innocenti <bernie@develer.com> |
|
* ansidecl.h (ARG_UNUSED): New Macro. |
|
2004-07-24 Bernardo Innocenti <bernie@develer.com> |
|
* libiberty.h (XNEW, XCNEW, XNEWVEC, XCNEWVEC, XOBNEW): Move here from |
libcpp/internal.h. |
(XDELETE, XRESIZEVEC, XDELETEVEC, XNEWVAR, XCNEWVAR, XRESIZEVAR): New |
macros. |
|
2004-07-21 Paolo Bonzini <bonzini@gnu.org> |
|
* ansidecl.h (ATTRIBUTE_PURE): New. |
|
2004-07-13 Bernardo Innocenti <bernie@develer.com> |
|
* libiberty.h (ASTRDUP): Add casts required for stricter |
type conversion rules of C++. |
* obstack.h (obstack_free): Likewise. |
|
2004-05-04 Andreas Jaeger <aj@suse.de> |
|
* demangle.h: Do not use C++ reserved keyword typename as |
parameter for cplus_demangle_fill_builtin_type. |
|
2004-04-22 Richard Henderson <rth@redhat.com> |
|
* hashtab.h (struct htab): Add size_prime_index. |
|
2004-04-13 Jeff Law <law@redhat.com> |
|
* hashtab.h (htab_remove_elt_with_hash): Prototype new function. |
|
2004-03-30 Zack Weinberg <zack@codesourcery.com> |
|
* hashtab.h, splay-tree.h: Use new shorter form of GTY markers. |
|
2004-02-24 Ian Lance Taylor <ian@wasabisystems.com> |
|
* dyn-string.h: Update copyright date. |
|
2004-02-23 Ian Lance Taylor <ian@wasabisystems.com> |
|
* dyn-string.h: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and |
the associated #defines. |
|
2004-01-12 Ian Lance Taylor <ian@wasabisystems.com> |
|
* demangle.h: Instead of checking ANSI_PROTOTYPES, just include |
"libiberty.h". |
|
* demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>. |
|
* demangle.h (enum demangle_component_type): Define. |
(struct demangle_operator_info): Declare. |
(struct demangle_builtin_type_info): Declare. |
(struct demangle_component): Define. |
(cplus_demangle_fill_component): Declare. |
(cplus_demangle_fill_name): Declare. |
(cplus_demangle_fill_builtin_type): Declare. |
(cplus_demangle_fill_operator): Declare. |
(cplus_demangle_fill_extended_operator): Declare. |
(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare. |
(cplus_demangle_v3_components): Declare. |
(cplus_demangle_print): Declare. |
|
For older changes see ChangeLog-9103 |
|
Local Variables: |
mode: change-log |
left-margin: 8 |
fill-column: 74 |
version-control: never |
End: |
/trunk/gnu-dev/or1k-gcc/include/getopt.h
0,0 → 1,144
/* Declarations for getopt. |
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000, |
2002 Free Software Foundation, Inc. |
|
NOTE: The canonical source of this file is maintained with the GNU C Library. |
Bugs can be reported to bug-glibc@gnu.org. |
|
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 2, 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. */ |
|
#ifndef _GETOPT_H |
#define _GETOPT_H 1 |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* For communication from `getopt' to the caller. |
When `getopt' finds an option that takes an argument, |
the argument value is returned here. |
Also, when `ordering' is RETURN_IN_ORDER, |
each non-option ARGV-element is returned here. */ |
|
extern char *optarg; |
|
/* Index in ARGV of the next element to be scanned. |
This is used for communication to and from the caller |
and for communication between successive calls to `getopt'. |
|
On entry to `getopt', zero means this is the first call; initialize. |
|
When `getopt' returns -1, this is the index of the first of the |
non-option elements that the caller should itself scan. |
|
Otherwise, `optind' communicates from one call to the next |
how much of ARGV has been scanned so far. */ |
|
extern int optind; |
|
/* Callers store zero here to inhibit the error message `getopt' prints |
for unrecognized options. */ |
|
extern int opterr; |
|
/* Set to an option character which was unrecognized. */ |
|
extern int optopt; |
|
/* Describe the long-named options requested by the application. |
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector |
of `struct option' terminated by an element containing a name which is |
zero. |
|
The field `has_arg' is: |
no_argument (or 0) if the option does not take an argument, |
required_argument (or 1) if the option requires an argument, |
optional_argument (or 2) if the option takes an optional argument. |
|
If the field `flag' is not NULL, it points to a variable that is set |
to the value given in the field `val' when the option is found, but |
left unchanged if the option is not found. |
|
To have a long-named option do something other than set an `int' to |
a compiled-in constant, such as set a value from `optarg', set the |
option's `flag' field to zero and its `val' field to a nonzero |
value (the equivalent single-letter option character, if there is |
one). For long options that have a zero `flag' field, `getopt' |
returns the contents of the `val' field. */ |
|
struct option |
{ |
#if defined (__STDC__) && __STDC__ |
const char *name; |
#else |
char *name; |
#endif |
/* has_arg can't be an enum because some compilers complain about |
type mismatches in all the code that assumes it is an int. */ |
int has_arg; |
int *flag; |
int val; |
}; |
|
/* Names for the values of the `has_arg' field of `struct option'. */ |
|
#define no_argument 0 |
#define required_argument 1 |
#define optional_argument 2 |
|
#if defined (__STDC__) && __STDC__ |
/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is |
undefined, we haven't run the autoconf check so provide the |
declaration without arguments. If it is 0, we checked and failed |
to find the declaration so provide a fully prototyped one. If it |
is 1, we found it so don't provide any declaration at all. */ |
#if !HAVE_DECL_GETOPT |
#if defined (__GNU_LIBRARY__) || defined (HAVE_DECL_GETOPT) |
/* Many other libraries have conflicting prototypes for getopt, with |
differences in the consts, in unistd.h. To avoid compilation |
errors, only prototype getopt for the GNU C library. */ |
extern int getopt (int argc, char *const *argv, const char *shortopts); |
#else |
#ifndef __cplusplus |
extern int getopt (); |
#endif /* __cplusplus */ |
#endif |
#endif /* !HAVE_DECL_GETOPT */ |
|
extern int getopt_long (int argc, char *const *argv, const char *shortopts, |
const struct option *longopts, int *longind); |
extern int getopt_long_only (int argc, char *const *argv, |
const char *shortopts, |
const struct option *longopts, int *longind); |
|
/* Internal only. Users should not call this directly. */ |
extern int _getopt_internal (int argc, char *const *argv, |
const char *shortopts, |
const struct option *longopts, int *longind, |
int long_only); |
#else /* not __STDC__ */ |
extern int getopt (); |
extern int getopt_long (); |
extern int getopt_long_only (); |
|
extern int _getopt_internal (); |
#endif /* __STDC__ */ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* getopt.h */ |
/trunk/gnu-dev/or1k-gcc/include/xregex.h
0,0 → 1,29
/* This file redefines all regex external names before including |
a renamed copy of glibc's regex.h. */ |
|
#ifndef _XREGEX_H |
#define _XREGEX_H 1 |
|
# define regfree xregfree |
# define regexec xregexec |
# define regcomp xregcomp |
# define regerror xregerror |
# define regoff_t xregoff_t |
# define re_set_registers xre_set_registers |
# define re_match_2 xre_match_2 |
# define re_match xre_match |
# define re_search xre_search |
# define re_compile_pattern xre_compile_pattern |
# define re_set_syntax xre_set_syntax |
# define re_search_2 xre_search_2 |
# define re_compile_fastmap xre_compile_fastmap |
# define re_syntax_options xre_syntax_options |
# define re_max_failures xre_max_failures |
|
# define _REGEX_RE_COMP |
# define re_comp xre_comp |
# define re_exec xre_exec |
|
#include "xregex2.h" |
|
#endif /* xregex.h */ |
/trunk/gnu-dev/or1k-gcc/include/filenames.h
0,0 → 1,91
/* Macros for taking apart, interpreting and processing file names. |
|
These are here because some non-Posix (a.k.a. DOSish) systems have |
drive letter brain-damage at the beginning of an absolute file name, |
use forward- and back-slash in path names interchangeably, and |
some of them have case-insensitive file names. |
|
Copyright 2000, 2001, 2007, 2010 Free Software Foundation, Inc. |
|
This file is part of BFD, the Binary File Descriptor library. |
|
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 2 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. */ |
|
#ifndef FILENAMES_H |
#define FILENAMES_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__) |
# ifndef HAVE_DOS_BASED_FILE_SYSTEM |
# define HAVE_DOS_BASED_FILE_SYSTEM 1 |
# endif |
# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM |
# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 |
# endif |
# define HAS_DRIVE_SPEC(f) HAS_DOS_DRIVE_SPEC (f) |
# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c) |
# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f) |
#else /* not DOSish */ |
# if defined(__APPLE__) |
# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM |
# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 |
# endif |
# endif /* __APPLE__ */ |
# define HAS_DRIVE_SPEC(f) (0) |
# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c) |
# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f) |
#endif |
|
#define IS_DIR_SEPARATOR_1(dos_based, c) \ |
(((c) == '/') \ |
|| (((c) == '\\') && (dos_based))) |
|
#define HAS_DRIVE_SPEC_1(dos_based, f) \ |
((f)[0] && ((f)[1] == ':') && (dos_based)) |
|
/* Remove the drive spec from F, assuming HAS_DRIVE_SPEC (f). |
The result is a pointer to the remainder of F. */ |
#define STRIP_DRIVE_SPEC(f) ((f) + 2) |
|
#define IS_DOS_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (1, c) |
#define IS_DOS_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (1, f) |
#define HAS_DOS_DRIVE_SPEC(f) HAS_DRIVE_SPEC_1 (1, f) |
|
#define IS_UNIX_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (0, c) |
#define IS_UNIX_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (0, f) |
|
/* Note that when DOS_BASED is true, IS_ABSOLUTE_PATH accepts d:foo as |
well, although it is only semi-absolute. This is because the users |
of IS_ABSOLUTE_PATH want to know whether to prepend the current |
working directory to a file name, which should not be done with a |
name like d:foo. */ |
#define IS_ABSOLUTE_PATH_1(dos_based, f) \ |
(IS_DIR_SEPARATOR_1 (dos_based, (f)[0]) \ |
|| HAS_DRIVE_SPEC_1 (dos_based, f)) |
|
extern int filename_cmp (const char *s1, const char *s2); |
#define FILENAME_CMP(s1, s2) filename_cmp(s1, s2) |
|
extern int filename_ncmp (const char *s1, const char *s2, |
size_t n); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* FILENAMES_H */ |
/trunk/gnu-dev/or1k-gcc/include/COPYING3
0,0 → 1,674
GNU GENERAL PUBLIC LICENSE |
Version 3, 29 June 2007 |
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
|
Preamble |
|
The GNU General Public License is a free, copyleft license for |
software and other kinds of works. |
|
The licenses for most software and other practical works are designed |
to take away your freedom to share and change the works. By contrast, |
the GNU General Public License is intended to guarantee your freedom to |
share and change all versions of a program--to make sure it remains free |
software for all its users. We, the Free Software Foundation, use the |
GNU General Public License for most of our software; it applies also to |
any other work released this way by its authors. You can apply it to |
your programs, too. |
|
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
them if you wish), that you receive source code or can get it if you |
want it, that you can change the software or use pieces of it in new |
free programs, and that you know you can do these things. |
|
To protect your rights, we need to prevent others from denying you |
these rights or asking you to surrender the rights. Therefore, you have |
certain responsibilities if you distribute copies of the software, or if |
you modify it: responsibilities to respect the freedom of others. |
|
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must pass on to the recipients the same |
freedoms that you received. You must make sure that they, too, receive |
or can get the source code. And you must show them these terms so they |
know their rights. |
|
Developers that use the GNU GPL protect your rights with two steps: |
(1) assert copyright on the software, and (2) offer you this License |
giving you legal permission to copy, distribute and/or modify it. |
|
For the developers' and authors' protection, the GPL clearly explains |
that there is no warranty for this free software. For both users' and |
authors' sake, the GPL requires that modified versions be marked as |
changed, so that their problems will not be attributed erroneously to |
authors of previous versions. |
|
Some devices are designed to deny users access to install or run |
modified versions of the software inside them, although the manufacturer |
can do so. This is fundamentally incompatible with the aim of |
protecting users' freedom to change the software. The systematic |
pattern of such abuse occurs in the area of products for individuals to |
use, which is precisely where it is most unacceptable. Therefore, we |
have designed this version of the GPL to prohibit the practice for those |
products. If such problems arise substantially in other domains, we |
stand ready to extend this provision to those domains in future versions |
of the GPL, as needed to protect the freedom of users. |
|
Finally, every program is threatened constantly by software patents. |
States should not allow patents to restrict development and use of |
software on general-purpose computers, but in those that do, we wish to |
avoid the special danger that patents applied to a free program could |
make it effectively proprietary. To prevent this, the GPL assures that |
patents cannot be used to render the program non-free. |
|
The precise terms and conditions for copying, distribution and |
modification follow. |
|
TERMS AND CONDITIONS |
|
0. Definitions. |
|
"This License" refers to version 3 of the GNU General Public License. |
|
"Copyright" also means copyright-like laws that apply to other kinds of |
works, such as semiconductor masks. |
|
"The Program" refers to any copyrightable work licensed under this |
License. Each licensee is addressed as "you". "Licensees" and |
"recipients" may be individuals or organizations. |
|
To "modify" a work means to copy from or adapt all or part of the work |
in a fashion requiring copyright permission, other than the making of an |
exact copy. The resulting work is called a "modified version" of the |
earlier work or a work "based on" the earlier work. |
|
A "covered work" means either the unmodified Program or a work based |
on the Program. |
|
To "propagate" a work means to do anything with it that, without |
permission, would make you directly or secondarily liable for |
infringement under applicable copyright law, except executing it on a |
computer or modifying a private copy. Propagation includes copying, |
distribution (with or without modification), making available to the |
public, and in some countries other activities as well. |
|
To "convey" a work means any kind of propagation that enables other |
parties to make or receive copies. Mere interaction with a user through |
a computer network, with no transfer of a copy, is not conveying. |
|
An interactive user interface displays "Appropriate Legal Notices" |
to the extent that it includes a convenient and prominently visible |
feature that (1) displays an appropriate copyright notice, and (2) |
tells the user that there is no warranty for the work (except to the |
extent that warranties are provided), that licensees may convey the |
work under this License, and how to view a copy of this License. If |
the interface presents a list of user commands or options, such as a |
menu, a prominent item in the list meets this criterion. |
|
1. Source Code. |
|
The "source code" for a work means the preferred form of the work |
for making modifications to it. "Object code" means any non-source |
form of a work. |
|
A "Standard Interface" means an interface that either is an official |
standard defined by a recognized standards body, or, in the case of |
interfaces specified for a particular programming language, one that |
is widely used among developers working in that language. |
|
The "System Libraries" of an executable work include anything, other |
than the work as a whole, that (a) is included in the normal form of |
packaging a Major Component, but which is not part of that Major |
Component, and (b) serves only to enable use of the work with that |
Major Component, or to implement a Standard Interface for which an |
implementation is available to the public in source code form. A |
"Major Component", in this context, means a major essential component |
(kernel, window system, and so on) of the specific operating system |
(if any) on which the executable work runs, or a compiler used to |
produce the work, or an object code interpreter used to run it. |
|
The "Corresponding Source" for a work in object code form means all |
the source code needed to generate, install, and (for an executable |
work) run the object code and to modify the work, including scripts to |
control those activities. However, it does not include the work's |
System Libraries, or general-purpose tools or generally available free |
programs which are used unmodified in performing those activities but |
which are not part of the work. For example, Corresponding Source |
includes interface definition files associated with source files for |
the work, and the source code for shared libraries and dynamically |
linked subprograms that the work is specifically designed to require, |
such as by intimate data communication or control flow between those |
subprograms and other parts of the work. |
|
The Corresponding Source need not include anything that users |
can regenerate automatically from other parts of the Corresponding |
Source. |
|
The Corresponding Source for a work in source code form is that |
same work. |
|
2. Basic Permissions. |
|
All rights granted under this License are granted for the term of |
copyright on the Program, and are irrevocable provided the stated |
conditions are met. This License explicitly affirms your unlimited |
permission to run the unmodified Program. The output from running a |
covered work is covered by this License only if the output, given its |
content, constitutes a covered work. This License acknowledges your |
rights of fair use or other equivalent, as provided by copyright law. |
|
You may make, run and propagate covered works that you do not |
convey, without conditions so long as your license otherwise remains |
in force. You may convey covered works to others for the sole purpose |
of having them make modifications exclusively for you, or provide you |
with facilities for running those works, provided that you comply with |
the terms of this License in conveying all material for which you do |
not control copyright. Those thus making or running the covered works |
for you must do so exclusively on your behalf, under your direction |
and control, on terms that prohibit them from making any copies of |
your copyrighted material outside their relationship with you. |
|
Conveying under any other circumstances is permitted solely under |
the conditions stated below. Sublicensing is not allowed; section 10 |
makes it unnecessary. |
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
|
No covered work shall be deemed part of an effective technological |
measure under any applicable law fulfilling obligations under article |
11 of the WIPO copyright treaty adopted on 20 December 1996, or |
similar laws prohibiting or restricting circumvention of such |
measures. |
|
When you convey a covered work, you waive any legal power to forbid |
circumvention of technological measures to the extent such circumvention |
is effected by exercising rights under this License with respect to |
the covered work, and you disclaim any intention to limit operation or |
modification of the work as a means of enforcing, against the work's |
users, your or third parties' legal rights to forbid circumvention of |
technological measures. |
|
4. Conveying Verbatim Copies. |
|
You may convey verbatim copies of the Program's source code as you |
receive it, in any medium, provided that you conspicuously and |
appropriately publish on each copy an appropriate copyright notice; |
keep intact all notices stating that this License and any |
non-permissive terms added in accord with section 7 apply to the code; |
keep intact all notices of the absence of any warranty; and give all |
recipients a copy of this License along with the Program. |
|
You may charge any price or no price for each copy that you convey, |
and you may offer support or warranty protection for a fee. |
|
5. Conveying Modified Source Versions. |
|
You may convey a work based on the Program, or the modifications to |
produce it from the Program, in the form of source code under the |
terms of section 4, provided that you also meet all of these conditions: |
|
a) The work must carry prominent notices stating that you modified |
it, and giving a relevant date. |
|
b) The work must carry prominent notices stating that it is |
released under this License and any conditions added under section |
7. This requirement modifies the requirement in section 4 to |
"keep intact all notices". |
|
c) You must license the entire work, as a whole, under this |
License to anyone who comes into possession of a copy. This |
License will therefore apply, along with any applicable section 7 |
additional terms, to the whole of the work, and all its parts, |
regardless of how they are packaged. This License gives no |
permission to license the work in any other way, but it does not |
invalidate such permission if you have separately received it. |
|
d) If the work has interactive user interfaces, each must display |
Appropriate Legal Notices; however, if the Program has interactive |
interfaces that do not display Appropriate Legal Notices, your |
work need not make them do so. |
|
A compilation of a covered work with other separate and independent |
works, which are not by their nature extensions of the covered work, |
and which are not combined with it such as to form a larger program, |
in or on a volume of a storage or distribution medium, is called an |
"aggregate" if the compilation and its resulting copyright are not |
used to limit the access or legal rights of the compilation's users |
beyond what the individual works permit. Inclusion of a covered work |
in an aggregate does not cause this License to apply to the other |
parts of the aggregate. |
|
6. Conveying Non-Source Forms. |
|
You may convey a covered work in object code form under the terms |
of sections 4 and 5, provided that you also convey the |
machine-readable Corresponding Source under the terms of this License, |
in one of these ways: |
|
a) Convey the object code in, or embodied in, a physical product |
(including a physical distribution medium), accompanied by the |
Corresponding Source fixed on a durable physical medium |
customarily used for software interchange. |
|
b) Convey the object code in, or embodied in, a physical product |
(including a physical distribution medium), accompanied by a |
written offer, valid for at least three years and valid for as |
long as you offer spare parts or customer support for that product |
model, to give anyone who possesses the object code either (1) a |
copy of the Corresponding Source for all the software in the |
product that is covered by this License, on a durable physical |
medium customarily used for software interchange, for a price no |
more than your reasonable cost of physically performing this |
conveying of source, or (2) access to copy the |
Corresponding Source from a network server at no charge. |
|
c) Convey individual copies of the object code with a copy of the |
written offer to provide the Corresponding Source. This |
alternative is allowed only occasionally and noncommercially, and |
only if you received the object code with such an offer, in accord |
with subsection 6b. |
|
d) Convey the object code by offering access from a designated |
place (gratis or for a charge), and offer equivalent access to the |
Corresponding Source in the same way through the same place at no |
further charge. You need not require recipients to copy the |
Corresponding Source along with the object code. If the place to |
copy the object code is a network server, the Corresponding Source |
may be on a different server (operated by you or a third party) |
that supports equivalent copying facilities, provided you maintain |
clear directions next to the object code saying where to find the |
Corresponding Source. Regardless of what server hosts the |
Corresponding Source, you remain obligated to ensure that it is |
available for as long as needed to satisfy these requirements. |
|
e) Convey the object code using peer-to-peer transmission, provided |
you inform other peers where the object code and Corresponding |
Source of the work are being offered to the general public at no |
charge under subsection 6d. |
|
A separable portion of the object code, whose source code is excluded |
from the Corresponding Source as a System Library, need not be |
included in conveying the object code work. |
|
A "User Product" is either (1) a "consumer product", which means any |
tangible personal property which is normally used for personal, family, |
or household purposes, or (2) anything designed or sold for incorporation |
into a dwelling. In determining whether a product is a consumer product, |
doubtful cases shall be resolved in favor of coverage. For a particular |
product received by a particular user, "normally used" refers to a |
typical or common use of that class of product, regardless of the status |
of the particular user or of the way in which the particular user |
actually uses, or expects or is expected to use, the product. A product |
is a consumer product regardless of whether the product has substantial |
commercial, industrial or non-consumer uses, unless such uses represent |
the only significant mode of use of the product. |
|
"Installation Information" for a User Product means any methods, |
procedures, authorization keys, or other information required to install |
and execute modified versions of a covered work in that User Product from |
a modified version of its Corresponding Source. The information must |
suffice to ensure that the continued functioning of the modified object |
code is in no case prevented or interfered with solely because |
modification has been made. |
|
If you convey an object code work under this section in, or with, or |
specifically for use in, a User Product, and the conveying occurs as |
part of a transaction in which the right of possession and use of the |
User Product is transferred to the recipient in perpetuity or for a |
fixed term (regardless of how the transaction is characterized), the |
Corresponding Source conveyed under this section must be accompanied |
by the Installation Information. But this requirement does not apply |
if neither you nor any third party retains the ability to install |
modified object code on the User Product (for example, the work has |
been installed in ROM). |
|
The requirement to provide Installation Information does not include a |
requirement to continue to provide support service, warranty, or updates |
for a work that has been modified or installed by the recipient, or for |
the User Product in which it has been modified or installed. Access to a |
network may be denied when the modification itself materially and |
adversely affects the operation of the network or violates the rules and |
protocols for communication across the network. |
|
Corresponding Source conveyed, and Installation Information provided, |
in accord with this section must be in a format that is publicly |
documented (and with an implementation available to the public in |
source code form), and must require no special password or key for |
unpacking, reading or copying. |
|
7. Additional Terms. |
|
"Additional permissions" are terms that supplement the terms of this |
License by making exceptions from one or more of its conditions. |
Additional permissions that are applicable to the entire Program shall |
be treated as though they were included in this License, to the extent |
that they are valid under applicable law. If additional permissions |
apply only to part of the Program, that part may be used separately |
under those permissions, but the entire Program remains governed by |
this License without regard to the additional permissions. |
|
When you convey a copy of a covered work, you may at your option |
remove any additional permissions from that copy, or from any part of |
it. (Additional permissions may be written to require their own |
removal in certain cases when you modify the work.) You may place |
additional permissions on material, added by you to a covered work, |
for which you have or can give appropriate copyright permission. |
|
Notwithstanding any other provision of this License, for material you |
add to a covered work, you may (if authorized by the copyright holders of |
that material) supplement the terms of this License with terms: |
|
a) Disclaiming warranty or limiting liability differently from the |
terms of sections 15 and 16 of this License; or |
|
b) Requiring preservation of specified reasonable legal notices or |
author attributions in that material or in the Appropriate Legal |
Notices displayed by works containing it; or |
|
c) Prohibiting misrepresentation of the origin of that material, or |
requiring that modified versions of such material be marked in |
reasonable ways as different from the original version; or |
|
d) Limiting the use for publicity purposes of names of licensors or |
authors of the material; or |
|
e) Declining to grant rights under trademark law for use of some |
trade names, trademarks, or service marks; or |
|
f) Requiring indemnification of licensors and authors of that |
material by anyone who conveys the material (or modified versions of |
it) with contractual assumptions of liability to the recipient, for |
any liability that these contractual assumptions directly impose on |
those licensors and authors. |
|
All other non-permissive additional terms are considered "further |
restrictions" within the meaning of section 10. If the Program as you |
received it, or any part of it, contains a notice stating that it is |
governed by this License along with a term that is a further |
restriction, you may remove that term. If a license document contains |
a further restriction but permits relicensing or conveying under this |
License, you may add to a covered work material governed by the terms |
of that license document, provided that the further restriction does |
not survive such relicensing or conveying. |
|
If you add terms to a covered work in accord with this section, you |
must place, in the relevant source files, a statement of the |
additional terms that apply to those files, or a notice indicating |
where to find the applicable terms. |
|
Additional terms, permissive or non-permissive, may be stated in the |
form of a separately written license, or stated as exceptions; |
the above requirements apply either way. |
|
8. Termination. |
|
You may not propagate or modify a covered work except as expressly |
provided under this License. Any attempt otherwise to propagate or |
modify it is void, and will automatically terminate your rights under |
this License (including any patent licenses granted under the third |
paragraph of section 11). |
|
However, if you cease all violation of this License, then your |
license from a particular copyright holder is reinstated (a) |
provisionally, unless and until the copyright holder explicitly and |
finally terminates your license, and (b) permanently, if the copyright |
holder fails to notify you of the violation by some reasonable means |
prior to 60 days after the cessation. |
|
Moreover, your license from a particular copyright holder is |
reinstated permanently if the copyright holder notifies you of the |
violation by some reasonable means, this is the first time you have |
received notice of violation of this License (for any work) from that |
copyright holder, and you cure the violation prior to 30 days after |
your receipt of the notice. |
|
Termination of your rights under this section does not terminate the |
licenses of parties who have received copies or rights from you under |
this License. If your rights have been terminated and not permanently |
reinstated, you do not qualify to receive new licenses for the same |
material under section 10. |
|
9. Acceptance Not Required for Having Copies. |
|
You are not required to accept this License in order to receive or |
run a copy of the Program. Ancillary propagation of a covered work |
occurring solely as a consequence of using peer-to-peer transmission |
to receive a copy likewise does not require acceptance. However, |
nothing other than this License grants you permission to propagate or |
modify any covered work. These actions infringe copyright if you do |
not accept this License. Therefore, by modifying or propagating a |
covered work, you indicate your acceptance of this License to do so. |
|
10. Automatic Licensing of Downstream Recipients. |
|
Each time you convey a covered work, the recipient automatically |
receives a license from the original licensors, to run, modify and |
propagate that work, subject to this License. You are not responsible |
for enforcing compliance by third parties with this License. |
|
An "entity transaction" is a transaction transferring control of an |
organization, or substantially all assets of one, or subdividing an |
organization, or merging organizations. If propagation of a covered |
work results from an entity transaction, each party to that |
transaction who receives a copy of the work also receives whatever |
licenses to the work the party's predecessor in interest had or could |
give under the previous paragraph, plus a right to possession of the |
Corresponding Source of the work from the predecessor in interest, if |
the predecessor has it or can get it with reasonable efforts. |
|
You may not impose any further restrictions on the exercise of the |
rights granted or affirmed under this License. For example, you may |
not impose a license fee, royalty, or other charge for exercise of |
rights granted under this License, and you may not initiate litigation |
(including a cross-claim or counterclaim in a lawsuit) alleging that |
any patent claim is infringed by making, using, selling, offering for |
sale, or importing the Program or any portion of it. |
|
11. Patents. |
|
A "contributor" is a copyright holder who authorizes use under this |
License of the Program or a work on which the Program is based. The |
work thus licensed is called the contributor's "contributor version". |
|
A contributor's "essential patent claims" are all patent claims |
owned or controlled by the contributor, whether already acquired or |
hereafter acquired, that would be infringed by some manner, permitted |
by this License, of making, using, or selling its contributor version, |
but do not include claims that would be infringed only as a |
consequence of further modification of the contributor version. For |
purposes of this definition, "control" includes the right to grant |
patent sublicenses in a manner consistent with the requirements of |
this License. |
|
Each contributor grants you a non-exclusive, worldwide, royalty-free |
patent license under the contributor's essential patent claims, to |
make, use, sell, offer for sale, import and otherwise run, modify and |
propagate the contents of its contributor version. |
|
In the following three paragraphs, a "patent license" is any express |
agreement or commitment, however denominated, not to enforce a patent |
(such as an express permission to practice a patent or covenant not to |
sue for patent infringement). To "grant" such a patent license to a |
party means to make such an agreement or commitment not to enforce a |
patent against the party. |
|
If you convey a covered work, knowingly relying on a patent license, |
and the Corresponding Source of the work is not available for anyone |
to copy, free of charge and under the terms of this License, through a |
publicly available network server or other readily accessible means, |
then you must either (1) cause the Corresponding Source to be so |
available, or (2) arrange to deprive yourself of the benefit of the |
patent license for this particular work, or (3) arrange, in a manner |
consistent with the requirements of this License, to extend the patent |
license to downstream recipients. "Knowingly relying" means you have |
actual knowledge that, but for the patent license, your conveying the |
covered work in a country, or your recipient's use of the covered work |
in a country, would infringe one or more identifiable patents in that |
country that you have reason to believe are valid. |
|
If, pursuant to or in connection with a single transaction or |
arrangement, you convey, or propagate by procuring conveyance of, a |
covered work, and grant a patent license to some of the parties |
receiving the covered work authorizing them to use, propagate, modify |
or convey a specific copy of the covered work, then the patent license |
you grant is automatically extended to all recipients of the covered |
work and works based on it. |
|
A patent license is "discriminatory" if it does not include within |
the scope of its coverage, prohibits the exercise of, or is |
conditioned on the non-exercise of one or more of the rights that are |
specifically granted under this License. You may not convey a covered |
work if you are a party to an arrangement with a third party that is |
in the business of distributing software, under which you make payment |
to the third party based on the extent of your activity of conveying |
the work, and under which the third party grants, to any of the |
parties who would receive the covered work from you, a discriminatory |
patent license (a) in connection with copies of the covered work |
conveyed by you (or copies made from those copies), or (b) primarily |
for and in connection with specific products or compilations that |
contain the covered work, unless you entered into that arrangement, |
or that patent license was granted, prior to 28 March 2007. |
|
Nothing in this License shall be construed as excluding or limiting |
any implied license or other defenses to infringement that may |
otherwise be available to you under applicable patent law. |
|
12. No Surrender of Others' Freedom. |
|
If conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot convey a |
covered work so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you may |
not convey it at all. For example, if you agree to terms that obligate you |
to collect a royalty for further conveying from those to whom you convey |
the Program, the only way you could satisfy both those terms and this |
License would be to refrain entirely from conveying the Program. |
|
13. Use with the GNU Affero General Public License. |
|
Notwithstanding any other provision of this License, you have |
permission to link or combine any covered work with a work licensed |
under version 3 of the GNU Affero General Public License into a single |
combined work, and to convey the resulting work. The terms of this |
License will continue to apply to the part which is the covered work, |
but the special requirements of the GNU Affero General Public License, |
section 13, concerning interaction through a network will apply to the |
combination as such. |
|
14. Revised Versions of this License. |
|
The Free Software Foundation may publish revised and/or new versions of |
the GNU General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
|
Each version is given a distinguishing version number. If the |
Program specifies that a certain numbered version of the GNU General |
Public License "or any later version" applies to it, you have the |
option of following the terms and conditions either of that numbered |
version or of any later version published by the Free Software |
Foundation. If the Program does not specify a version number of the |
GNU General Public License, you may choose any version ever published |
by the Free Software Foundation. |
|
If the Program specifies that a proxy can decide which future |
versions of the GNU General Public License can be used, that proxy's |
public statement of acceptance of a version permanently authorizes you |
to choose that version for the Program. |
|
Later license versions may give you additional or different |
permissions. However, no additional obligations are imposed on any |
author or copyright holder as a result of your choosing to follow a |
later version. |
|
15. Disclaimer of Warranty. |
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY |
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, |
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM |
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF |
ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|
16. Limitation of Liability. |
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS |
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE |
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), |
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF |
SUCH DAMAGES. |
|
17. Interpretation of Sections 15 and 16. |
|
If the disclaimer of warranty and limitation of liability provided |
above cannot be given local legal effect according to their terms, |
reviewing courts shall apply local law that most closely approximates |
an absolute waiver of all civil liability in connection with the |
Program, unless a warranty or assumption of liability accompanies a |
copy of the Program in return for a fee. |
|
END OF TERMS AND CONDITIONS |
|
How to Apply These Terms to Your New Programs |
|
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
|
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
state the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
|
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) <year> <name of author> |
|
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, see <http://www.gnu.org/licenses/>. |
|
Also add information on how to contact you by electronic and paper mail. |
|
If the program does terminal interaction, make it output a short |
notice like this when it starts in an interactive mode: |
|
<program> Copyright (C) <year> <name of author> |
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
|
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, your program's commands |
might be different; for a GUI interface, you would use an "about box". |
|
You should also get your employer (if you work as a programmer) or school, |
if any, to sign a "copyright disclaimer" for the program, if necessary. |
For more information on this, and how to apply and follow the GNU GPL, see |
<http://www.gnu.org/licenses/>. |
|
The GNU General Public License does not permit incorporating your program |
into proprietary programs. If your program is a subroutine library, you |
may consider it more useful to permit linking proprietary applications with |
the library. If this is what you want to do, use the GNU Lesser General |
Public License instead of this License. But first, please read |
<http://www.gnu.org/philosophy/why-not-lgpl.html>. |
/trunk/gnu-dev/or1k-gcc/include/plugin-api.h
0,0 → 1,400
/* plugin-api.h -- External linker plugin API. */ |
|
/* Copyright 2009, 2010 Free Software Foundation, Inc. |
Written by Cary Coutant <ccoutant@google.com>. |
|
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 <stdint.h> |
#elif defined(HAVE_INTTYPES_H) |
#include <inttypes.h> |
#endif |
#include <sys/types.h> |
#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) */ |
/trunk/gnu-dev/or1k-gcc/include/xtensa-config.h
0,0 → 1,177
/* Xtensa configuration settings. |
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 |
Free Software Foundation, Inc. |
Contributed by Bob Wilson (bob.wilson@acm.org) at Tensilica. |
|
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 2, 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ |
|
#ifndef XTENSA_CONFIG_H |
#define XTENSA_CONFIG_H |
|
/* The macros defined here match those with the same names in the Xtensa |
compile-time HAL (Hardware Abstraction Layer). Please refer to the |
Xtensa System Software Reference Manual for documentation of these |
macros. */ |
|
#undef XCHAL_HAVE_BE |
#define XCHAL_HAVE_BE 1 |
|
#undef XCHAL_HAVE_DENSITY |
#define XCHAL_HAVE_DENSITY 1 |
|
#undef XCHAL_HAVE_CONST16 |
#define XCHAL_HAVE_CONST16 0 |
|
#undef XCHAL_HAVE_ABS |
#define XCHAL_HAVE_ABS 1 |
|
#undef XCHAL_HAVE_ADDX |
#define XCHAL_HAVE_ADDX 1 |
|
#undef XCHAL_HAVE_L32R |
#define XCHAL_HAVE_L32R 1 |
|
#undef XSHAL_USE_ABSOLUTE_LITERALS |
#define XSHAL_USE_ABSOLUTE_LITERALS 0 |
|
#undef XSHAL_HAVE_TEXT_SECTION_LITERALS |
#define XSHAL_HAVE_TEXT_SECTION_LITERALS 1 /* Set if there is some memory that allows both code and literals. */ |
|
#undef XCHAL_HAVE_MAC16 |
#define XCHAL_HAVE_MAC16 0 |
|
#undef XCHAL_HAVE_MUL16 |
#define XCHAL_HAVE_MUL16 1 |
|
#undef XCHAL_HAVE_MUL32 |
#define XCHAL_HAVE_MUL32 1 |
|
#undef XCHAL_HAVE_MUL32_HIGH |
#define XCHAL_HAVE_MUL32_HIGH 0 |
|
#undef XCHAL_HAVE_DIV32 |
#define XCHAL_HAVE_DIV32 1 |
|
#undef XCHAL_HAVE_NSA |
#define XCHAL_HAVE_NSA 1 |
|
#undef XCHAL_HAVE_MINMAX |
#define XCHAL_HAVE_MINMAX 1 |
|
#undef XCHAL_HAVE_SEXT |
#define XCHAL_HAVE_SEXT 1 |
|
#undef XCHAL_HAVE_LOOPS |
#define XCHAL_HAVE_LOOPS 1 |
|
#undef XCHAL_HAVE_THREADPTR |
#define XCHAL_HAVE_THREADPTR 1 |
|
#undef XCHAL_HAVE_RELEASE_SYNC |
#define XCHAL_HAVE_RELEASE_SYNC 1 |
|
#undef XCHAL_HAVE_S32C1I |
#define XCHAL_HAVE_S32C1I 1 |
|
#undef XCHAL_HAVE_BOOLEANS |
#define XCHAL_HAVE_BOOLEANS 0 |
|
#undef XCHAL_HAVE_FP |
#define XCHAL_HAVE_FP 0 |
|
#undef XCHAL_HAVE_FP_DIV |
#define XCHAL_HAVE_FP_DIV 0 |
|
#undef XCHAL_HAVE_FP_RECIP |
#define XCHAL_HAVE_FP_RECIP 0 |
|
#undef XCHAL_HAVE_FP_SQRT |
#define XCHAL_HAVE_FP_SQRT 0 |
|
#undef XCHAL_HAVE_FP_RSQRT |
#define XCHAL_HAVE_FP_RSQRT 0 |
|
#undef XCHAL_HAVE_DFP_accel |
#define XCHAL_HAVE_DFP_accel 0 |
#undef XCHAL_HAVE_WINDOWED |
#define XCHAL_HAVE_WINDOWED 1 |
|
#undef XCHAL_NUM_AREGS |
#define XCHAL_NUM_AREGS 32 |
|
#undef XCHAL_HAVE_WIDE_BRANCHES |
#define XCHAL_HAVE_WIDE_BRANCHES 0 |
|
#undef XCHAL_HAVE_PREDICTED_BRANCHES |
#define XCHAL_HAVE_PREDICTED_BRANCHES 0 |
|
|
#undef XCHAL_ICACHE_SIZE |
#define XCHAL_ICACHE_SIZE 16384 |
|
#undef XCHAL_DCACHE_SIZE |
#define XCHAL_DCACHE_SIZE 16384 |
|
#undef XCHAL_ICACHE_LINESIZE |
#define XCHAL_ICACHE_LINESIZE 32 |
|
#undef XCHAL_DCACHE_LINESIZE |
#define XCHAL_DCACHE_LINESIZE 32 |
|
#undef XCHAL_ICACHE_LINEWIDTH |
#define XCHAL_ICACHE_LINEWIDTH 5 |
|
#undef XCHAL_DCACHE_LINEWIDTH |
#define XCHAL_DCACHE_LINEWIDTH 5 |
|
#undef XCHAL_DCACHE_IS_WRITEBACK |
#define XCHAL_DCACHE_IS_WRITEBACK 1 |
|
|
#undef XCHAL_HAVE_MMU |
#define XCHAL_HAVE_MMU 1 |
|
#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE |
#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12 |
|
|
#undef XCHAL_HAVE_DEBUG |
#define XCHAL_HAVE_DEBUG 1 |
|
#undef XCHAL_NUM_IBREAK |
#define XCHAL_NUM_IBREAK 2 |
|
#undef XCHAL_NUM_DBREAK |
#define XCHAL_NUM_DBREAK 2 |
|
#undef XCHAL_DEBUGLEVEL |
#define XCHAL_DEBUGLEVEL 6 |
|
|
#undef XCHAL_MAX_INSTRUCTION_SIZE |
#define XCHAL_MAX_INSTRUCTION_SIZE 3 |
|
#undef XCHAL_INST_FETCH_WIDTH |
#define XCHAL_INST_FETCH_WIDTH 4 |
|
|
#undef XSHAL_ABI |
#undef XTHAL_ABI_WINDOWED |
#undef XTHAL_ABI_CALL0 |
#define XSHAL_ABI XTHAL_ABI_WINDOWED |
#define XTHAL_ABI_WINDOWED 0 |
#define XTHAL_ABI_CALL0 1 |
|
#endif /* !XTENSA_CONFIG_H */ |
/trunk/gnu-dev/or1k-gcc/include/partition.h
0,0 → 1,82
/* List implementation of a partition of consecutive integers. |
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. |
Contributed by CodeSourcery, LLC. |
|
This file is part of GCC. |
|
GCC 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 2, or (at your option) |
any later version. |
|
GCC 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 GCC; see the file COPYING. If not, write to |
the Free Software Foundation, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
/* This package implements a partition of consecutive integers. The |
elements are partitioned into classes. Each class is represented |
by one of its elements, the canonical element, which is chosen |
arbitrarily from elements in the class. The principal operations |
on a partition are FIND, which takes an element, determines its |
class, and returns the canonical element for that class, and UNION, |
which unites the two classes that contain two given elements into a |
single class. |
|
The list implementation used here provides constant-time finds. By |
storing the size of each class with the class's canonical element, |
it is able to perform unions over all the classes in the partition |
in O (N log N) time. */ |
|
#ifndef _PARTITION_H |
#define _PARTITION_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
#include "ansidecl.h" |
#include <stdio.h> |
|
struct partition_elem |
{ |
/* The canonical element that represents the class containing this |
element. */ |
int class_element; |
/* The next element in this class. Elements in each class form a |
circular list. */ |
struct partition_elem* next; |
/* The number of elements in this class. Valid only if this is the |
canonical element for its class. */ |
unsigned class_count; |
}; |
|
typedef struct partition_def |
{ |
/* The number of elements in this partition. */ |
int num_elements; |
/* The elements in the partition. */ |
struct partition_elem elements[1]; |
} *partition; |
|
extern partition partition_new (int); |
extern void partition_delete (partition); |
extern int partition_union (partition, int, int); |
extern void partition_print (partition, FILE*); |
|
/* Returns the canonical element corresponding to the class containing |
ELEMENT__ in PARTITION__. */ |
|
#define partition_find(partition__, element__) \ |
((partition__)->elements[(element__)].class_element) |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* _PARTITION_H */ |
/trunk/gnu-dev/or1k-gcc/include/hashtab.h
0,0 → 1,209
/* An expandable hash tables datatype. |
Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2009, 2010 |
Free Software Foundation, Inc. |
Contributed by Vladimir Makarov (vmakarov@cygnus.com). |
|
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 2 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 package implements basic hash table functionality. It is possible |
to search for an entry, create an entry and destroy an entry. |
|
Elements in the table are generic pointers. |
|
The size of the table is not fixed; if the occupancy of the table |
grows too high the hash table will be expanded. |
|
The abstract data implementation is based on generalized Algorithm D |
from Knuth's book "The art of computer programming". Hash table is |
expanded by creation of new hash table and transferring elements from |
the old table to the new table. */ |
|
#ifndef __HASHTAB_H__ |
#define __HASHTAB_H__ |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
#include "ansidecl.h" |
|
#ifndef GTY |
#define GTY(X) |
#endif |
|
/* The type for a hash code. */ |
typedef unsigned int hashval_t; |
|
/* Callback function pointer types. */ |
|
/* Calculate hash of a table entry. */ |
typedef hashval_t (*htab_hash) (const void *); |
|
/* Compare a table entry with a possible entry. The entry already in |
the table always comes first, so the second element can be of a |
different type (but in this case htab_find and htab_find_slot |
cannot be used; instead the variants that accept a hash value |
must be used). */ |
typedef int (*htab_eq) (const void *, const void *); |
|
/* Cleanup function called whenever a live element is removed from |
the hash table. */ |
typedef void (*htab_del) (void *); |
|
/* Function called by htab_traverse for each live element. The first |
arg is the slot of the element (which can be passed to htab_clear_slot |
if desired), the second arg is the auxiliary pointer handed to |
htab_traverse. Return 1 to continue scan, 0 to stop. */ |
typedef int (*htab_trav) (void **, void *); |
|
/* Memory-allocation function, with the same functionality as calloc(). |
Iff it returns NULL, the hash table implementation will pass an error |
code back to the user, so if your code doesn't handle errors, |
best if you use xcalloc instead. */ |
typedef void *(*htab_alloc) (size_t, size_t); |
|
/* We also need a free() routine. */ |
typedef void (*htab_free) (void *); |
|
/* Memory allocation and deallocation; variants which take an extra |
argument. */ |
typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t); |
typedef void (*htab_free_with_arg) (void *, void *); |
|
/* This macro defines reserved value for empty table entry. */ |
|
#define HTAB_EMPTY_ENTRY ((PTR) 0) |
|
/* This macro defines reserved value for table entry which contained |
a deleted element. */ |
|
#define HTAB_DELETED_ENTRY ((PTR) 1) |
|
/* Hash tables are of the following type. The structure |
(implementation) of this type is not needed for using the hash |
tables. All work with hash table should be executed only through |
functions mentioned below. The size of this structure is subject to |
change. */ |
|
struct GTY(()) htab { |
/* Pointer to hash function. */ |
htab_hash hash_f; |
|
/* Pointer to comparison function. */ |
htab_eq eq_f; |
|
/* Pointer to cleanup function. */ |
htab_del del_f; |
|
/* Table itself. */ |
void ** GTY ((use_param, length ("%h.size"))) entries; |
|
/* Current size (in entries) of the hash table. */ |
size_t size; |
|
/* Current number of elements including also deleted elements. */ |
size_t n_elements; |
|
/* Current number of deleted elements in the table. */ |
size_t n_deleted; |
|
/* The following member is used for debugging. Its value is number |
of all calls of `htab_find_slot' for the hash table. */ |
unsigned int searches; |
|
/* The following member is used for debugging. Its value is number |
of collisions fixed for time of work with the hash table. */ |
unsigned int collisions; |
|
/* Pointers to allocate/free functions. */ |
htab_alloc alloc_f; |
htab_free free_f; |
|
/* Alternate allocate/free functions, which take an extra argument. */ |
void * GTY((skip)) alloc_arg; |
htab_alloc_with_arg alloc_with_arg_f; |
htab_free_with_arg free_with_arg_f; |
|
/* Current size (in entries) of the hash table, as an index into the |
table of primes. */ |
unsigned int size_prime_index; |
}; |
|
typedef struct htab *htab_t; |
|
/* An enum saying whether we insert into the hash table or not. */ |
enum insert_option {NO_INSERT, INSERT}; |
|
/* The prototypes of the package functions. */ |
|
extern htab_t htab_create_alloc (size_t, htab_hash, |
htab_eq, htab_del, |
htab_alloc, htab_free); |
|
extern htab_t htab_create_alloc_ex (size_t, htab_hash, |
htab_eq, htab_del, |
void *, htab_alloc_with_arg, |
htab_free_with_arg); |
|
extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del, |
htab_alloc, htab_alloc, htab_free); |
|
/* Backward-compatibility functions. */ |
extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del); |
extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del); |
|
extern void htab_set_functions_ex (htab_t, htab_hash, |
htab_eq, htab_del, |
void *, htab_alloc_with_arg, |
htab_free_with_arg); |
|
extern void htab_delete (htab_t); |
extern void htab_empty (htab_t); |
|
extern void * htab_find (htab_t, const void *); |
extern void ** htab_find_slot (htab_t, const void *, enum insert_option); |
extern void * htab_find_with_hash (htab_t, const void *, hashval_t); |
extern void ** htab_find_slot_with_hash (htab_t, const void *, |
hashval_t, enum insert_option); |
extern void htab_clear_slot (htab_t, void **); |
extern void htab_remove_elt (htab_t, void *); |
extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); |
|
extern void htab_traverse (htab_t, htab_trav, void *); |
extern void htab_traverse_noresize (htab_t, htab_trav, void *); |
|
extern size_t htab_size (htab_t); |
extern size_t htab_elements (htab_t); |
extern double htab_collisions (htab_t); |
|
/* A hash function for pointers. */ |
extern htab_hash htab_hash_pointer; |
|
/* An equality function for pointers. */ |
extern htab_eq htab_eq_pointer; |
|
/* A hash function for null-terminated strings. */ |
extern hashval_t htab_hash_string (const void *); |
|
/* An iterative hash function for arbitrary data. */ |
extern hashval_t iterative_hash (const void *, size_t, hashval_t); |
/* Shorthand for hashing something with an intrinsic size. */ |
#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT) |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* __HASHTAB_H */ |
/trunk/gnu-dev/or1k-gcc/include/demangle.h
0,0 → 1,660
/* Defs for interface to demanglers. |
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, |
2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
|
This program is free software; you can redistribute it and/or |
modify it under the terms of the GNU Library General Public License |
as published by the Free Software Foundation; either version 2, or |
(at your option) any later version. |
|
In addition to the permissions in the GNU Library General Public |
License, the Free Software Foundation gives you unlimited |
permission to link the compiled version of this file into |
combinations with other programs, and to distribute those |
combinations without any restriction coming from the use of this |
file. (The Library Public License restrictions do apply in other |
respects; for example, they cover modification of the file, and |
distribution when not linked into a combined executable.) |
|
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 |
Library General Public License for more details. |
|
You should have received a copy of the GNU Library 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. */ |
|
|
#if !defined (DEMANGLE_H) |
#define DEMANGLE_H |
|
#include "libiberty.h" |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
/* Options passed to cplus_demangle (in 2nd parameter). */ |
|
#define DMGL_NO_OPTS 0 /* For readability... */ |
#define DMGL_PARAMS (1 << 0) /* Include function args */ |
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */ |
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */ |
#define DMGL_VERBOSE (1 << 3) /* Include implementation details. */ |
#define DMGL_TYPES (1 << 4) /* Also try to demangle type encodings. */ |
#define DMGL_RET_POSTFIX (1 << 5) /* Print function return types (when |
present) after function signature. |
It applies only to the toplevel |
function type. */ |
#define DMGL_RET_DROP (1 << 6) /* Suppress printing function return |
types, even if present. It applies |
only to the toplevel function type. |
*/ |
|
#define DMGL_AUTO (1 << 8) |
#define DMGL_GNU (1 << 9) |
#define DMGL_LUCID (1 << 10) |
#define DMGL_ARM (1 << 11) |
#define DMGL_HP (1 << 12) /* For the HP aCC compiler; |
same as ARM except for |
template arguments, etc. */ |
#define DMGL_EDG (1 << 13) |
#define DMGL_GNU_V3 (1 << 14) |
#define DMGL_GNAT (1 << 15) |
|
/* If none of these are set, use 'current_demangling_style' as the default. */ |
#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT) |
|
/* Enumeration of possible demangling styles. |
|
Lucid and ARM styles are still kept logically distinct, even though |
they now both behave identically. The resulting style is actual the |
union of both. I.E. either style recognizes both "__pt__" and "__rf__" |
for operator "->", even though the first is lucid style and the second |
is ARM style. (FIXME?) */ |
|
extern enum demangling_styles |
{ |
no_demangling = -1, |
unknown_demangling = 0, |
auto_demangling = DMGL_AUTO, |
gnu_demangling = DMGL_GNU, |
lucid_demangling = DMGL_LUCID, |
arm_demangling = DMGL_ARM, |
hp_demangling = DMGL_HP, |
edg_demangling = DMGL_EDG, |
gnu_v3_demangling = DMGL_GNU_V3, |
java_demangling = DMGL_JAVA, |
gnat_demangling = DMGL_GNAT |
} current_demangling_style; |
|
/* Define string names for the various demangling styles. */ |
|
#define NO_DEMANGLING_STYLE_STRING "none" |
#define AUTO_DEMANGLING_STYLE_STRING "auto" |
#define GNU_DEMANGLING_STYLE_STRING "gnu" |
#define LUCID_DEMANGLING_STYLE_STRING "lucid" |
#define ARM_DEMANGLING_STYLE_STRING "arm" |
#define HP_DEMANGLING_STYLE_STRING "hp" |
#define EDG_DEMANGLING_STYLE_STRING "edg" |
#define GNU_V3_DEMANGLING_STYLE_STRING "gnu-v3" |
#define JAVA_DEMANGLING_STYLE_STRING "java" |
#define GNAT_DEMANGLING_STYLE_STRING "gnat" |
|
/* Some macros to test what demangling style is active. */ |
|
#define CURRENT_DEMANGLING_STYLE current_demangling_style |
#define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO) |
#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU) |
#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID) |
#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM) |
#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP) |
#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG) |
#define GNU_V3_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3) |
#define JAVA_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_JAVA) |
#define GNAT_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNAT) |
|
/* Provide information about the available demangle styles. This code is |
pulled from gdb into libiberty because it is useful to binutils also. */ |
|
extern const struct demangler_engine |
{ |
const char *const demangling_style_name; |
const enum demangling_styles demangling_style; |
const char *const demangling_style_doc; |
} libiberty_demanglers[]; |
|
extern char * |
cplus_demangle (const char *mangled, int options); |
|
extern int |
cplus_demangle_opname (const char *opname, char *result, int options); |
|
extern const char * |
cplus_mangle_opname (const char *opname, int options); |
|
/* Note: This sets global state. FIXME if you care about multi-threading. */ |
|
extern void |
set_cplus_marker_for_demangling (int ch); |
|
extern enum demangling_styles |
cplus_demangle_set_style (enum demangling_styles style); |
|
extern enum demangling_styles |
cplus_demangle_name_to_style (const char *name); |
|
/* Callback typedef for allocation-less demangler interfaces. */ |
typedef void (*demangle_callbackref) (const char *, size_t, void *); |
|
/* V3 ABI demangling entry points, defined in cp-demangle.c. Callback |
variants return non-zero on success, zero on error. char* variants |
return a string allocated by malloc on success, NULL on error. */ |
extern int |
cplus_demangle_v3_callback (const char *mangled, int options, |
demangle_callbackref callback, void *opaque); |
|
extern char* |
cplus_demangle_v3 (const char *mangled, int options); |
|
extern int |
java_demangle_v3_callback (const char *mangled, |
demangle_callbackref callback, void *opaque); |
|
extern char* |
java_demangle_v3 (const char *mangled); |
|
char * |
ada_demangle (const char *mangled, int options); |
|
enum gnu_v3_ctor_kinds { |
gnu_v3_complete_object_ctor = 1, |
gnu_v3_base_object_ctor, |
gnu_v3_complete_object_allocating_ctor, |
gnu_v3_object_ctor_group |
}; |
|
/* Return non-zero iff NAME is the mangled form of a constructor name |
in the G++ V3 ABI demangling style. Specifically, return an `enum |
gnu_v3_ctor_kinds' value indicating what kind of constructor |
it is. */ |
extern enum gnu_v3_ctor_kinds |
is_gnu_v3_mangled_ctor (const char *name); |
|
|
enum gnu_v3_dtor_kinds { |
gnu_v3_deleting_dtor = 1, |
gnu_v3_complete_object_dtor, |
gnu_v3_base_object_dtor, |
gnu_v3_object_dtor_group |
}; |
|
/* Return non-zero iff NAME is the mangled form of a destructor name |
in the G++ V3 ABI demangling style. Specifically, return an `enum |
gnu_v3_dtor_kinds' value, indicating what kind of destructor |
it is. */ |
extern enum gnu_v3_dtor_kinds |
is_gnu_v3_mangled_dtor (const char *name); |
|
/* The V3 demangler works in two passes. The first pass builds a tree |
representation of the mangled name, and the second pass turns the |
tree representation into a demangled string. Here we define an |
interface to permit a caller to build their own tree |
representation, which they can pass to the demangler to get a |
demangled string. This can be used to canonicalize user input into |
something which the demangler might output. It could also be used |
by other demanglers in the future. */ |
|
/* These are the component types which may be found in the tree. Many |
component types have one or two subtrees, referred to as left and |
right (a component type with only one subtree puts it in the left |
subtree). */ |
|
enum demangle_component_type |
{ |
/* A name, with a length and a pointer to a string. */ |
DEMANGLE_COMPONENT_NAME, |
/* A qualified name. The left subtree is a class or namespace or |
some such thing, and the right subtree is a name qualified by |
that class. */ |
DEMANGLE_COMPONENT_QUAL_NAME, |
/* A local name. The left subtree describes a function, and the |
right subtree is a name which is local to that function. */ |
DEMANGLE_COMPONENT_LOCAL_NAME, |
/* A typed name. The left subtree is a name, and the right subtree |
describes that name as a function. */ |
DEMANGLE_COMPONENT_TYPED_NAME, |
/* A template. The left subtree is a template name, and the right |
subtree is a template argument list. */ |
DEMANGLE_COMPONENT_TEMPLATE, |
/* A template parameter. This holds a number, which is the template |
parameter index. */ |
DEMANGLE_COMPONENT_TEMPLATE_PARAM, |
/* A function parameter. This holds a number, which is the index. */ |
DEMANGLE_COMPONENT_FUNCTION_PARAM, |
/* A constructor. This holds a name and the kind of |
constructor. */ |
DEMANGLE_COMPONENT_CTOR, |
/* A destructor. This holds a name and the kind of destructor. */ |
DEMANGLE_COMPONENT_DTOR, |
/* A vtable. This has one subtree, the type for which this is a |
vtable. */ |
DEMANGLE_COMPONENT_VTABLE, |
/* A VTT structure. This has one subtree, the type for which this |
is a VTT. */ |
DEMANGLE_COMPONENT_VTT, |
/* A construction vtable. The left subtree is the type for which |
this is a vtable, and the right subtree is the derived type for |
which this vtable is built. */ |
DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, |
/* A typeinfo structure. This has one subtree, the type for which |
this is the tpeinfo structure. */ |
DEMANGLE_COMPONENT_TYPEINFO, |
/* A typeinfo name. This has one subtree, the type for which this |
is the typeinfo name. */ |
DEMANGLE_COMPONENT_TYPEINFO_NAME, |
/* A typeinfo function. This has one subtree, the type for which |
this is the tpyeinfo function. */ |
DEMANGLE_COMPONENT_TYPEINFO_FN, |
/* A thunk. This has one subtree, the name for which this is a |
thunk. */ |
DEMANGLE_COMPONENT_THUNK, |
/* A virtual thunk. This has one subtree, the name for which this |
is a virtual thunk. */ |
DEMANGLE_COMPONENT_VIRTUAL_THUNK, |
/* A covariant thunk. This has one subtree, the name for which this |
is a covariant thunk. */ |
DEMANGLE_COMPONENT_COVARIANT_THUNK, |
/* A Java class. This has one subtree, the type. */ |
DEMANGLE_COMPONENT_JAVA_CLASS, |
/* A guard variable. This has one subtree, the name for which this |
is a guard variable. */ |
DEMANGLE_COMPONENT_GUARD, |
/* A reference temporary. This has one subtree, the name for which |
this is a temporary. */ |
DEMANGLE_COMPONENT_REFTEMP, |
/* A hidden alias. This has one subtree, the encoding for which it |
is providing alternative linkage. */ |
DEMANGLE_COMPONENT_HIDDEN_ALIAS, |
/* A standard substitution. This holds the name of the |
substitution. */ |
DEMANGLE_COMPONENT_SUB_STD, |
/* The restrict qualifier. The one subtree is the type which is |
being qualified. */ |
DEMANGLE_COMPONENT_RESTRICT, |
/* The volatile qualifier. The one subtree is the type which is |
being qualified. */ |
DEMANGLE_COMPONENT_VOLATILE, |
/* The const qualifier. The one subtree is the type which is being |
qualified. */ |
DEMANGLE_COMPONENT_CONST, |
/* The restrict qualifier modifying a member function. The one |
subtree is the type which is being qualified. */ |
DEMANGLE_COMPONENT_RESTRICT_THIS, |
/* The volatile qualifier modifying a member function. The one |
subtree is the type which is being qualified. */ |
DEMANGLE_COMPONENT_VOLATILE_THIS, |
/* The const qualifier modifying a member function. The one subtree |
is the type which is being qualified. */ |
DEMANGLE_COMPONENT_CONST_THIS, |
/* A vendor qualifier. The left subtree is the type which is being |
qualified, and the right subtree is the name of the |
qualifier. */ |
DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL, |
/* A pointer. The one subtree is the type which is being pointed |
to. */ |
DEMANGLE_COMPONENT_POINTER, |
/* A reference. The one subtree is the type which is being |
referenced. */ |
DEMANGLE_COMPONENT_REFERENCE, |
/* C++0x: An rvalue reference. The one subtree is the type which is |
being referenced. */ |
DEMANGLE_COMPONENT_RVALUE_REFERENCE, |
/* A complex type. The one subtree is the base type. */ |
DEMANGLE_COMPONENT_COMPLEX, |
/* An imaginary type. The one subtree is the base type. */ |
DEMANGLE_COMPONENT_IMAGINARY, |
/* A builtin type. This holds the builtin type information. */ |
DEMANGLE_COMPONENT_BUILTIN_TYPE, |
/* A vendor's builtin type. This holds the name of the type. */ |
DEMANGLE_COMPONENT_VENDOR_TYPE, |
/* A function type. The left subtree is the return type. The right |
subtree is a list of ARGLIST nodes. Either or both may be |
NULL. */ |
DEMANGLE_COMPONENT_FUNCTION_TYPE, |
/* An array type. The left subtree is the dimension, which may be |
NULL, or a string (represented as DEMANGLE_COMPONENT_NAME), or an |
expression. The right subtree is the element type. */ |
DEMANGLE_COMPONENT_ARRAY_TYPE, |
/* A pointer to member type. The left subtree is the class type, |
and the right subtree is the member type. CV-qualifiers appear |
on the latter. */ |
DEMANGLE_COMPONENT_PTRMEM_TYPE, |
/* A fixed-point type. */ |
DEMANGLE_COMPONENT_FIXED_TYPE, |
/* A vector type. The left subtree is the number of elements, |
the right subtree is the element type. */ |
DEMANGLE_COMPONENT_VECTOR_TYPE, |
/* An argument list. The left subtree is the current argument, and |
the right subtree is either NULL or another ARGLIST node. */ |
DEMANGLE_COMPONENT_ARGLIST, |
/* A template argument list. The left subtree is the current |
template argument, and the right subtree is either NULL or |
another TEMPLATE_ARGLIST node. */ |
DEMANGLE_COMPONENT_TEMPLATE_ARGLIST, |
/* An initializer list. The left subtree is either an explicit type or |
NULL, and the right subtree is a DEMANGLE_COMPONENT_ARGLIST. */ |
DEMANGLE_COMPONENT_INITIALIZER_LIST, |
/* An operator. This holds information about a standard |
operator. */ |
DEMANGLE_COMPONENT_OPERATOR, |
/* An extended operator. This holds the number of arguments, and |
the name of the extended operator. */ |
DEMANGLE_COMPONENT_EXTENDED_OPERATOR, |
/* A typecast, represented as a unary operator. The one subtree is |
the type to which the argument should be cast. */ |
DEMANGLE_COMPONENT_CAST, |
/* A nullary expression. The left subtree is the operator. */ |
DEMANGLE_COMPONENT_NULLARY, |
/* A unary expression. The left subtree is the operator, and the |
right subtree is the single argument. */ |
DEMANGLE_COMPONENT_UNARY, |
/* A binary expression. The left subtree is the operator, and the |
right subtree is a BINARY_ARGS. */ |
DEMANGLE_COMPONENT_BINARY, |
/* Arguments to a binary expression. The left subtree is the first |
argument, and the right subtree is the second argument. */ |
DEMANGLE_COMPONENT_BINARY_ARGS, |
/* A trinary expression. The left subtree is the operator, and the |
right subtree is a TRINARY_ARG1. */ |
DEMANGLE_COMPONENT_TRINARY, |
/* Arguments to a trinary expression. The left subtree is the first |
argument, and the right subtree is a TRINARY_ARG2. */ |
DEMANGLE_COMPONENT_TRINARY_ARG1, |
/* More arguments to a trinary expression. The left subtree is the |
second argument, and the right subtree is the third argument. */ |
DEMANGLE_COMPONENT_TRINARY_ARG2, |
/* A literal. The left subtree is the type, and the right subtree |
is the value, represented as a DEMANGLE_COMPONENT_NAME. */ |
DEMANGLE_COMPONENT_LITERAL, |
/* A negative literal. Like LITERAL, but the value is negated. |
This is a minor hack: the NAME used for LITERAL points directly |
to the mangled string, but since negative numbers are mangled |
using 'n' instead of '-', we want a way to indicate a negative |
number which involves neither modifying the mangled string nor |
allocating a new copy of the literal in memory. */ |
DEMANGLE_COMPONENT_LITERAL_NEG, |
/* A libgcj compiled resource. The left subtree is the name of the |
resource. */ |
DEMANGLE_COMPONENT_JAVA_RESOURCE, |
/* A name formed by the concatenation of two parts. The left |
subtree is the first part and the right subtree the second. */ |
DEMANGLE_COMPONENT_COMPOUND_NAME, |
/* A name formed by a single character. */ |
DEMANGLE_COMPONENT_CHARACTER, |
/* A number. */ |
DEMANGLE_COMPONENT_NUMBER, |
/* A decltype type. */ |
DEMANGLE_COMPONENT_DECLTYPE, |
/* Global constructors keyed to name. */ |
DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS, |
/* Global destructors keyed to name. */ |
DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS, |
/* A lambda closure type. */ |
DEMANGLE_COMPONENT_LAMBDA, |
/* A default argument scope. */ |
DEMANGLE_COMPONENT_DEFAULT_ARG, |
/* An unnamed type. */ |
DEMANGLE_COMPONENT_UNNAMED_TYPE, |
/* A transactional clone. This has one subtree, the encoding for |
which it is providing alternative linkage. */ |
DEMANGLE_COMPONENT_TRANSACTION_CLONE, |
/* A non-transactional clone entry point. In the i386/x86_64 abi, |
the unmangled symbol of a tm_callable becomes a thunk and the |
non-transactional function version is mangled thus. */ |
DEMANGLE_COMPONENT_NONTRANSACTION_CLONE, |
/* A pack expansion. */ |
DEMANGLE_COMPONENT_PACK_EXPANSION, |
/* A cloned function. */ |
DEMANGLE_COMPONENT_CLONE |
}; |
|
/* Types which are only used internally. */ |
|
struct demangle_operator_info; |
struct demangle_builtin_type_info; |
|
/* A node in the tree representation is an instance of a struct |
demangle_component. Note that the field names of the struct are |
not well protected against macros defined by the file including |
this one. We can fix this if it ever becomes a problem. */ |
|
struct demangle_component |
{ |
/* The type of this component. */ |
enum demangle_component_type type; |
|
union |
{ |
/* For DEMANGLE_COMPONENT_NAME. */ |
struct |
{ |
/* A pointer to the name (which need not NULL terminated) and |
its length. */ |
const char *s; |
int len; |
} s_name; |
|
/* For DEMANGLE_COMPONENT_OPERATOR. */ |
struct |
{ |
/* Operator. */ |
const struct demangle_operator_info *op; |
} s_operator; |
|
/* For DEMANGLE_COMPONENT_EXTENDED_OPERATOR. */ |
struct |
{ |
/* Number of arguments. */ |
int args; |
/* Name. */ |
struct demangle_component *name; |
} s_extended_operator; |
|
/* For DEMANGLE_COMPONENT_FIXED_TYPE. */ |
struct |
{ |
/* The length, indicated by a C integer type name. */ |
struct demangle_component *length; |
/* _Accum or _Fract? */ |
short accum; |
/* Saturating or not? */ |
short sat; |
} s_fixed; |
|
/* For DEMANGLE_COMPONENT_CTOR. */ |
struct |
{ |
/* Kind of constructor. */ |
enum gnu_v3_ctor_kinds kind; |
/* Name. */ |
struct demangle_component *name; |
} s_ctor; |
|
/* For DEMANGLE_COMPONENT_DTOR. */ |
struct |
{ |
/* Kind of destructor. */ |
enum gnu_v3_dtor_kinds kind; |
/* Name. */ |
struct demangle_component *name; |
} s_dtor; |
|
/* For DEMANGLE_COMPONENT_BUILTIN_TYPE. */ |
struct |
{ |
/* Builtin type. */ |
const struct demangle_builtin_type_info *type; |
} s_builtin; |
|
/* For DEMANGLE_COMPONENT_SUB_STD. */ |
struct |
{ |
/* Standard substitution string. */ |
const char* string; |
/* Length of string. */ |
int len; |
} s_string; |
|
/* For DEMANGLE_COMPONENT_*_PARAM. */ |
struct |
{ |
/* Parameter index. */ |
long number; |
} s_number; |
|
/* For DEMANGLE_COMPONENT_CHARACTER. */ |
struct |
{ |
int character; |
} s_character; |
|
/* For other types. */ |
struct |
{ |
/* Left (or only) subtree. */ |
struct demangle_component *left; |
/* Right subtree. */ |
struct demangle_component *right; |
} s_binary; |
|
struct |
{ |
/* subtree, same place as d_left. */ |
struct demangle_component *sub; |
/* integer. */ |
int num; |
} s_unary_num; |
|
} u; |
}; |
|
/* People building mangled trees are expected to allocate instances of |
struct demangle_component themselves. They can then call one of |
the following functions to fill them in. */ |
|
/* Fill in most component types with a left subtree and a right |
subtree. Returns non-zero on success, zero on failure, such as an |
unrecognized or inappropriate component type. */ |
|
extern int |
cplus_demangle_fill_component (struct demangle_component *fill, |
enum demangle_component_type, |
struct demangle_component *left, |
struct demangle_component *right); |
|
/* Fill in a DEMANGLE_COMPONENT_NAME. Returns non-zero on success, |
zero for bad arguments. */ |
|
extern int |
cplus_demangle_fill_name (struct demangle_component *fill, |
const char *, int); |
|
/* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the |
builtin type (e.g., "int", etc.). Returns non-zero on success, |
zero if the type is not recognized. */ |
|
extern int |
cplus_demangle_fill_builtin_type (struct demangle_component *fill, |
const char *type_name); |
|
/* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the |
operator and the number of arguments which it takes (the latter is |
used to disambiguate operators which can be both binary and unary, |
such as '-'). Returns non-zero on success, zero if the operator is |
not recognized. */ |
|
extern int |
cplus_demangle_fill_operator (struct demangle_component *fill, |
const char *opname, int args); |
|
/* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the |
number of arguments and the name. Returns non-zero on success, |
zero for bad arguments. */ |
|
extern int |
cplus_demangle_fill_extended_operator (struct demangle_component *fill, |
int numargs, |
struct demangle_component *nm); |
|
/* Fill in a DEMANGLE_COMPONENT_CTOR. Returns non-zero on success, |
zero for bad arguments. */ |
|
extern int |
cplus_demangle_fill_ctor (struct demangle_component *fill, |
enum gnu_v3_ctor_kinds kind, |
struct demangle_component *name); |
|
/* Fill in a DEMANGLE_COMPONENT_DTOR. Returns non-zero on success, |
zero for bad arguments. */ |
|
extern int |
cplus_demangle_fill_dtor (struct demangle_component *fill, |
enum gnu_v3_dtor_kinds kind, |
struct demangle_component *name); |
|
/* This function translates a mangled name into a struct |
demangle_component tree. The first argument is the mangled name. |
The second argument is DMGL_* options. This returns a pointer to a |
tree on success, or NULL on failure. On success, the third |
argument is set to a block of memory allocated by malloc. This |
block should be passed to free when the tree is no longer |
needed. */ |
|
extern struct demangle_component * |
cplus_demangle_v3_components (const char *mangled, int options, void **mem); |
|
/* This function takes a struct demangle_component tree and returns |
the corresponding demangled string. The first argument is DMGL_* |
options. The second is the tree to demangle. The third is a guess |
at the length of the demangled string, used to initially allocate |
the return buffer. The fourth is a pointer to a size_t. On |
success, this function returns a buffer allocated by malloc(), and |
sets the size_t pointed to by the fourth argument to the size of |
the allocated buffer (not the length of the returned string). On |
failure, this function returns NULL, and sets the size_t pointed to |
by the fourth argument to 0 for an invalid tree, or to 1 for a |
memory allocation error. */ |
|
extern char * |
cplus_demangle_print (int options, |
const struct demangle_component *tree, |
int estimated_length, |
size_t *p_allocated_size); |
|
/* This function takes a struct demangle_component tree and passes back |
a demangled string in one or more calls to a callback function. |
The first argument is DMGL_* options. The second is the tree to |
demangle. The third is a pointer to a callback function; on each call |
this receives an element of the demangled string, its length, and an |
opaque value. The fourth is the opaque value passed to the callback. |
The callback is called once or more to return the full demangled |
string. The demangled element string is always nul-terminated, though |
its length is also provided for convenience. In contrast to |
cplus_demangle_print(), this function does not allocate heap memory |
to grow output strings (except perhaps where alloca() is implemented |
by malloc()), and so is normally safe for use where the heap has been |
corrupted. On success, this function returns 1; on failure, 0. */ |
|
extern int |
cplus_demangle_print_callback (int options, |
const struct demangle_component *tree, |
demangle_callbackref callback, void *opaque); |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* DEMANGLE_H */ |
/trunk/gnu-dev/or1k-gcc/include/floatformat.h
0,0 → 1,151
/* IEEE floating point support declarations, for GDB, the GNU Debugger. |
Copyright 1991, 1994, 1995, 1997, 2000, 2003, 2005, 2010 |
Free Software Foundation, Inc. |
|
This file is part of GDB. |
|
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 2 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. */ |
|
#if !defined (FLOATFORMAT_H) |
#define FLOATFORMAT_H 1 |
|
#include "ansidecl.h" |
|
/* A floatformat consists of a sign bit, an exponent and a mantissa. Once the |
bytes are concatenated according to the byteorder flag, then each of those |
fields is contiguous. We number the bits with 0 being the most significant |
(i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field |
contains with the *_start and *_len fields. */ |
|
/* What is the order of the bytes? */ |
|
enum floatformat_byteorders { |
/* Standard little endian byte order. |
EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */ |
floatformat_little, |
|
/* Standard big endian byte order. |
EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */ |
floatformat_big, |
|
/* Little endian byte order but big endian word order. |
EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */ |
floatformat_littlebyte_bigword, |
|
/* VAX byte order. Little endian byte order with 16-bit words. The |
following example is an illustration of the byte order only; VAX |
doesn't have a fully IEEE compliant floating-point format. |
EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */ |
floatformat_vax |
}; |
|
enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no }; |
|
struct floatformat |
{ |
enum floatformat_byteorders byteorder; |
unsigned int totalsize; /* Total size of number in bits */ |
|
/* Sign bit is always one bit long. 1 means negative, 0 means positive. */ |
unsigned int sign_start; |
|
unsigned int exp_start; |
unsigned int exp_len; |
/* Bias added to a "true" exponent to form the biased exponent. It |
is intentionally signed as, otherwize, -exp_bias can turn into a |
very large number (e.g., given the exp_bias of 0x3fff and a 64 |
bit long, the equation (long)(1 - exp_bias) evaluates to |
4294950914) instead of -16382). */ |
int exp_bias; |
/* Exponent value which indicates NaN. This is the actual value stored in |
the float, not adjusted by the exp_bias. This usually consists of all |
one bits. */ |
unsigned int exp_nan; |
|
unsigned int man_start; |
unsigned int man_len; |
|
/* Is the integer bit explicit or implicit? */ |
enum floatformat_intbit intbit; |
|
/* Internal name for debugging. */ |
const char *name; |
|
/* Validator method. */ |
int (*is_valid) (const struct floatformat *fmt, const void *from); |
|
/* Is the format actually the sum of two smaller floating point |
formats (IBM long double, as described in |
gcc/config/rs6000/darwin-ldouble-format)? If so, this is the |
smaller format in question, and the fields sign_start through |
intbit describe the first half. If not, this is NULL. */ |
const struct floatformat *split_half; |
}; |
|
/* floatformats for IEEE single and double, big and little endian. */ |
|
extern const struct floatformat floatformat_ieee_half_big; |
extern const struct floatformat floatformat_ieee_half_little; |
extern const struct floatformat floatformat_ieee_single_big; |
extern const struct floatformat floatformat_ieee_single_little; |
extern const struct floatformat floatformat_ieee_double_big; |
extern const struct floatformat floatformat_ieee_double_little; |
|
/* floatformat for ARM IEEE double, little endian bytes and big endian words */ |
|
extern const struct floatformat floatformat_ieee_double_littlebyte_bigword; |
|
/* floatformats for VAX. */ |
|
extern const struct floatformat floatformat_vax_f; |
extern const struct floatformat floatformat_vax_d; |
extern const struct floatformat floatformat_vax_g; |
|
/* floatformats for various extendeds. */ |
|
extern const struct floatformat floatformat_i387_ext; |
extern const struct floatformat floatformat_m68881_ext; |
extern const struct floatformat floatformat_i960_ext; |
extern const struct floatformat floatformat_m88110_ext; |
extern const struct floatformat floatformat_m88110_harris_ext; |
extern const struct floatformat floatformat_arm_ext_big; |
extern const struct floatformat floatformat_arm_ext_littlebyte_bigword; |
/* IA-64 Floating Point register spilt into memory. */ |
extern const struct floatformat floatformat_ia64_spill_big; |
extern const struct floatformat floatformat_ia64_spill_little; |
extern const struct floatformat floatformat_ia64_quad_big; |
extern const struct floatformat floatformat_ia64_quad_little; |
/* IBM long double (double+double). */ |
extern const struct floatformat floatformat_ibm_long_double; |
|
/* Convert from FMT to a double. |
FROM is the address of the extended float. |
Store the double in *TO. */ |
|
extern void |
floatformat_to_double (const struct floatformat *, const void *, double *); |
|
/* The converse: convert the double *FROM to FMT |
and store where TO points. */ |
|
extern void |
floatformat_from_double (const struct floatformat *, const double *, void *); |
|
/* Return non-zero iff the data at FROM is a valid number in format FMT. */ |
|
extern int |
floatformat_is_valid (const struct floatformat *fmt, const void *from); |
|
#endif /* defined (FLOATFORMAT_H) */ |
/trunk/gnu-dev/or1k-gcc/include/fnmatch.h
0,0 → 1,70
/* Copyright 1991, 1992, 1993, 1996 Free Software Foundation, Inc. |
|
NOTE: The canonical source of this file is maintained with the GNU C Library. |
Bugs can be reported to bug-glibc@prep.ai.mit.edu. |
|
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 2, 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, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef _FNMATCH_H |
|
#define _FNMATCH_H 1 |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) |
#undef __P |
#define __P(args) args |
#else /* Not C++ or ANSI C. */ |
#undef __P |
#define __P(args) () |
/* We can get away without defining `const' here only because in this file |
it is used only inside the prototype for `fnmatch', which is elided in |
non-ANSI C where `const' is problematical. */ |
#endif /* C++ or ANSI C. */ |
|
|
/* We #undef these before defining them because some losing systems |
(HP-UX A.08.07 for example) define these in <unistd.h>. */ |
#undef FNM_PATHNAME |
#undef FNM_NOESCAPE |
#undef FNM_PERIOD |
|
/* Bits set in the FLAGS argument to `fnmatch'. */ |
#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ |
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ |
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ |
|
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) |
#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ |
#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ |
#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ |
#endif |
|
/* Value returned by `fnmatch' if STRING does not match PATTERN. */ |
#define FNM_NOMATCH 1 |
|
/* Match STRING against the filename pattern PATTERN, |
returning zero if it matches, FNM_NOMATCH if not. */ |
extern int fnmatch __P ((const char *__pattern, const char *__string, |
int __flags)); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* fnmatch.h */ |
/trunk/gnu-dev/or1k-gcc/include/ansidecl.h
0,0 → 1,434
/* ANSI and traditional C compatability macros |
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 |
Free Software Foundation, Inc. |
This file is part of the GNU C Library. |
|
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 2 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. */ |
|
/* ANSI and traditional C compatibility macros |
|
ANSI C is assumed if __STDC__ is #defined. |
|
Macro ANSI C definition Traditional C definition |
----- ---- - ---------- ----------- - ---------- |
ANSI_PROTOTYPES 1 not defined |
PTR `void *' `char *' |
PTRCONST `void *const' `char *' |
LONG_DOUBLE `long double' `double' |
const not defined `' |
volatile not defined `' |
signed not defined `' |
VA_START(ap, var) va_start(ap, var) va_start(ap) |
|
Note that it is safe to write "void foo();" indicating a function |
with no return value, in all K+R compilers we have been able to test. |
|
For declaring functions with prototypes, we also provide these: |
|
PARAMS ((prototype)) |
-- for functions which take a fixed number of arguments. Use this |
when declaring the function. When defining the function, write a |
K+R style argument list. For example: |
|
char *strcpy PARAMS ((char *dest, char *source)); |
... |
char * |
strcpy (dest, source) |
char *dest; |
char *source; |
{ ... } |
|
|
VPARAMS ((prototype, ...)) |
-- for functions which take a variable number of arguments. Use |
PARAMS to declare the function, VPARAMS to define it. For example: |
|
int printf PARAMS ((const char *format, ...)); |
... |
int |
printf VPARAMS ((const char *format, ...)) |
{ |
... |
} |
|
For writing functions which take variable numbers of arguments, we |
also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These |
hide the differences between K+R <varargs.h> and C89 <stdarg.h> more |
thoroughly than the simple VA_START() macro mentioned above. |
|
VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end. |
Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls |
corresponding to the list of fixed arguments. Then use va_arg |
normally to get the variable arguments, or pass your va_list object |
around. You do not declare the va_list yourself; VA_OPEN does it |
for you. |
|
Here is a complete example: |
|
int |
printf VPARAMS ((const char *format, ...)) |
{ |
int result; |
|
VA_OPEN (ap, format); |
VA_FIXEDARG (ap, const char *, format); |
|
result = vfprintf (stdout, format, ap); |
VA_CLOSE (ap); |
|
return result; |
} |
|
|
You can declare variables either before or after the VA_OPEN, |
VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning |
and end of a block. They must appear at the same nesting level, |
and any variables declared after VA_OPEN go out of scope at |
VA_CLOSE. Unfortunately, with a K+R compiler, that includes the |
argument list. You can have multiple instances of VA_OPEN/VA_CLOSE |
pairs in a single function in case you need to traverse the |
argument list more than once. |
|
For ease of writing code which uses GCC extensions but needs to be |
portable to other compilers, we provide the GCC_VERSION macro that |
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various |
wrappers around __attribute__. Also, __extension__ will be #defined |
to nothing if it doesn't work. See below. |
|
This header also defines a lot of obsolete macros: |
CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID, |
AND, DOTS, NOARGS. Don't use them. */ |
|
#ifndef _ANSIDECL_H |
#define _ANSIDECL_H 1 |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* Every source file includes this file, |
so they will all get the switch for lint. */ |
/* LINTLIBRARY */ |
|
/* Using MACRO(x,y) in cpp #if conditionals does not work with some |
older preprocessors. Thus we can't define something like this: |
|
#define HAVE_GCC_VERSION(MAJOR, MINOR) \ |
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR))) |
|
and then test "#if HAVE_GCC_VERSION(2,7)". |
|
So instead we use the macro below and test it against specific values. */ |
|
/* This macro simplifies testing whether we are using gcc, and if it |
is of a particular minimum version. (Both major & minor numbers are |
significant.) This macro will evaluate to 0 if we are not using |
gcc at all. */ |
#ifndef GCC_VERSION |
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) |
#endif /* GCC_VERSION */ |
|
#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) |
/* All known AIX compilers implement these things (but don't always |
define __STDC__). The RISC/OS MIPS compiler defines these things |
in SVR4 mode, but does not define __STDC__. */ |
/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other |
C++ compilers, does not define __STDC__, though it acts as if this |
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */ |
|
#define ANSI_PROTOTYPES 1 |
#define PTR void * |
#define PTRCONST void *const |
#define LONG_DOUBLE long double |
|
/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in |
a #ifndef. */ |
#ifndef PARAMS |
#define PARAMS(ARGS) ARGS |
#endif |
|
#define VPARAMS(ARGS) ARGS |
#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR) |
|
/* variadic function helper macros */ |
/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's |
use without inhibiting further decls and without declaring an |
actual variable. */ |
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy |
#define VA_CLOSE(AP) } va_end(AP); } |
#define VA_FIXEDARG(AP, T, N) struct Qdmy |
|
#undef const |
#undef volatile |
#undef signed |
|
/* inline requires special treatment; it's in C99, and GCC >=2.7 supports |
it too, but it's not in C89. */ |
#undef inline |
#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) || (defined(__SUNPRO_C) && defined(__C99FEATURES__)) |
/* it's a keyword */ |
#else |
# if GCC_VERSION >= 2007 |
# define inline __inline__ /* __inline__ prevents -pedantic warnings */ |
# else |
# define inline /* nothing */ |
# endif |
#endif |
|
/* These are obsolete. Do not use. */ |
#ifndef IN_GCC |
#define CONST const |
#define VOLATILE volatile |
#define SIGNED signed |
|
#define PROTO(type, name, arglist) type name arglist |
#define EXFUN(name, proto) name proto |
#define DEFUN(name, arglist, args) name(args) |
#define DEFUN_VOID(name) name(void) |
#define AND , |
#define DOTS , ... |
#define NOARGS void |
#endif /* ! IN_GCC */ |
|
#else /* Not ANSI C. */ |
|
#undef ANSI_PROTOTYPES |
#define PTR char * |
#define PTRCONST PTR |
#define LONG_DOUBLE double |
|
#define PARAMS(args) () |
#define VPARAMS(args) (va_alist) va_dcl |
#define VA_START(va_list, var) va_start(va_list) |
|
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy |
#define VA_CLOSE(AP) } va_end(AP); } |
#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE) |
|
/* some systems define these in header files for non-ansi mode */ |
#undef const |
#undef volatile |
#undef signed |
#undef inline |
#define const |
#define volatile |
#define signed |
#define inline |
|
#ifndef IN_GCC |
#define CONST |
#define VOLATILE |
#define SIGNED |
|
#define PROTO(type, name, arglist) type name () |
#define EXFUN(name, proto) name() |
#define DEFUN(name, arglist, args) name arglist args; |
#define DEFUN_VOID(name) name() |
#define AND ; |
#define DOTS |
#define NOARGS |
#endif /* ! IN_GCC */ |
|
#endif /* ANSI C. */ |
|
/* Define macros for some gcc attributes. This permits us to use the |
macros freely, and know that they will come into play for the |
version of gcc in which they are supported. */ |
|
#if (GCC_VERSION < 2007) |
# define __attribute__(x) |
#endif |
|
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */ |
#ifndef ATTRIBUTE_MALLOC |
# if (GCC_VERSION >= 2096) |
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) |
# else |
# define ATTRIBUTE_MALLOC |
# endif /* GNUC >= 2.96 */ |
#endif /* ATTRIBUTE_MALLOC */ |
|
/* Attributes on labels were valid as of gcc 2.93 and g++ 4.5. For |
g++ an attribute on a label must be followed by a semicolon. */ |
#ifndef ATTRIBUTE_UNUSED_LABEL |
# ifndef __cplusplus |
# if GCC_VERSION >= 2093 |
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED |
# else |
# define ATTRIBUTE_UNUSED_LABEL |
# endif |
# else |
# if GCC_VERSION >= 4005 |
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ; |
# else |
# define ATTRIBUTE_UNUSED_LABEL |
# endif |
# endif |
#endif |
|
#ifndef ATTRIBUTE_UNUSED |
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) |
#endif /* ATTRIBUTE_UNUSED */ |
|
/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the |
identifier name. */ |
#if ! defined(__cplusplus) || (GCC_VERSION >= 3004) |
# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED |
#else /* !__cplusplus || GNUC >= 3.4 */ |
# define ARG_UNUSED(NAME) NAME |
#endif /* !__cplusplus || GNUC >= 3.4 */ |
|
#ifndef ATTRIBUTE_NORETURN |
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) |
#endif /* ATTRIBUTE_NORETURN */ |
|
/* Attribute `nonnull' was valid as of gcc 3.3. */ |
#ifndef ATTRIBUTE_NONNULL |
# if (GCC_VERSION >= 3003) |
# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) |
# else |
# define ATTRIBUTE_NONNULL(m) |
# endif /* GNUC >= 3.3 */ |
#endif /* ATTRIBUTE_NONNULL */ |
|
/* Attribute `pure' was valid as of gcc 3.0. */ |
#ifndef ATTRIBUTE_PURE |
# if (GCC_VERSION >= 3000) |
# define ATTRIBUTE_PURE __attribute__ ((__pure__)) |
# else |
# define ATTRIBUTE_PURE |
# endif /* GNUC >= 3.0 */ |
#endif /* ATTRIBUTE_PURE */ |
|
/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL. |
This was the case for the `printf' format attribute by itself |
before GCC 3.3, but as of 3.3 we need to add the `nonnull' |
attribute to retain this behavior. */ |
#ifndef ATTRIBUTE_PRINTF |
#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) |
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) |
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) |
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) |
#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) |
#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) |
#endif /* ATTRIBUTE_PRINTF */ |
|
/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on |
a function pointer. Format attributes were allowed on function |
pointers as of gcc 3.1. */ |
#ifndef ATTRIBUTE_FPTR_PRINTF |
# if (GCC_VERSION >= 3001) |
# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n) |
# else |
# define ATTRIBUTE_FPTR_PRINTF(m, n) |
# endif /* GNUC >= 3.1 */ |
# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2) |
# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3) |
# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4) |
# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5) |
# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6) |
#endif /* ATTRIBUTE_FPTR_PRINTF */ |
|
/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A |
NULL format specifier was allowed as of gcc 3.3. */ |
#ifndef ATTRIBUTE_NULL_PRINTF |
# if (GCC_VERSION >= 3003) |
# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) |
# else |
# define ATTRIBUTE_NULL_PRINTF(m, n) |
# endif /* GNUC >= 3.3 */ |
# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2) |
# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3) |
# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4) |
# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5) |
# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6) |
#endif /* ATTRIBUTE_NULL_PRINTF */ |
|
/* Attribute `sentinel' was valid as of gcc 3.5. */ |
#ifndef ATTRIBUTE_SENTINEL |
# if (GCC_VERSION >= 3005) |
# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__)) |
# else |
# define ATTRIBUTE_SENTINEL |
# endif /* GNUC >= 3.5 */ |
#endif /* ATTRIBUTE_SENTINEL */ |
|
|
#ifndef ATTRIBUTE_ALIGNED_ALIGNOF |
# if (GCC_VERSION >= 3000) |
# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m)))) |
# else |
# define ATTRIBUTE_ALIGNED_ALIGNOF(m) |
# endif /* GNUC >= 3.0 */ |
#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */ |
|
/* Useful for structures whose layout must much some binary specification |
regardless of the alignment and padding qualities of the compiler. */ |
#ifndef ATTRIBUTE_PACKED |
# define ATTRIBUTE_PACKED __attribute__ ((packed)) |
#endif |
|
/* Attribute `hot' and `cold' was valid as of gcc 4.3. */ |
#ifndef ATTRIBUTE_COLD |
# if (GCC_VERSION >= 4003) |
# define ATTRIBUTE_COLD __attribute__ ((__cold__)) |
# else |
# define ATTRIBUTE_COLD |
# endif /* GNUC >= 4.3 */ |
#endif /* ATTRIBUTE_COLD */ |
#ifndef ATTRIBUTE_HOT |
# if (GCC_VERSION >= 4003) |
# define ATTRIBUTE_HOT __attribute__ ((__hot__)) |
# else |
# define ATTRIBUTE_HOT |
# endif /* GNUC >= 4.3 */ |
#endif /* ATTRIBUTE_HOT */ |
|
/* We use __extension__ in some places to suppress -pedantic warnings |
about GCC extensions. This feature didn't work properly before |
gcc 2.8. */ |
#if GCC_VERSION < 2008 |
#define __extension__ |
#endif |
|
/* This is used to declare a const variable which should be visible |
outside of the current compilation unit. Use it as |
EXPORTED_CONST int i = 1; |
This is because the semantics of const are different in C and C++. |
"extern const" is permitted in C but it looks strange, and gcc |
warns about it when -Wc++-compat is not used. */ |
#ifdef __cplusplus |
#define EXPORTED_CONST extern const |
#else |
#define EXPORTED_CONST const |
#endif |
|
/* Be conservative and only use enum bitfields with C++ or GCC. |
FIXME: provide a complete autoconf test for buggy enum bitfields. */ |
|
#ifdef __cplusplus |
#define ENUM_BITFIELD(TYPE) enum TYPE |
#elif (GCC_VERSION > 2000) |
#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE |
#else |
#define ENUM_BITFIELD(TYPE) unsigned int |
#endif |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif /* ansidecl.h */ |
/trunk/gnu-dev/or1k-gcc/include/COPYING
0,0 → 1,340
GNU GENERAL PUBLIC LICENSE |
Version 2, June 1991 |
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
|
Preamble |
|
The licenses for most software are designed to take away your |
freedom to share and change it. By contrast, the GNU General Public |
License is intended to guarantee your freedom to share and change free |
software--to make sure the software is free for all its users. This |
General Public License applies to most of the Free Software |
Foundation's software and to any other program whose authors commit to |
using it. (Some other Free Software Foundation software is covered by |
the GNU Library General Public License instead.) You can apply it to |
your programs, too. |
|
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
this service if you wish), that you receive source code or can get it |
if you want it, that you can change the software or use pieces of it |
in new free programs; and that you know you can do these things. |
|
To protect your rights, we need to make restrictions that forbid |
anyone to deny you these rights or to ask you to surrender the rights. |
These restrictions translate to certain responsibilities for you if you |
distribute copies of the software, or if you modify it. |
|
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must give the recipients all the rights that |
you have. You must make sure that they, too, receive or can get the |
source code. And you must show them these terms so they know their |
rights. |
|
We protect your rights with two steps: (1) copyright the software, and |
(2) offer you this license which gives you legal permission to copy, |
distribute and/or modify the software. |
|
Also, for each author's protection and ours, we want to make certain |
that everyone understands that there is no warranty for this free |
software. If the software is modified by someone else and passed on, we |
want its recipients to know that what they have is not the original, so |
that any problems introduced by others will not reflect on the original |
authors' reputations. |
|
Finally, any free program is threatened constantly by software |
patents. We wish to avoid the danger that redistributors of a free |
program will individually obtain patent licenses, in effect making the |
program proprietary. To prevent this, we have made it clear that any |
patent must be licensed for everyone's free use or not licensed at all. |
|
The precise terms and conditions for copying, distribution and |
modification follow. |
|
GNU GENERAL PUBLIC LICENSE |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
0. This License applies to any program or other work which contains |
a notice placed by the copyright holder saying it may be distributed |
under the terms of this General Public License. The "Program", below, |
refers to any such program or work, and a "work based on the Program" |
means either the Program or any derivative work under copyright law: |
that is to say, a work containing the Program or a portion of it, |
either verbatim or with modifications and/or translated into another |
language. (Hereinafter, translation is included without limitation in |
the term "modification".) Each licensee is addressed as "you". |
|
Activities other than copying, distribution and modification are not |
covered by this License; they are outside its scope. The act of |
running the Program is not restricted, and the output from the Program |
is covered only if its contents constitute a work based on the |
Program (independent of having been made by running the Program). |
Whether that is true depends on what the Program does. |
|
1. You may copy and distribute verbatim copies of the Program's |
source code as you receive it, in any medium, provided that you |
conspicuously and appropriately publish on each copy an appropriate |
copyright notice and disclaimer of warranty; keep intact all the |
notices that refer to this License and to the absence of any warranty; |
and give any other recipients of the Program a copy of this License |
along with the Program. |
|
You may charge a fee for the physical act of transferring a copy, and |
you may at your option offer warranty protection in exchange for a fee. |
|
2. You may modify your copy or copies of the Program or any portion |
of it, thus forming a work based on the Program, and copy and |
distribute such modifications or work under the terms of Section 1 |
above, provided that you also meet all of these conditions: |
|
a) You must cause the modified files to carry prominent notices |
stating that you changed the files and the date of any change. |
|
b) You must cause any work that you distribute or publish, that in |
whole or in part contains or is derived from the Program or any |
part thereof, to be licensed as a whole at no charge to all third |
parties under the terms of this License. |
|
c) If the modified program normally reads commands interactively |
when run, you must cause it, when started running for such |
interactive use in the most ordinary way, to print or display an |
announcement including an appropriate copyright notice and a |
notice that there is no warranty (or else, saying that you provide |
a warranty) and that users may redistribute the program under |
these conditions, and telling the user how to view a copy of this |
License. (Exception: if the Program itself is interactive but |
does not normally print such an announcement, your work based on |
the Program is not required to print an announcement.) |
|
These requirements apply to the modified work as a whole. If |
identifiable sections of that work are not derived from the Program, |
and can be reasonably considered independent and separate works in |
themselves, then this License, and its terms, do not apply to those |
sections when you distribute them as separate works. But when you |
distribute the same sections as part of a whole which is a work based |
on the Program, the distribution of the whole must be on the terms of |
this License, whose permissions for other licensees extend to the |
entire whole, and thus to each and every part regardless of who wrote it. |
|
Thus, it is not the intent of this section to claim rights or contest |
your rights to work written entirely by you; rather, the intent is to |
exercise the right to control the distribution of derivative or |
collective works based on the Program. |
|
In addition, mere aggregation of another work not based on the Program |
with the Program (or with a work based on the Program) on a volume of |
a storage or distribution medium does not bring the other work under |
the scope of this License. |
|
3. You may copy and distribute the Program (or a work based on it, |
under Section 2) in object code or executable form under the terms of |
Sections 1 and 2 above provided that you also do one of the following: |
|
a) Accompany it with the complete corresponding machine-readable |
source code, which must be distributed under the terms of Sections |
1 and 2 above on a medium customarily used for software interchange; or, |
|
b) Accompany it with a written offer, valid for at least three |
years, to give any third party, for a charge no more than your |
cost of physically performing source distribution, a complete |
machine-readable copy of the corresponding source code, to be |
distributed under the terms of Sections 1 and 2 above on a medium |
customarily used for software interchange; or, |
|
c) Accompany it with the information you received as to the offer |
to distribute corresponding source code. (This alternative is |
allowed only for noncommercial distribution and only if you |
received the program in object code or executable form with such |
an offer, in accord with Subsection b above.) |
|
The source code for a work means the preferred form of the work for |
making modifications to it. For an executable work, complete source |
code means all the source code for all modules it contains, plus any |
associated interface definition files, plus the scripts used to |
control compilation and installation of the executable. However, as a |
special exception, the source code distributed need not include |
anything that is normally distributed (in either source or binary |
form) with the major components (compiler, kernel, and so on) of the |
operating system on which the executable runs, unless that component |
itself accompanies the executable. |
|
If distribution of executable or object code is made by offering |
access to copy from a designated place, then offering equivalent |
access to copy the source code from the same place counts as |
distribution of the source code, even though third parties are not |
compelled to copy the source along with the object code. |
|
4. You may not copy, modify, sublicense, or distribute the Program |
except as expressly provided under this License. Any attempt |
otherwise to copy, modify, sublicense or distribute the Program is |
void, and will automatically terminate your rights under this License. |
However, parties who have received copies, or rights, from you under |
this License will not have their licenses terminated so long as such |
parties remain in full compliance. |
|
5. You are not required to accept this License, since you have not |
signed it. However, nothing else grants you permission to modify or |
distribute the Program or its derivative works. These actions are |
prohibited by law if you do not accept this License. Therefore, by |
modifying or distributing the Program (or any work based on the |
Program), you indicate your acceptance of this License to do so, and |
all its terms and conditions for copying, distributing or modifying |
the Program or works based on it. |
|
6. Each time you redistribute the Program (or any work based on the |
Program), the recipient automatically receives a license from the |
original licensor to copy, distribute or modify the Program subject to |
these terms and conditions. You may not impose any further |
restrictions on the recipients' exercise of the rights granted herein. |
You are not responsible for enforcing compliance by third parties to |
this License. |
|
7. If, as a consequence of a court judgment or allegation of patent |
infringement or for any other reason (not limited to patent issues), |
conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot |
distribute so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you |
may not distribute the Program at all. For example, if a patent |
license would not permit royalty-free redistribution of the Program by |
all those who receive copies directly or indirectly through you, then |
the only way you could satisfy both it and this License would be to |
refrain entirely from distribution of the Program. |
|
If any portion of this section is held invalid or unenforceable under |
any particular circumstance, the balance of the section is intended to |
apply and the section as a whole is intended to apply in other |
circumstances. |
|
It is not the purpose of this section to induce you to infringe any |
patents or other property right claims or to contest validity of any |
such claims; this section has the sole purpose of protecting the |
integrity of the free software distribution system, which is |
implemented by public license practices. Many people have made |
generous contributions to the wide range of software distributed |
through that system in reliance on consistent application of that |
system; it is up to the author/donor to decide if he or she is willing |
to distribute software through any other system and a licensee cannot |
impose that choice. |
|
This section is intended to make thoroughly clear what is believed to |
be a consequence of the rest of this License. |
|
8. If the distribution and/or use of the Program is restricted in |
certain countries either by patents or by copyrighted interfaces, the |
original copyright holder who places the Program under this License |
may add an explicit geographical distribution limitation excluding |
those countries, so that distribution is permitted only in or among |
countries not thus excluded. In such case, this License incorporates |
the limitation as if written in the body of this License. |
|
9. The Free Software Foundation may publish revised and/or new versions |
of the General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
|
Each version is given a distinguishing version number. If the Program |
specifies a version number of this License which applies to it and "any |
later version", you have the option of following the terms and conditions |
either of that version or of any later version published by the Free |
Software Foundation. If the Program does not specify a version number of |
this License, you may choose any version ever published by the Free Software |
Foundation. |
|
10. If you wish to incorporate parts of the Program into other free |
programs whose distribution conditions are different, write to the author |
to ask for permission. For software which is copyrighted by the Free |
Software Foundation, write to the Free Software Foundation; we sometimes |
make exceptions for this. Our decision will be guided by the two goals |
of preserving the free status of all derivatives of our free software and |
of promoting the sharing and reuse of software generally. |
|
NO WARRANTY |
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
REPAIR OR CORRECTION. |
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGES. |
|
END OF TERMS AND CONDITIONS |
|
How to Apply These Terms to Your New Programs |
|
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
|
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
convey the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
|
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) <year> <name of author> |
|
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 2 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 |
|
|
Also add information on how to contact you by electronic and paper mail. |
|
If the program is interactive, make it output a short notice like this |
when it starts in an interactive mode: |
|
Gnomovision version 69, Copyright (C) year name of author |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
|
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, the commands you use may |
be called something other than `show w' and `show c'; they could even be |
mouse-clicks or menu items--whatever suits your program. |
|
You should also get your employer (if you work as a programmer) or your |
school, if any, to sign a "copyright disclaimer" for the program, if |
necessary. Here is a sample; alter the names: |
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|
<signature of Ty Coon>, 1 April 1989 |
Ty Coon, President of Vice |
|
This General Public License does not permit incorporating your program into |
proprietary programs. If your program is a subroutine library, you may |
consider it more useful to permit linking proprietary applications with the |
library. If this is what you want to do, use the GNU Library General |
Public License instead of this License. |
/trunk/gnu-dev/or1k-gcc/include/xregex2.h
0,0 → 1,565
/* Definitions for data structures and routines for the regular |
expression library, version 0.12. |
|
Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997, |
1998, 2000, 2005 Free Software Foundation, Inc. |
|
This file is part of the GNU C Library. Its master source is NOT part of |
the C library, however. The master source lives in /gd/gnu/lib. |
|
The GNU C Library is free software; you can redistribute it and/or |
modify it under the terms of the GNU Lesser General Public |
License as published by the Free Software Foundation; either |
version 2.1 of the License, or (at your option) any later version. |
|
The GNU C Library 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 |
Lesser General Public License for more details. |
|
You should have received a copy of the GNU Lesser General Public |
License along with the GNU C Library; if not, write to the Free |
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
02110-1301 USA. */ |
|
#ifndef _REGEX_H |
#define _REGEX_H 1 |
|
/* Allow the use in C++ code. */ |
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* POSIX says that <sys/types.h> must be included (by the caller) before |
<regex.h>. */ |
|
#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS |
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it |
should be there. */ |
# include <stddef.h> |
#endif |
|
/* The following two types have to be signed and unsigned integer type |
wide enough to hold a value of a pointer. For most ANSI compilers |
ptrdiff_t and size_t should be likely OK. Still size of these two |
types is 2 for Microsoft C. Ugh... */ |
typedef long int s_reg_t; |
typedef unsigned long int active_reg_t; |
|
/* The following bits are used to determine the regexp syntax we |
recognize. The set/not-set meanings are chosen so that Emacs syntax |
remains the value 0. The bits are given in alphabetical order, and |
the definitions shifted by one from the previous bit; thus, when we |
add or remove a bit, only one other definition need change. */ |
typedef unsigned long int reg_syntax_t; |
|
/* If this bit is not set, then \ inside a bracket expression is literal. |
If set, then such a \ quotes the following character. */ |
#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) |
|
/* If this bit is not set, then + and ? are operators, and \+ and \? are |
literals. |
If set, then \+ and \? are operators and + and ? are literals. */ |
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) |
|
/* If this bit is set, then character classes are supported. They are: |
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], |
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. |
If not set, then character classes are not supported. */ |
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) |
|
/* If this bit is set, then ^ and $ are always anchors (outside bracket |
expressions, of course). |
If this bit is not set, then it depends: |
^ is an anchor if it is at the beginning of a regular |
expression or after an open-group or an alternation operator; |
$ is an anchor if it is at the end of a regular expression, or |
before a close-group or an alternation operator. |
|
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because |
POSIX draft 11.2 says that * etc. in leading positions is undefined. |
We already implemented a previous draft which made those constructs |
invalid, though, so we haven't changed the code back. */ |
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) |
|
/* If this bit is set, then special characters are always special |
regardless of where they are in the pattern. |
If this bit is not set, then special characters are special only in |
some contexts; otherwise they are ordinary. Specifically, |
* + ? and intervals are only special when not after the beginning, |
open-group, or alternation operator. */ |
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) |
|
/* If this bit is set, then *, +, ?, and { cannot be first in an re or |
immediately after an alternation or begin-group operator. */ |
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) |
|
/* If this bit is set, then . matches newline. |
If not set, then it doesn't. */ |
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) |
|
/* If this bit is set, then . doesn't match NUL. |
If not set, then it does. */ |
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) |
|
/* If this bit is set, nonmatching lists [^...] do not match newline. |
If not set, they do. */ |
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) |
|
/* If this bit is set, either \{...\} or {...} defines an |
interval, depending on RE_NO_BK_BRACES. |
If not set, \{, \}, {, and } are literals. */ |
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) |
|
/* If this bit is set, +, ? and | aren't recognized as operators. |
If not set, they are. */ |
#define RE_LIMITED_OPS (RE_INTERVALS << 1) |
|
/* If this bit is set, newline is an alternation operator. |
If not set, newline is literal. */ |
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) |
|
/* If this bit is set, then `{...}' defines an interval, and \{ and \} |
are literals. |
If not set, then `\{...\}' defines an interval. */ |
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) |
|
/* If this bit is set, (...) defines a group, and \( and \) are literals. |
If not set, \(...\) defines a group, and ( and ) are literals. */ |
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) |
|
/* If this bit is set, then \<digit> matches <digit>. |
If not set, then \<digit> is a back-reference. */ |
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) |
|
/* If this bit is set, then | is an alternation operator, and \| is literal. |
If not set, then \| is an alternation operator, and | is literal. */ |
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) |
|
/* If this bit is set, then an ending range point collating higher |
than the starting range point, as in [z-a], is invalid. |
If not set, then when ending range point collates higher than the |
starting range point, the range is ignored. */ |
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) |
|
/* If this bit is set, then an unmatched ) is ordinary. |
If not set, then an unmatched ) is invalid. */ |
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) |
|
/* If this bit is set, succeed as soon as we match the whole pattern, |
without further backtracking. */ |
#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) |
|
/* If this bit is set, do not process the GNU regex operators. |
If not set, then the GNU regex operators are recognized. */ |
#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) |
|
/* If this bit is set, turn on internal regex debugging. |
If not set, and debugging was on, turn it off. |
This only works if regex.c is compiled -DDEBUG. |
We define this bit always, so that all that's needed to turn on |
debugging is to recompile regex.c; the calling code can always have |
this bit set, and it won't affect anything in the normal case. */ |
#define RE_DEBUG (RE_NO_GNU_OPS << 1) |
|
/* If this bit is set, a syntactically invalid interval is treated as |
a string of ordinary characters. For example, the ERE 'a{1' is |
treated as 'a\{1'. */ |
#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) |
|
/* This global variable defines the particular regexp syntax to use (for |
some interfaces). When a regexp is compiled, the syntax used is |
stored in the pattern buffer, so changing this does not affect |
already-compiled regexps. */ |
extern reg_syntax_t re_syntax_options; |
|
/* Define combinations of the above bits for the standard possibilities. |
(The [[[ comments delimit what gets put into the Texinfo file, so |
don't delete them!) */ |
/* [[[begin syntaxes]]] */ |
#define RE_SYNTAX_EMACS 0 |
|
#define RE_SYNTAX_AWK \ |
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ |
| RE_NO_BK_PARENS | RE_NO_BK_REFS \ |
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ |
| RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ |
| RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) |
|
#define RE_SYNTAX_GNU_AWK \ |
((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ |
& ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS)) |
|
#define RE_SYNTAX_POSIX_AWK \ |
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ |
| RE_INTERVALS | RE_NO_GNU_OPS) |
|
#define RE_SYNTAX_GREP \ |
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \ |
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ |
| RE_NEWLINE_ALT) |
|
#define RE_SYNTAX_EGREP \ |
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ |
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ |
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \ |
| RE_NO_BK_VBAR) |
|
#define RE_SYNTAX_POSIX_EGREP \ |
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ |
| RE_INVALID_INTERVAL_ORD) |
|
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ |
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC |
|
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC |
|
/* Syntax bits common to both basic and extended POSIX regex syntax. */ |
#define _RE_SYNTAX_POSIX_COMMON \ |
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ |
| RE_INTERVALS | RE_NO_EMPTY_RANGES) |
|
#define RE_SYNTAX_POSIX_BASIC \ |
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) |
|
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes |
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this |
isn't minimal, since other operators, such as \`, aren't disabled. */ |
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \ |
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) |
|
#define RE_SYNTAX_POSIX_EXTENDED \ |
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ |
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ |
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \ |
| RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) |
|
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is |
removed and RE_NO_BK_REFS is added. */ |
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ |
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ |
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ |
| RE_NO_BK_PARENS | RE_NO_BK_REFS \ |
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) |
/* [[[end syntaxes]]] */ |
|
/* Maximum number of duplicates an interval can allow. Some systems |
(erroneously) define this in other header files, but we want our |
value, so remove any previous define. */ |
#ifdef RE_DUP_MAX |
# undef RE_DUP_MAX |
#endif |
/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ |
#define RE_DUP_MAX (0x7fff) |
|
|
/* POSIX `cflags' bits (i.e., information for `regcomp'). */ |
|
/* If this bit is set, then use extended regular expression syntax. |
If not set, then use basic regular expression syntax. */ |
#define REG_EXTENDED 1 |
|
/* If this bit is set, then ignore case when matching. |
If not set, then case is significant. */ |
#define REG_ICASE (REG_EXTENDED << 1) |
|
/* If this bit is set, then anchors do not match at newline |
characters in the string. |
If not set, then anchors do match at newlines. */ |
#define REG_NEWLINE (REG_ICASE << 1) |
|
/* If this bit is set, then report only success or fail in regexec. |
If not set, then returns differ between not matching and errors. */ |
#define REG_NOSUB (REG_NEWLINE << 1) |
|
|
/* POSIX `eflags' bits (i.e., information for regexec). */ |
|
/* If this bit is set, then the beginning-of-line operator doesn't match |
the beginning of the string (presumably because it's not the |
beginning of a line). |
If not set, then the beginning-of-line operator does match the |
beginning of the string. */ |
#define REG_NOTBOL 1 |
|
/* Like REG_NOTBOL, except for the end-of-line. */ |
#define REG_NOTEOL (1 << 1) |
|
|
/* If any error codes are removed, changed, or added, update the |
`re_error_msg' table in regex.c. */ |
typedef enum |
{ |
#ifdef _XOPEN_SOURCE |
REG_ENOSYS = -1, /* This will never happen for this implementation. */ |
#endif |
|
REG_NOERROR = 0, /* Success. */ |
REG_NOMATCH, /* Didn't find a match (for regexec). */ |
|
/* POSIX regcomp return error codes. (In the order listed in the |
standard.) */ |
REG_BADPAT, /* Invalid pattern. */ |
REG_ECOLLATE, /* Not implemented. */ |
REG_ECTYPE, /* Invalid character class name. */ |
REG_EESCAPE, /* Trailing backslash. */ |
REG_ESUBREG, /* Invalid back reference. */ |
REG_EBRACK, /* Unmatched left bracket. */ |
REG_EPAREN, /* Parenthesis imbalance. */ |
REG_EBRACE, /* Unmatched \{. */ |
REG_BADBR, /* Invalid contents of \{\}. */ |
REG_ERANGE, /* Invalid range end. */ |
REG_ESPACE, /* Ran out of memory. */ |
REG_BADRPT, /* No preceding re for repetition op. */ |
|
/* Error codes we've added. */ |
REG_EEND, /* Premature end. */ |
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ |
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ |
} reg_errcode_t; |
|
/* This data structure represents a compiled pattern. Before calling |
the pattern compiler, the fields `buffer', `allocated', `fastmap', |
`translate', and `no_sub' can be set. After the pattern has been |
compiled, the `re_nsub' field is available. All other fields are |
private to the regex routines. */ |
|
#ifndef RE_TRANSLATE_TYPE |
# define RE_TRANSLATE_TYPE char * |
#endif |
|
struct re_pattern_buffer |
{ |
/* [[[begin pattern_buffer]]] */ |
/* Space that holds the compiled pattern. It is declared as |
`unsigned char *' because its elements are |
sometimes used as array indexes. */ |
unsigned char *buffer; |
|
/* Number of bytes to which `buffer' points. */ |
unsigned long int allocated; |
|
/* Number of bytes actually used in `buffer'. */ |
unsigned long int used; |
|
/* Syntax setting with which the pattern was compiled. */ |
reg_syntax_t syntax; |
|
/* Pointer to a fastmap, if any, otherwise zero. re_search uses |
the fastmap, if there is one, to skip over impossible |
starting points for matches. */ |
char *fastmap; |
|
/* Either a translate table to apply to all characters before |
comparing them, or zero for no translation. The translation |
is applied to a pattern when it is compiled and to a string |
when it is matched. */ |
RE_TRANSLATE_TYPE translate; |
|
/* Number of subexpressions found by the compiler. */ |
size_t re_nsub; |
|
/* Zero if this pattern cannot match the empty string, one else. |
Well, in truth it's used only in `re_search_2', to see |
whether or not we should use the fastmap, so we don't set |
this absolutely perfectly; see `re_compile_fastmap' (the |
`duplicate' case). */ |
unsigned can_be_null : 1; |
|
/* If REGS_UNALLOCATED, allocate space in the `regs' structure |
for `max (RE_NREGS, re_nsub + 1)' groups. |
If REGS_REALLOCATE, reallocate space if necessary. |
If REGS_FIXED, use what's there. */ |
#define REGS_UNALLOCATED 0 |
#define REGS_REALLOCATE 1 |
#define REGS_FIXED 2 |
unsigned regs_allocated : 2; |
|
/* Set to zero when `regex_compile' compiles a pattern; set to one |
by `re_compile_fastmap' if it updates the fastmap. */ |
unsigned fastmap_accurate : 1; |
|
/* If set, `re_match_2' does not return information about |
subexpressions. */ |
unsigned no_sub : 1; |
|
/* If set, a beginning-of-line anchor doesn't match at the |
beginning of the string. */ |
unsigned not_bol : 1; |
|
/* Similarly for an end-of-line anchor. */ |
unsigned not_eol : 1; |
|
/* If true, an anchor at a newline matches. */ |
unsigned newline_anchor : 1; |
|
/* [[[end pattern_buffer]]] */ |
}; |
|
typedef struct re_pattern_buffer regex_t; |
|
/* Type for byte offsets within the string. POSIX mandates this. */ |
typedef int regoff_t; |
|
|
/* This is the structure we store register match data in. See |
regex.texinfo for a full description of what registers match. */ |
struct re_registers |
{ |
unsigned num_regs; |
regoff_t *start; |
regoff_t *end; |
}; |
|
|
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, |
`re_match_2' returns information about at least this many registers |
the first time a `regs' structure is passed. */ |
#ifndef RE_NREGS |
# define RE_NREGS 30 |
#endif |
|
|
/* POSIX specification for registers. Aside from the different names than |
`re_registers', POSIX uses an array of structures, instead of a |
structure of arrays. */ |
typedef struct |
{ |
regoff_t rm_so; /* Byte offset from string's start to substring's start. */ |
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ |
} regmatch_t; |
|
/* Declarations for routines. */ |
|
/* To avoid duplicating every routine declaration -- once with a |
prototype (if we are ANSI), and once without (if we aren't) -- we |
use the following macro to declare argument types. This |
unfortunately clutters up the declarations a bit, but I think it's |
worth it. */ |
|
/* Sets the current default syntax to SYNTAX, and return the old syntax. |
You can also simply assign to the `re_syntax_options' variable. */ |
extern reg_syntax_t re_set_syntax (reg_syntax_t syntax); |
|
/* Compile the regular expression PATTERN, with length LENGTH |
and syntax given by the global `re_syntax_options', into the buffer |
BUFFER. Return NULL if successful, and an error string if not. */ |
extern const char *re_compile_pattern (const char *pattern, size_t length, |
struct re_pattern_buffer *buffer); |
|
|
/* Compile a fastmap for the compiled pattern in BUFFER; used to |
accelerate searches. Return 0 if successful and -2 if was an |
internal error. */ |
extern int re_compile_fastmap (struct re_pattern_buffer *buffer); |
|
|
/* Search in the string STRING (with length LENGTH) for the pattern |
compiled into BUFFER. Start searching at position START, for RANGE |
characters. Return the starting position of the match, -1 for no |
match, or -2 for an internal error. Also return register |
information in REGS (if REGS and BUFFER->no_sub are nonzero). */ |
extern int re_search (struct re_pattern_buffer *buffer, const char *string, |
int length, int start, int range, |
struct re_registers *regs); |
|
|
/* Like `re_search', but search in the concatenation of STRING1 and |
STRING2. Also, stop searching at index START + STOP. */ |
extern int re_search_2 (struct re_pattern_buffer *buffer, const char *string1, |
int length1, const char *string2, int length2, |
int start, int range, struct re_registers *regs, |
int stop); |
|
|
/* Like `re_search', but return how many characters in STRING the regexp |
in BUFFER matched, starting at position START. */ |
extern int re_match (struct re_pattern_buffer *buffer, const char *string, |
int length, int start, struct re_registers *regs); |
|
|
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */ |
extern int re_match_2 (struct re_pattern_buffer *buffer, const char *string1, |
int length1, const char *string2, int length2, |
int start, struct re_registers *regs, int stop); |
|
|
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and |
ENDS. Subsequent matches using BUFFER and REGS will use this memory |
for recording register information. STARTS and ENDS must be |
allocated with malloc, and must each be at least `NUM_REGS * sizeof |
(regoff_t)' bytes long. |
|
If NUM_REGS == 0, then subsequent matches should allocate their own |
register data. |
|
Unless this function is called, the first search or match using |
PATTERN_BUFFER will allocate its own register data, without |
freeing the old data. */ |
extern void re_set_registers (struct re_pattern_buffer *buffer, |
struct re_registers *regs, |
unsigned num_regs, regoff_t *starts, |
regoff_t *ends); |
|
#if defined _REGEX_RE_COMP || defined _LIBC |
# ifndef _CRAY |
/* 4.2 bsd compatibility. */ |
extern char *re_comp (const char *); |
extern int re_exec (const char *); |
# endif |
#endif |
|
/* GCC 2.95 and later have "__restrict"; C99 compilers have |
"restrict", and "configure" may have defined "restrict". */ |
#ifndef __restrict |
# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) |
# if defined restrict || 199901L <= __STDC_VERSION__ |
# define __restrict restrict |
# else |
# define __restrict |
# endif |
# endif |
#endif |
|
/* GCC 3.1 and later support declaring arrays as non-overlapping |
using the syntax array_name[restrict] */ |
#ifndef __restrict_arr |
# if ! (3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) || defined (__GNUG__) |
# define __restrict_arr |
# else |
# define __restrict_arr __restrict |
# endif |
#endif |
|
/* POSIX compatibility. */ |
extern int regcomp (regex_t *__restrict __preg, |
const char *__restrict __pattern, |
int __cflags); |
|
#if (__GNUC__) |
__extension__ |
#endif |
extern int regexec (const regex_t *__restrict __preg, |
const char *__restrict __string, size_t __nmatch, |
regmatch_t __pmatch[__restrict_arr], |
int __eflags); |
|
extern size_t regerror (int __errcode, const regex_t *__preg, |
char *__errbuf, size_t __errbuf_size); |
|
extern void regfree (regex_t *__preg); |
|
|
#ifdef __cplusplus |
} |
#endif /* C++ */ |
|
#endif /* regex.h */ |
|
/* |
Local variables: |
make-backup-files: t |
version-control: t |
trim-versions-without-asking: nil |
End: |
*/ |
/trunk/gnu-dev/or1k-gcc/include/libiberty.h
0,0 → 1,686
/* Function declarations for libiberty. |
|
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
|
Note - certain prototypes declared in this header file are for |
functions whoes implementation copyright does not belong to the |
FSF. Those prototypes are present in this file for reference |
purposes only and their presence in this file should not construed |
as an indication of ownership by the FSF of the implementation of |
those functions in any way or form whatsoever. |
|
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 2, 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. |
|
Written by Cygnus Support, 1994. |
|
The libiberty library provides a number of functions which are |
missing on some operating systems. We do not declare those here, |
to avoid conflicts with the system header files on operating |
systems that do support those functions. In this file we only |
declare those functions which are specific to libiberty. */ |
|
#ifndef LIBIBERTY_H |
#define LIBIBERTY_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include "ansidecl.h" |
|
/* Get a definition for size_t. */ |
#include <stddef.h> |
/* Get a definition for va_list. */ |
#include <stdarg.h> |
|
#include <stdio.h> |
|
/* If the OS supports it, ensure that the supplied stream is setup to |
avoid any multi-threaded locking. Otherwise leave the FILE pointer |
unchanged. If the stream is NULL do nothing. */ |
|
extern void unlock_stream (FILE *); |
|
/* If the OS supports it, ensure that the standard I/O streams, stdin, |
stdout and stderr are setup to avoid any multi-threaded locking. |
Otherwise do nothing. */ |
|
extern void unlock_std_streams (void); |
|
/* Open and return a FILE pointer. If the OS supports it, ensure that |
the stream is setup to avoid any multi-threaded locking. Otherwise |
return the FILE pointer unchanged. */ |
|
extern FILE *fopen_unlocked (const char *, const char *); |
extern FILE *fdopen_unlocked (int, const char *); |
extern FILE *freopen_unlocked (const char *, const char *, FILE *); |
|
/* Build an argument vector from a string. Allocates memory using |
malloc. Use freeargv to free the vector. */ |
|
extern char **buildargv (const char *) ATTRIBUTE_MALLOC; |
|
/* Free a vector returned by buildargv. */ |
|
extern void freeargv (char **); |
|
/* Duplicate an argument vector. Allocates memory using malloc. Use |
freeargv to free the vector. */ |
|
extern char **dupargv (char **) ATTRIBUTE_MALLOC; |
|
/* Expand "@file" arguments in argv. */ |
|
extern void expandargv PARAMS ((int *, char ***)); |
|
/* Write argv to an @-file, inserting necessary quoting. */ |
|
extern int writeargv PARAMS ((char **, FILE *)); |
|
/* Return the number of elements in argv. */ |
|
extern int countargv (char**); |
|
/* Return the last component of a path name. Note that we can't use a |
prototype here because the parameter is declared inconsistently |
across different systems, sometimes as "char *" and sometimes as |
"const char *" */ |
|
/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is |
undefined, we haven't run the autoconf check so provide the |
declaration without arguments. If it is 0, we checked and failed |
to find the declaration so provide a fully prototyped one. If it |
is 1, we found it so don't provide any declaration at all. */ |
#if !HAVE_DECL_BASENAME |
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME) |
extern char *basename (const char *); |
#else |
/* Do not allow basename to be used if there is no prototype seen. We |
either need to use the above prototype or have one from |
autoconf which would result in HAVE_DECL_BASENAME being set. */ |
#define basename basename_cannot_be_used_without_a_prototype |
#endif |
#endif |
|
/* A well-defined basename () that is always compiled in. */ |
|
extern const char *lbasename (const char *); |
|
/* Same, but assumes DOS semantics (drive name, backslash is also a |
dir separator) regardless of host. */ |
|
extern const char *dos_lbasename (const char *); |
|
/* Same, but assumes Unix semantics (absolute paths always start with |
a slash, only forward slash is accepted as dir separator) |
regardless of host. */ |
|
extern const char *unix_lbasename (const char *); |
|
/* A well-defined realpath () that is always compiled in. */ |
|
extern char *lrealpath (const char *); |
|
/* Concatenate an arbitrary number of strings. You must pass NULL as |
the last argument of this function, to terminate the list of |
strings. Allocates memory using xmalloc. */ |
|
extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL; |
|
/* Concatenate an arbitrary number of strings. You must pass NULL as |
the last argument of this function, to terminate the list of |
strings. Allocates memory using xmalloc. The first argument is |
not one of the strings to be concatenated, but if not NULL is a |
pointer to be freed after the new string is created, similar to the |
way xrealloc works. */ |
|
extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL; |
|
/* Determine the length of concatenating an arbitrary number of |
strings. You must pass NULL as the last argument of this function, |
to terminate the list of strings. */ |
|
extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL; |
|
/* Concatenate an arbitrary number of strings into a SUPPLIED area of |
memory. You must pass NULL as the last argument of this function, |
to terminate the list of strings. The supplied memory is assumed |
to be large enough. */ |
|
extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL; |
|
/* Concatenate an arbitrary number of strings into a GLOBAL area of |
memory. You must pass NULL as the last argument of this function, |
to terminate the list of strings. The supplied memory is assumed |
to be large enough. */ |
|
extern char *concat_copy2 (const char *, ...) ATTRIBUTE_SENTINEL; |
|
/* This is the global area used by concat_copy2. */ |
|
extern char *libiberty_concat_ptr; |
|
/* Concatenate an arbitrary number of strings. You must pass NULL as |
the last argument of this function, to terminate the list of |
strings. Allocates memory using alloca. The arguments are |
evaluated twice! */ |
#define ACONCAT(ACONCAT_PARAMS) \ |
(libiberty_concat_ptr = (char *) alloca (concat_length ACONCAT_PARAMS + 1), \ |
concat_copy2 ACONCAT_PARAMS) |
|
/* Check whether two file descriptors refer to the same file. */ |
|
extern int fdmatch (int fd1, int fd2); |
|
/* Return the position of the first bit set in the argument. */ |
/* Prototypes vary from system to system, so we only provide a |
prototype on systems where we know that we need it. */ |
#if defined (HAVE_DECL_FFS) && !HAVE_DECL_FFS |
extern int ffs(int); |
#endif |
|
/* Get the working directory. The result is cached, so don't call |
chdir() between calls to getpwd(). */ |
|
extern char * getpwd (void); |
|
/* Get the current time. */ |
/* Prototypes vary from system to system, so we only provide a |
prototype on systems where we know that we need it. */ |
#ifdef __MINGW32__ |
/* Forward declaration to avoid #include <sys/time.h>. */ |
struct timeval; |
extern int gettimeofday (struct timeval *, void *); |
#endif |
|
/* Get the amount of time the process has run, in microseconds. */ |
|
extern long get_run_time (void); |
|
/* Generate a relocated path to some installation directory. Allocates |
return value using malloc. */ |
|
extern char *make_relative_prefix (const char *, const char *, |
const char *) ATTRIBUTE_MALLOC; |
|
/* Generate a relocated path to some installation directory without |
attempting to follow any soft links. Allocates |
return value using malloc. */ |
|
extern char *make_relative_prefix_ignore_links (const char *, const char *, |
const char *) ATTRIBUTE_MALLOC; |
|
/* Choose a temporary directory to use for scratch files. */ |
|
extern char *choose_temp_base (void) ATTRIBUTE_MALLOC; |
|
/* Return a temporary file name or NULL if unable to create one. */ |
|
extern char *make_temp_file (const char *) ATTRIBUTE_MALLOC; |
|
/* Remove a link to a file unless it is special. */ |
|
extern int unlink_if_ordinary (const char *); |
|
/* Allocate memory filled with spaces. Allocates using malloc. */ |
|
extern const char *spaces (int count); |
|
/* Return the maximum error number for which strerror will return a |
string. */ |
|
extern int errno_max (void); |
|
/* Return the name of an errno value (e.g., strerrno (EINVAL) returns |
"EINVAL"). */ |
|
extern const char *strerrno (int); |
|
/* Given the name of an errno value, return the value. */ |
|
extern int strtoerrno (const char *); |
|
/* ANSI's strerror(), but more robust. */ |
|
extern char *xstrerror (int); |
|
/* Return the maximum signal number for which strsignal will return a |
string. */ |
|
extern int signo_max (void); |
|
/* Return a signal message string for a signal number |
(e.g., strsignal (SIGHUP) returns something like "Hangup"). */ |
/* This is commented out as it can conflict with one in system headers. |
We still document its existence though. */ |
|
/*extern const char *strsignal (int);*/ |
|
/* Return the name of a signal number (e.g., strsigno (SIGHUP) returns |
"SIGHUP"). */ |
|
extern const char *strsigno (int); |
|
/* Given the name of a signal, return its number. */ |
|
extern int strtosigno (const char *); |
|
/* Register a function to be run by xexit. Returns 0 on success. */ |
|
extern int xatexit (void (*fn) (void)); |
|
/* Exit, calling all the functions registered with xatexit. */ |
|
extern void xexit (int status) ATTRIBUTE_NORETURN; |
|
/* Set the program name used by xmalloc. */ |
|
extern void xmalloc_set_program_name (const char *); |
|
/* Report an allocation failure. */ |
extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN; |
|
/* Allocate memory without fail. If malloc fails, this will print a |
message to stderr (using the name set by xmalloc_set_program_name, |
if any) and then call xexit. */ |
|
extern void *xmalloc (size_t) ATTRIBUTE_MALLOC; |
|
/* Reallocate memory without fail. This works like xmalloc. Note, |
realloc type functions are not suitable for attribute malloc since |
they may return the same address across multiple calls. */ |
|
extern void *xrealloc (void *, size_t); |
|
/* Allocate memory without fail and set it to zero. This works like |
xmalloc. */ |
|
extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC; |
|
/* Copy a string into a memory buffer without fail. */ |
|
extern char *xstrdup (const char *) ATTRIBUTE_MALLOC; |
|
/* Copy at most N characters from string into a buffer without fail. */ |
|
extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC; |
|
/* Copy an existing memory buffer to a new memory buffer without fail. */ |
|
extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC; |
|
/* Physical memory routines. Return values are in BYTES. */ |
extern double physmem_total (void); |
extern double physmem_available (void); |
|
/* Compute the 32-bit CRC of a block of memory. */ |
extern unsigned int xcrc32 (const unsigned char *, int, unsigned int); |
|
/* These macros provide a K&R/C89/C++-friendly way of allocating structures |
with nice encapsulation. The XDELETE*() macros are technically |
superfluous, but provided here for symmetry. Using them consistently |
makes it easier to update client code to use different allocators such |
as new/delete and new[]/delete[]. */ |
|
/* Scalar allocators. */ |
|
#define XALLOCA(T) ((T *) alloca (sizeof (T))) |
#define XNEW(T) ((T *) xmalloc (sizeof (T))) |
#define XCNEW(T) ((T *) xcalloc (1, sizeof (T))) |
#define XDUP(T, P) ((T *) xmemdup ((P), sizeof (T), sizeof (T))) |
#define XDELETE(P) free ((void*) (P)) |
|
/* Array allocators. */ |
|
#define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) |
#define XNEWVEC(T, N) ((T *) xmalloc (sizeof (T) * (N))) |
#define XCNEWVEC(T, N) ((T *) xcalloc ((N), sizeof (T))) |
#define XDUPVEC(T, P, N) ((T *) xmemdup ((P), sizeof (T) * (N), sizeof (T) * (N))) |
#define XRESIZEVEC(T, P, N) ((T *) xrealloc ((void *) (P), sizeof (T) * (N))) |
#define XDELETEVEC(P) free ((void*) (P)) |
|
/* Allocators for variable-sized structures and raw buffers. */ |
|
#define XALLOCAVAR(T, S) ((T *) alloca ((S))) |
#define XNEWVAR(T, S) ((T *) xmalloc ((S))) |
#define XCNEWVAR(T, S) ((T *) xcalloc (1, (S))) |
#define XDUPVAR(T, P, S1, S2) ((T *) xmemdup ((P), (S1), (S2))) |
#define XRESIZEVAR(T, P, S) ((T *) xrealloc ((P), (S))) |
|
/* Type-safe obstack allocator. */ |
|
#define XOBNEW(O, T) ((T *) obstack_alloc ((O), sizeof (T))) |
#define XOBNEWVEC(O, T, N) ((T *) obstack_alloc ((O), sizeof (T) * (N))) |
#define XOBNEWVAR(O, T, S) ((T *) obstack_alloc ((O), (S))) |
#define XOBFINISH(O, T) ((T) obstack_finish ((O))) |
|
/* hex character manipulation routines */ |
|
#define _hex_array_size 256 |
#define _hex_bad 99 |
extern const unsigned char _hex_value[_hex_array_size]; |
extern void hex_init (void); |
#define hex_p(c) (hex_value (c) != _hex_bad) |
/* If you change this, note well: Some code relies on side effects in |
the argument being performed exactly once. */ |
#define hex_value(c) ((unsigned int) _hex_value[(unsigned char) (c)]) |
|
/* Flags for pex_init. These are bits to be or'ed together. */ |
|
/* Record subprocess times, if possible. */ |
#define PEX_RECORD_TIMES 0x1 |
|
/* Use pipes for communication between processes, if possible. */ |
#define PEX_USE_PIPES 0x2 |
|
/* Save files used for communication between processes. */ |
#define PEX_SAVE_TEMPS 0x4 |
|
/* Prepare to execute one or more programs, with standard output of |
each program fed to standard input of the next. |
FLAGS As above. |
PNAME The name of the program to report in error messages. |
TEMPBASE A base name to use for temporary files; may be NULL to |
use a random name. |
Returns NULL on error. */ |
|
extern struct pex_obj *pex_init (int flags, const char *pname, |
const char *tempbase); |
|
/* Flags for pex_run. These are bits to be or'ed together. */ |
|
/* Last program in pipeline. Standard output of program goes to |
OUTNAME, or, if OUTNAME is NULL, to standard output of caller. Do |
not set this if you want to call pex_read_output. After this is |
set, pex_run may no longer be called with the same struct |
pex_obj. */ |
#define PEX_LAST 0x1 |
|
/* Search for program in executable search path. */ |
#define PEX_SEARCH 0x2 |
|
/* OUTNAME is a suffix. */ |
#define PEX_SUFFIX 0x4 |
|
/* Send program's standard error to standard output. */ |
#define PEX_STDERR_TO_STDOUT 0x8 |
|
/* Input file should be opened in binary mode. This flag is ignored |
on Unix. */ |
#define PEX_BINARY_INPUT 0x10 |
|
/* Output file should be opened in binary mode. This flag is ignored |
on Unix. For proper behaviour PEX_BINARY_INPUT and |
PEX_BINARY_OUTPUT have to match appropriately--i.e., a call using |
PEX_BINARY_OUTPUT should be followed by a call using |
PEX_BINARY_INPUT. */ |
#define PEX_BINARY_OUTPUT 0x20 |
|
/* Capture stderr to a pipe. The output can be read by |
calling pex_read_err and reading from the returned |
FILE object. This flag may be specified only for |
the last program in a pipeline. |
|
This flag is supported only on Unix and Windows. */ |
#define PEX_STDERR_TO_PIPE 0x40 |
|
/* Capture stderr in binary mode. This flag is ignored |
on Unix. */ |
#define PEX_BINARY_ERROR 0x80 |
|
|
/* Execute one program. Returns NULL on success. On error returns an |
error string (typically just the name of a system call); the error |
string is statically allocated. |
|
OBJ Returned by pex_init. |
|
FLAGS As above. |
|
EXECUTABLE The program to execute. |
|
ARGV NULL terminated array of arguments to pass to the program. |
|
OUTNAME Sets the output file name as follows: |
|
PEX_SUFFIX set (OUTNAME may not be NULL): |
TEMPBASE parameter to pex_init not NULL: |
Output file name is the concatenation of TEMPBASE |
and OUTNAME. |
TEMPBASE is NULL: |
Output file name is a random file name ending in |
OUTNAME. |
PEX_SUFFIX not set: |
OUTNAME not NULL: |
Output file name is OUTNAME. |
OUTNAME NULL, TEMPBASE not NULL: |
Output file name is randomly chosen using |
TEMPBASE. |
OUTNAME NULL, TEMPBASE NULL: |
Output file name is randomly chosen. |
|
If PEX_LAST is not set, the output file name is the |
name to use for a temporary file holding stdout, if |
any (there will not be a file if PEX_USE_PIPES is set |
and the system supports pipes). If a file is used, it |
will be removed when no longer needed unless |
PEX_SAVE_TEMPS is set. |
|
If PEX_LAST is set, and OUTNAME is not NULL, standard |
output is written to the output file name. The file |
will not be removed. If PEX_LAST and PEX_SUFFIX are |
both set, TEMPBASE may not be NULL. |
|
ERRNAME If not NULL, this is the name of a file to which |
standard error is written. If NULL, standard error of |
the program is standard error of the caller. |
|
ERR On an error return, *ERR is set to an errno value, or |
to 0 if there is no relevant errno. |
*/ |
|
extern const char *pex_run (struct pex_obj *obj, int flags, |
const char *executable, char * const *argv, |
const char *outname, const char *errname, |
int *err); |
|
/* As for pex_run (), but takes an extra parameter to enable the |
environment for the child process to be specified. |
|
ENV The environment for the child process, specified as |
an array of character pointers. Each element of the |
array should point to a string of the form VAR=VALUE, |
with the exception of the last element which must be |
a null pointer. |
*/ |
|
extern const char *pex_run_in_environment (struct pex_obj *obj, int flags, |
const char *executable, |
char * const *argv, |
char * const *env, |
const char *outname, |
const char *errname, int *err); |
|
/* Return a stream for a temporary file to pass to the first program |
in the pipeline as input. The file name is chosen as for pex_run. |
pex_run closes the file automatically; don't close it yourself. */ |
|
extern FILE *pex_input_file (struct pex_obj *obj, int flags, |
const char *in_name); |
|
/* Return a stream for a pipe connected to the standard input of the |
first program in the pipeline. You must have passed |
`PEX_USE_PIPES' to `pex_init'. Close the returned stream |
yourself. */ |
|
extern FILE *pex_input_pipe (struct pex_obj *obj, int binary); |
|
/* Read the standard output of the last program to be executed. |
pex_run can not be called after this. BINARY should be non-zero if |
the file should be opened in binary mode; this is ignored on Unix. |
Returns NULL on error. Don't call fclose on the returned FILE; it |
will be closed by pex_free. */ |
|
extern FILE *pex_read_output (struct pex_obj *, int binary); |
|
/* Read the standard error of the last program to be executed. |
pex_run can not be called after this. BINARY should be non-zero if |
the file should be opened in binary mode; this is ignored on Unix. |
Returns NULL on error. Don't call fclose on the returned FILE; it |
will be closed by pex_free. */ |
|
extern FILE *pex_read_err (struct pex_obj *, int binary); |
|
/* Return exit status of all programs in VECTOR. COUNT indicates the |
size of VECTOR. The status codes in the vector are in the order of |
the calls to pex_run. Returns 0 on error, 1 on success. */ |
|
extern int pex_get_status (struct pex_obj *, int count, int *vector); |
|
/* Return times of all programs in VECTOR. COUNT indicates the size |
of VECTOR. struct pex_time is really just struct timeval, but that |
is not portable to all systems. Returns 0 on error, 1 on |
success. */ |
|
struct pex_time |
{ |
unsigned long user_seconds; |
unsigned long user_microseconds; |
unsigned long system_seconds; |
unsigned long system_microseconds; |
}; |
|
extern int pex_get_times (struct pex_obj *, int count, |
struct pex_time *vector); |
|
/* Clean up a pex_obj. If you have not called pex_get_times or |
pex_get_status, this will try to kill the subprocesses. */ |
|
extern void pex_free (struct pex_obj *); |
|
/* Just execute one program. Return value is as for pex_run. |
FLAGS Combination of PEX_SEARCH and PEX_STDERR_TO_STDOUT. |
EXECUTABLE As for pex_run. |
ARGV As for pex_run. |
PNAME As for pex_init. |
OUTNAME As for pex_run when PEX_LAST is set. |
ERRNAME As for pex_run. |
STATUS Set to exit status on success. |
ERR As for pex_run. |
*/ |
|
extern const char *pex_one (int flags, const char *executable, |
char * const *argv, const char *pname, |
const char *outname, const char *errname, |
int *status, int *err); |
|
/* pexecute and pwait are the old pexecute interface, still here for |
backward compatibility. Don't use these for new code. Instead, |
use pex_init/pex_run/pex_get_status/pex_free, or pex_one. */ |
|
/* Definitions used by the pexecute routine. */ |
|
#define PEXECUTE_FIRST 1 |
#define PEXECUTE_LAST 2 |
#define PEXECUTE_ONE (PEXECUTE_FIRST + PEXECUTE_LAST) |
#define PEXECUTE_SEARCH 4 |
#define PEXECUTE_VERBOSE 8 |
|
/* Execute a program. */ |
|
extern int pexecute (const char *, char * const *, const char *, |
const char *, char **, char **, int); |
|
/* Wait for pexecute to finish. */ |
|
extern int pwait (int, int *, int); |
|
#if !HAVE_DECL_ASPRINTF |
/* Like sprintf but provides a pointer to malloc'd storage, which must |
be freed by the caller. */ |
|
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; |
#endif |
|
#if !HAVE_DECL_VASPRINTF |
/* Like vsprintf but provides a pointer to malloc'd storage, which |
must be freed by the caller. */ |
|
extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0); |
#endif |
|
#if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF |
/* Like sprintf but prints at most N characters. */ |
extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3; |
#endif |
|
#if defined(HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF |
/* Like vsprintf but prints at most N characters. */ |
extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0); |
#endif |
|
#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP |
/* Compare version strings. */ |
extern int strverscmp (const char *, const char *); |
#endif |
|
/* Set the title of a process */ |
extern void setproctitle (const char *name, ...); |
|
/* Increase stack limit if possible. */ |
extern void stack_limit_increase (unsigned long); |
|
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) |
|
/* Drastically simplified alloca configurator. If we're using GCC, |
we use __builtin_alloca; otherwise we use the C alloca. The C |
alloca is always available. You can override GCC by defining |
USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is |
also set/unset as it is often used to indicate whether code needs |
to call alloca(0). */ |
extern void *C_alloca (size_t) ATTRIBUTE_MALLOC; |
#undef alloca |
#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA |
# define alloca(x) __builtin_alloca(x) |
# undef C_ALLOCA |
# define ASTRDUP(X) \ |
(__extension__ ({ const char *const libiberty_optr = (X); \ |
const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \ |
char *const libiberty_nptr = (char *const) alloca (libiberty_len); \ |
(char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); })) |
#else |
# define alloca(x) C_alloca(x) |
# undef USE_C_ALLOCA |
# define USE_C_ALLOCA 1 |
# undef C_ALLOCA |
# define C_ALLOCA 1 |
extern const char *libiberty_optr; |
extern char *libiberty_nptr; |
extern unsigned long libiberty_len; |
# define ASTRDUP(X) \ |
(libiberty_optr = (X), \ |
libiberty_len = strlen (libiberty_optr) + 1, \ |
libiberty_nptr = (char *) alloca (libiberty_len), \ |
(char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len)) |
#endif |
|
#ifdef __cplusplus |
} |
#endif |
|
|
#endif /* ! defined (LIBIBERTY_H) */ |
/trunk/gnu-dev/or1k-gcc/include/dwarf2.h
0,0 → 1,933
/* Declarations and definitions of codes relating to the DWARF2 and |
DWARF3 symbolic debugging information formats. |
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, |
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
Free Software Foundation, Inc. |
|
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program |
Office (AJPO), Florida State University and Silicon Graphics Inc. |
provided support for this effort -- June 21, 1995. |
|
Derived from the DWARF 1 implementation written by Ron Guilmette |
(rfg@netcom.com), November 1990. |
|
This file is part of GCC. |
|
GCC 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, or (at your option) any later |
version. |
|
GCC 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. |
|
Under Section 7 of GPL version 3, you are granted additional |
permissions described in the GCC Runtime Library Exception, version |
3.1, as published by the Free Software Foundation. |
|
You should have received a copy of the GNU General Public License and |
a copy of the GCC Runtime Library Exception along with this program; |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
<http://www.gnu.org/licenses/>. */ |
|
/* This file is derived from the DWARF specification (a public document) |
Revision 2.0.0 (July 27, 1993) developed by the UNIX International |
Programming Languages Special Interest Group (UI/PLSIG) and distributed |
by UNIX International. Copies of this specification are available from |
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. |
|
This file also now contains definitions from the DWARF 3 specification |
published Dec 20, 2005, available from: http://dwarf.freestandards.org. */ |
|
/* This file is shared between GCC and GDB, and should not contain |
prototypes. */ |
|
#ifndef _DWARF2_H |
#define _DWARF2_H |
|
/* Tag names and codes. */ |
enum dwarf_tag |
{ |
DW_TAG_padding = 0x00, |
DW_TAG_array_type = 0x01, |
DW_TAG_class_type = 0x02, |
DW_TAG_entry_point = 0x03, |
DW_TAG_enumeration_type = 0x04, |
DW_TAG_formal_parameter = 0x05, |
DW_TAG_imported_declaration = 0x08, |
DW_TAG_label = 0x0a, |
DW_TAG_lexical_block = 0x0b, |
DW_TAG_member = 0x0d, |
DW_TAG_pointer_type = 0x0f, |
DW_TAG_reference_type = 0x10, |
DW_TAG_compile_unit = 0x11, |
DW_TAG_string_type = 0x12, |
DW_TAG_structure_type = 0x13, |
DW_TAG_subroutine_type = 0x15, |
DW_TAG_typedef = 0x16, |
DW_TAG_union_type = 0x17, |
DW_TAG_unspecified_parameters = 0x18, |
DW_TAG_variant = 0x19, |
DW_TAG_common_block = 0x1a, |
DW_TAG_common_inclusion = 0x1b, |
DW_TAG_inheritance = 0x1c, |
DW_TAG_inlined_subroutine = 0x1d, |
DW_TAG_module = 0x1e, |
DW_TAG_ptr_to_member_type = 0x1f, |
DW_TAG_set_type = 0x20, |
DW_TAG_subrange_type = 0x21, |
DW_TAG_with_stmt = 0x22, |
DW_TAG_access_declaration = 0x23, |
DW_TAG_base_type = 0x24, |
DW_TAG_catch_block = 0x25, |
DW_TAG_const_type = 0x26, |
DW_TAG_constant = 0x27, |
DW_TAG_enumerator = 0x28, |
DW_TAG_file_type = 0x29, |
DW_TAG_friend = 0x2a, |
DW_TAG_namelist = 0x2b, |
DW_TAG_namelist_item = 0x2c, |
DW_TAG_packed_type = 0x2d, |
DW_TAG_subprogram = 0x2e, |
DW_TAG_template_type_param = 0x2f, |
DW_TAG_template_value_param = 0x30, |
DW_TAG_thrown_type = 0x31, |
DW_TAG_try_block = 0x32, |
DW_TAG_variant_part = 0x33, |
DW_TAG_variable = 0x34, |
DW_TAG_volatile_type = 0x35, |
/* DWARF 3. */ |
DW_TAG_dwarf_procedure = 0x36, |
DW_TAG_restrict_type = 0x37, |
DW_TAG_interface_type = 0x38, |
DW_TAG_namespace = 0x39, |
DW_TAG_imported_module = 0x3a, |
DW_TAG_unspecified_type = 0x3b, |
DW_TAG_partial_unit = 0x3c, |
DW_TAG_imported_unit = 0x3d, |
DW_TAG_condition = 0x3f, |
DW_TAG_shared_type = 0x40, |
/* DWARF 4. */ |
DW_TAG_type_unit = 0x41, |
DW_TAG_rvalue_reference_type = 0x42, |
DW_TAG_template_alias = 0x43, |
|
DW_TAG_lo_user = 0x4080, |
DW_TAG_hi_user = 0xffff, |
|
/* SGI/MIPS Extensions. */ |
DW_TAG_MIPS_loop = 0x4081, |
|
/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ |
DW_TAG_HP_array_descriptor = 0x4090, |
DW_TAG_HP_Bliss_field = 0x4091, |
DW_TAG_HP_Bliss_field_set = 0x4092, |
|
/* GNU extensions. */ |
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */ |
DW_TAG_function_template = 0x4102, /* For C++. */ |
DW_TAG_class_template = 0x4103, /* For C++. */ |
DW_TAG_GNU_BINCL = 0x4104, |
DW_TAG_GNU_EINCL = 0x4105, |
/* Template template parameter. |
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ |
DW_TAG_GNU_template_template_param = 0x4106, |
|
/* Template parameter pack extension, specified at |
http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates |
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags |
are properly part of DWARF 5. */ |
DW_TAG_GNU_template_parameter_pack = 0x4107, |
DW_TAG_GNU_formal_parameter_pack = 0x4108, |
/* The GNU call site extension, specified at |
http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . |
The values of these two TAGS are in the DW_TAG_GNU_* space until the tags |
are properly part of DWARF 5. */ |
DW_TAG_GNU_call_site = 0x4109, |
DW_TAG_GNU_call_site_parameter = 0x410a, |
/* Extensions for UPC. See: http://upc.gwu.edu/~upc. */ |
DW_TAG_upc_shared_type = 0x8765, |
DW_TAG_upc_strict_type = 0x8766, |
DW_TAG_upc_relaxed_type = 0x8767, |
/* PGI (STMicroelectronics) extensions. No documentation available. */ |
DW_TAG_PGI_kanji_type = 0xA000, |
DW_TAG_PGI_interface_block = 0xA020 |
}; |
|
/* Flag that tells whether entry has a child or not. */ |
#define DW_children_no 0 |
#define DW_children_yes 1 |
|
/* Form names and codes. */ |
enum dwarf_form |
{ |
DW_FORM_addr = 0x01, |
DW_FORM_block2 = 0x03, |
DW_FORM_block4 = 0x04, |
DW_FORM_data2 = 0x05, |
DW_FORM_data4 = 0x06, |
DW_FORM_data8 = 0x07, |
DW_FORM_string = 0x08, |
DW_FORM_block = 0x09, |
DW_FORM_block1 = 0x0a, |
DW_FORM_data1 = 0x0b, |
DW_FORM_flag = 0x0c, |
DW_FORM_sdata = 0x0d, |
DW_FORM_strp = 0x0e, |
DW_FORM_udata = 0x0f, |
DW_FORM_ref_addr = 0x10, |
DW_FORM_ref1 = 0x11, |
DW_FORM_ref2 = 0x12, |
DW_FORM_ref4 = 0x13, |
DW_FORM_ref8 = 0x14, |
DW_FORM_ref_udata = 0x15, |
DW_FORM_indirect = 0x16, |
/* DWARF 4. */ |
DW_FORM_sec_offset = 0x17, |
DW_FORM_exprloc = 0x18, |
DW_FORM_flag_present = 0x19, |
DW_FORM_ref_sig8 = 0x20, |
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ |
DW_FORM_GNU_ref_index = 0x1f00, |
DW_FORM_GNU_addr_index = 0x1f01, |
DW_FORM_GNU_str_index = 0x1f02 |
}; |
|
/* Attribute names and codes. */ |
enum dwarf_attribute |
{ |
DW_AT_sibling = 0x01, |
DW_AT_location = 0x02, |
DW_AT_name = 0x03, |
DW_AT_ordering = 0x09, |
DW_AT_subscr_data = 0x0a, |
DW_AT_byte_size = 0x0b, |
DW_AT_bit_offset = 0x0c, |
DW_AT_bit_size = 0x0d, |
DW_AT_element_list = 0x0f, |
DW_AT_stmt_list = 0x10, |
DW_AT_low_pc = 0x11, |
DW_AT_high_pc = 0x12, |
DW_AT_language = 0x13, |
DW_AT_member = 0x14, |
DW_AT_discr = 0x15, |
DW_AT_discr_value = 0x16, |
DW_AT_visibility = 0x17, |
DW_AT_import = 0x18, |
DW_AT_string_length = 0x19, |
DW_AT_common_reference = 0x1a, |
DW_AT_comp_dir = 0x1b, |
DW_AT_const_value = 0x1c, |
DW_AT_containing_type = 0x1d, |
DW_AT_default_value = 0x1e, |
DW_AT_inline = 0x20, |
DW_AT_is_optional = 0x21, |
DW_AT_lower_bound = 0x22, |
DW_AT_producer = 0x25, |
DW_AT_prototyped = 0x27, |
DW_AT_return_addr = 0x2a, |
DW_AT_start_scope = 0x2c, |
DW_AT_bit_stride = 0x2e, |
#define DW_AT_stride_size DW_AT_bit_stride /* Note: The use of DW_AT_stride_size is deprecated. */ |
DW_AT_upper_bound = 0x2f, |
DW_AT_abstract_origin = 0x31, |
DW_AT_accessibility = 0x32, |
DW_AT_address_class = 0x33, |
DW_AT_artificial = 0x34, |
DW_AT_base_types = 0x35, |
DW_AT_calling_convention = 0x36, |
DW_AT_count = 0x37, |
DW_AT_data_member_location = 0x38, |
DW_AT_decl_column = 0x39, |
DW_AT_decl_file = 0x3a, |
DW_AT_decl_line = 0x3b, |
DW_AT_declaration = 0x3c, |
DW_AT_discr_list = 0x3d, |
DW_AT_encoding = 0x3e, |
DW_AT_external = 0x3f, |
DW_AT_frame_base = 0x40, |
DW_AT_friend = 0x41, |
DW_AT_identifier_case = 0x42, |
DW_AT_macro_info = 0x43, |
DW_AT_namelist_items = 0x44, |
DW_AT_priority = 0x45, |
DW_AT_segment = 0x46, |
DW_AT_specification = 0x47, |
DW_AT_static_link = 0x48, |
DW_AT_type = 0x49, |
DW_AT_use_location = 0x4a, |
DW_AT_variable_parameter = 0x4b, |
DW_AT_virtuality = 0x4c, |
DW_AT_vtable_elem_location = 0x4d, |
/* DWARF 3 values. */ |
DW_AT_allocated = 0x4e, |
DW_AT_associated = 0x4f, |
DW_AT_data_location = 0x50, |
DW_AT_byte_stride = 0x51, |
#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */ |
DW_AT_entry_pc = 0x52, |
DW_AT_use_UTF8 = 0x53, |
DW_AT_extension = 0x54, |
DW_AT_ranges = 0x55, |
DW_AT_trampoline = 0x56, |
DW_AT_call_column = 0x57, |
DW_AT_call_file = 0x58, |
DW_AT_call_line = 0x59, |
DW_AT_description = 0x5a, |
DW_AT_binary_scale = 0x5b, |
DW_AT_decimal_scale = 0x5c, |
DW_AT_small = 0x5d, |
DW_AT_decimal_sign = 0x5e, |
DW_AT_digit_count = 0x5f, |
DW_AT_picture_string = 0x60, |
DW_AT_mutable = 0x61, |
DW_AT_threads_scaled = 0x62, |
DW_AT_explicit = 0x63, |
DW_AT_object_pointer = 0x64, |
DW_AT_endianity = 0x65, |
DW_AT_elemental = 0x66, |
DW_AT_pure = 0x67, |
DW_AT_recursive = 0x68, |
/* DWARF 4. */ |
DW_AT_signature = 0x69, |
DW_AT_main_subprogram = 0x6a, |
DW_AT_data_bit_offset = 0x6b, |
DW_AT_const_expr = 0x6c, |
DW_AT_enum_class = 0x6d, |
DW_AT_linkage_name = 0x6e, |
|
DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */ |
DW_AT_hi_user = 0x3fff, /* Implementation-defined range end. */ |
|
/* SGI/MIPS extensions. */ |
DW_AT_MIPS_fde = 0x2001, |
DW_AT_MIPS_loop_begin = 0x2002, |
DW_AT_MIPS_tail_loop_begin = 0x2003, |
DW_AT_MIPS_epilog_begin = 0x2004, |
DW_AT_MIPS_loop_unroll_factor = 0x2005, |
DW_AT_MIPS_software_pipeline_depth = 0x2006, |
DW_AT_MIPS_linkage_name = 0x2007, |
DW_AT_MIPS_stride = 0x2008, |
DW_AT_MIPS_abstract_name = 0x2009, |
DW_AT_MIPS_clone_origin = 0x200a, |
DW_AT_MIPS_has_inlines = 0x200b, |
/* HP extensions. */ |
DW_AT_HP_block_index = 0x2000, |
DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */ |
DW_AT_HP_prologue = 0x2005, /* Same as DW_AT_MIPS_loop_unroll. */ |
DW_AT_HP_epilogue = 0x2008, /* Same as DW_AT_MIPS_stride. */ |
DW_AT_HP_actuals_stmt_list = 0x2010, |
DW_AT_HP_proc_per_section = 0x2011, |
DW_AT_HP_raw_data_ptr = 0x2012, |
DW_AT_HP_pass_by_reference = 0x2013, |
DW_AT_HP_opt_level = 0x2014, |
DW_AT_HP_prof_version_id = 0x2015, |
DW_AT_HP_opt_flags = 0x2016, |
DW_AT_HP_cold_region_low_pc = 0x2017, |
DW_AT_HP_cold_region_high_pc = 0x2018, |
DW_AT_HP_all_variables_modifiable = 0x2019, |
DW_AT_HP_linkage_name = 0x201a, |
DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */ |
DW_AT_HP_unit_name = 0x201f, |
DW_AT_HP_unit_size = 0x2020, |
DW_AT_HP_widened_byte_size = 0x2021, |
DW_AT_HP_definition_points = 0x2022, |
DW_AT_HP_default_location = 0x2023, |
DW_AT_HP_is_result_param = 0x2029, |
|
/* GNU extensions. */ |
DW_AT_sf_names = 0x2101, |
DW_AT_src_info = 0x2102, |
DW_AT_mac_info = 0x2103, |
DW_AT_src_coords = 0x2104, |
DW_AT_body_begin = 0x2105, |
DW_AT_body_end = 0x2106, |
DW_AT_GNU_vector = 0x2107, |
/* Thread-safety annotations. |
See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */ |
DW_AT_GNU_guarded_by = 0x2108, |
DW_AT_GNU_pt_guarded_by = 0x2109, |
DW_AT_GNU_guarded = 0x210a, |
DW_AT_GNU_pt_guarded = 0x210b, |
DW_AT_GNU_locks_excluded = 0x210c, |
DW_AT_GNU_exclusive_locks_required = 0x210d, |
DW_AT_GNU_shared_locks_required = 0x210e, |
/* One-definition rule violation detection. |
See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */ |
DW_AT_GNU_odr_signature = 0x210f, |
/* Template template argument name. |
See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ |
DW_AT_GNU_template_name = 0x2110, |
/* The GNU call site extension. |
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */ |
DW_AT_GNU_call_site_value = 0x2111, |
DW_AT_GNU_call_site_data_value = 0x2112, |
DW_AT_GNU_call_site_target = 0x2113, |
DW_AT_GNU_call_site_target_clobbered = 0x2114, |
DW_AT_GNU_tail_call = 0x2115, |
DW_AT_GNU_all_tail_call_sites = 0x2116, |
DW_AT_GNU_all_call_sites = 0x2117, |
DW_AT_GNU_all_source_call_sites = 0x2118, |
/* Section offset into .debug_macro section. */ |
DW_AT_GNU_macros = 0x2119, |
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ |
DW_AT_GNU_dwo_name = 0x2130, |
DW_AT_GNU_dwo_id = 0x2131, |
DW_AT_GNU_ref_base = 0x2132, |
DW_AT_GNU_addr_base = 0x2133, |
DW_AT_GNU_pubnames = 0x2134, |
DW_AT_GNU_pubtypes = 0x2135, |
/* VMS extensions. */ |
DW_AT_VMS_rtnbeg_pd_address = 0x2201, |
/* GNAT extensions. */ |
/* GNAT descriptive type. |
See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */ |
DW_AT_use_GNAT_descriptive_type = 0x2301, |
DW_AT_GNAT_descriptive_type = 0x2302, |
/* UPC extension. */ |
DW_AT_upc_threads_scaled = 0x3210, |
/* PGI (STMicroelectronics) extensions. */ |
DW_AT_PGI_lbase = 0x3a00, |
DW_AT_PGI_soffset = 0x3a01, |
DW_AT_PGI_lstride = 0x3a02 |
}; |
|
/* Location atom names and codes. */ |
enum dwarf_location_atom |
{ |
DW_OP_addr = 0x03, |
DW_OP_deref = 0x06, |
DW_OP_const1u = 0x08, |
DW_OP_const1s = 0x09, |
DW_OP_const2u = 0x0a, |
DW_OP_const2s = 0x0b, |
DW_OP_const4u = 0x0c, |
DW_OP_const4s = 0x0d, |
DW_OP_const8u = 0x0e, |
DW_OP_const8s = 0x0f, |
DW_OP_constu = 0x10, |
DW_OP_consts = 0x11, |
DW_OP_dup = 0x12, |
DW_OP_drop = 0x13, |
DW_OP_over = 0x14, |
DW_OP_pick = 0x15, |
DW_OP_swap = 0x16, |
DW_OP_rot = 0x17, |
DW_OP_xderef = 0x18, |
DW_OP_abs = 0x19, |
DW_OP_and = 0x1a, |
DW_OP_div = 0x1b, |
DW_OP_minus = 0x1c, |
DW_OP_mod = 0x1d, |
DW_OP_mul = 0x1e, |
DW_OP_neg = 0x1f, |
DW_OP_not = 0x20, |
DW_OP_or = 0x21, |
DW_OP_plus = 0x22, |
DW_OP_plus_uconst = 0x23, |
DW_OP_shl = 0x24, |
DW_OP_shr = 0x25, |
DW_OP_shra = 0x26, |
DW_OP_xor = 0x27, |
DW_OP_bra = 0x28, |
DW_OP_eq = 0x29, |
DW_OP_ge = 0x2a, |
DW_OP_gt = 0x2b, |
DW_OP_le = 0x2c, |
DW_OP_lt = 0x2d, |
DW_OP_ne = 0x2e, |
DW_OP_skip = 0x2f, |
DW_OP_lit0 = 0x30, |
DW_OP_lit1 = 0x31, |
DW_OP_lit2 = 0x32, |
DW_OP_lit3 = 0x33, |
DW_OP_lit4 = 0x34, |
DW_OP_lit5 = 0x35, |
DW_OP_lit6 = 0x36, |
DW_OP_lit7 = 0x37, |
DW_OP_lit8 = 0x38, |
DW_OP_lit9 = 0x39, |
DW_OP_lit10 = 0x3a, |
DW_OP_lit11 = 0x3b, |
DW_OP_lit12 = 0x3c, |
DW_OP_lit13 = 0x3d, |
DW_OP_lit14 = 0x3e, |
DW_OP_lit15 = 0x3f, |
DW_OP_lit16 = 0x40, |
DW_OP_lit17 = 0x41, |
DW_OP_lit18 = 0x42, |
DW_OP_lit19 = 0x43, |
DW_OP_lit20 = 0x44, |
DW_OP_lit21 = 0x45, |
DW_OP_lit22 = 0x46, |
DW_OP_lit23 = 0x47, |
DW_OP_lit24 = 0x48, |
DW_OP_lit25 = 0x49, |
DW_OP_lit26 = 0x4a, |
DW_OP_lit27 = 0x4b, |
DW_OP_lit28 = 0x4c, |
DW_OP_lit29 = 0x4d, |
DW_OP_lit30 = 0x4e, |
DW_OP_lit31 = 0x4f, |
DW_OP_reg0 = 0x50, |
DW_OP_reg1 = 0x51, |
DW_OP_reg2 = 0x52, |
DW_OP_reg3 = 0x53, |
DW_OP_reg4 = 0x54, |
DW_OP_reg5 = 0x55, |
DW_OP_reg6 = 0x56, |
DW_OP_reg7 = 0x57, |
DW_OP_reg8 = 0x58, |
DW_OP_reg9 = 0x59, |
DW_OP_reg10 = 0x5a, |
DW_OP_reg11 = 0x5b, |
DW_OP_reg12 = 0x5c, |
DW_OP_reg13 = 0x5d, |
DW_OP_reg14 = 0x5e, |
DW_OP_reg15 = 0x5f, |
DW_OP_reg16 = 0x60, |
DW_OP_reg17 = 0x61, |
DW_OP_reg18 = 0x62, |
DW_OP_reg19 = 0x63, |
DW_OP_reg20 = 0x64, |
DW_OP_reg21 = 0x65, |
DW_OP_reg22 = 0x66, |
DW_OP_reg23 = 0x67, |
DW_OP_reg24 = 0x68, |
DW_OP_reg25 = 0x69, |
DW_OP_reg26 = 0x6a, |
DW_OP_reg27 = 0x6b, |
DW_OP_reg28 = 0x6c, |
DW_OP_reg29 = 0x6d, |
DW_OP_reg30 = 0x6e, |
DW_OP_reg31 = 0x6f, |
DW_OP_breg0 = 0x70, |
DW_OP_breg1 = 0x71, |
DW_OP_breg2 = 0x72, |
DW_OP_breg3 = 0x73, |
DW_OP_breg4 = 0x74, |
DW_OP_breg5 = 0x75, |
DW_OP_breg6 = 0x76, |
DW_OP_breg7 = 0x77, |
DW_OP_breg8 = 0x78, |
DW_OP_breg9 = 0x79, |
DW_OP_breg10 = 0x7a, |
DW_OP_breg11 = 0x7b, |
DW_OP_breg12 = 0x7c, |
DW_OP_breg13 = 0x7d, |
DW_OP_breg14 = 0x7e, |
DW_OP_breg15 = 0x7f, |
DW_OP_breg16 = 0x80, |
DW_OP_breg17 = 0x81, |
DW_OP_breg18 = 0x82, |
DW_OP_breg19 = 0x83, |
DW_OP_breg20 = 0x84, |
DW_OP_breg21 = 0x85, |
DW_OP_breg22 = 0x86, |
DW_OP_breg23 = 0x87, |
DW_OP_breg24 = 0x88, |
DW_OP_breg25 = 0x89, |
DW_OP_breg26 = 0x8a, |
DW_OP_breg27 = 0x8b, |
DW_OP_breg28 = 0x8c, |
DW_OP_breg29 = 0x8d, |
DW_OP_breg30 = 0x8e, |
DW_OP_breg31 = 0x8f, |
DW_OP_regx = 0x90, |
DW_OP_fbreg = 0x91, |
DW_OP_bregx = 0x92, |
DW_OP_piece = 0x93, |
DW_OP_deref_size = 0x94, |
DW_OP_xderef_size = 0x95, |
DW_OP_nop = 0x96, |
/* DWARF 3 extensions. */ |
DW_OP_push_object_address = 0x97, |
DW_OP_call2 = 0x98, |
DW_OP_call4 = 0x99, |
DW_OP_call_ref = 0x9a, |
DW_OP_form_tls_address = 0x9b, |
DW_OP_call_frame_cfa = 0x9c, |
DW_OP_bit_piece = 0x9d, |
|
/* DWARF 4 extensions. */ |
DW_OP_implicit_value = 0x9e, |
DW_OP_stack_value = 0x9f, |
|
DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */ |
DW_OP_hi_user = 0xff, /* Implementation-defined range end. */ |
|
/* GNU extensions. */ |
DW_OP_GNU_push_tls_address = 0xe0, |
/* The following is for marking variables that are uninitialized. */ |
DW_OP_GNU_uninit = 0xf0, |
DW_OP_GNU_encoded_addr = 0xf1, |
/* The GNU implicit pointer extension. |
See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */ |
DW_OP_GNU_implicit_pointer = 0xf2, |
/* The GNU entry value extension. |
See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */ |
DW_OP_GNU_entry_value = 0xf3, |
/* The GNU typed stack extension. |
See http://www.dwarfstd.org/doc/040408.1.html . */ |
DW_OP_GNU_const_type = 0xf4, |
DW_OP_GNU_regval_type = 0xf5, |
DW_OP_GNU_deref_type = 0xf6, |
DW_OP_GNU_convert = 0xf7, |
DW_OP_GNU_reinterpret = 0xf9, |
/* The GNU parameter ref extension. */ |
DW_OP_GNU_parameter_ref = 0xfa, |
/* HP extensions. */ |
DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */ |
DW_OP_HP_is_value = 0xe1, |
DW_OP_HP_fltconst4 = 0xe2, |
DW_OP_HP_fltconst8 = 0xe3, |
DW_OP_HP_mod_range = 0xe4, |
DW_OP_HP_unmod_range = 0xe5, |
DW_OP_HP_tls = 0xe6, |
/* PGI (STMicroelectronics) extensions. */ |
DW_OP_PGI_omp_thread_num = 0xf8 |
}; |
|
/* Type encodings. */ |
enum dwarf_type |
{ |
DW_ATE_void = 0x0, |
DW_ATE_address = 0x1, |
DW_ATE_boolean = 0x2, |
DW_ATE_complex_float = 0x3, |
DW_ATE_float = 0x4, |
DW_ATE_signed = 0x5, |
DW_ATE_signed_char = 0x6, |
DW_ATE_unsigned = 0x7, |
DW_ATE_unsigned_char = 0x8, |
/* DWARF 3. */ |
DW_ATE_imaginary_float = 0x9, |
DW_ATE_packed_decimal = 0xa, |
DW_ATE_numeric_string = 0xb, |
DW_ATE_edited = 0xc, |
DW_ATE_signed_fixed = 0xd, |
DW_ATE_unsigned_fixed = 0xe, |
DW_ATE_decimal_float = 0xf, |
/* DWARF 4. */ |
DW_ATE_UTF = 0x10, |
|
DW_ATE_lo_user = 0x80, |
DW_ATE_hi_user = 0xff, |
|
/* HP extensions. */ |
DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */ |
DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */ |
DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */ |
DW_ATE_HP_complex_float128 = 0x83, /* Complex fp (128 bit). */ |
DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */ |
DW_ATE_HP_imaginary_float80 = 0x85, |
DW_ATE_HP_imaginary_float128 = 0x86, |
DW_ATE_HP_VAX_float = 0x88, /* F or G floating. */ |
DW_ATE_HP_VAX_float_d = 0x89, /* D floating. */ |
DW_ATE_HP_packed_decimal = 0x8a, /* Cobol. */ |
DW_ATE_HP_zoned_decimal = 0x8b, /* Cobol. */ |
DW_ATE_HP_edited = 0x8c, /* Cobol. */ |
DW_ATE_HP_signed_fixed = 0x8d, /* Cobol. */ |
DW_ATE_HP_unsigned_fixed = 0x8e, /* Cobol. */ |
DW_ATE_HP_VAX_complex_float = 0x8f, /* F or G floating complex. */ |
DW_ATE_HP_VAX_complex_float_d = 0x90 /* D floating complex. */ |
}; |
|
/* Decimal sign encodings. */ |
enum dwarf_decimal_sign_encoding |
{ |
/* DWARF 3. */ |
DW_DS_unsigned = 0x01, |
DW_DS_leading_overpunch = 0x02, |
DW_DS_trailing_overpunch = 0x03, |
DW_DS_leading_separate = 0x04, |
DW_DS_trailing_separate = 0x05 |
}; |
|
/* Endianity encodings. */ |
enum dwarf_endianity_encoding |
{ |
/* DWARF 3. */ |
DW_END_default = 0x00, |
DW_END_big = 0x01, |
DW_END_little = 0x02, |
|
DW_END_lo_user = 0x40, |
DW_END_hi_user = 0xff |
}; |
|
/* Array ordering names and codes. */ |
enum dwarf_array_dim_ordering |
{ |
DW_ORD_row_major = 0, |
DW_ORD_col_major = 1 |
}; |
|
/* Access attribute. */ |
enum dwarf_access_attribute |
{ |
DW_ACCESS_public = 1, |
DW_ACCESS_protected = 2, |
DW_ACCESS_private = 3 |
}; |
|
/* Visibility. */ |
enum dwarf_visibility_attribute |
{ |
DW_VIS_local = 1, |
DW_VIS_exported = 2, |
DW_VIS_qualified = 3 |
}; |
|
/* Virtuality. */ |
enum dwarf_virtuality_attribute |
{ |
DW_VIRTUALITY_none = 0, |
DW_VIRTUALITY_virtual = 1, |
DW_VIRTUALITY_pure_virtual = 2 |
}; |
|
/* Case sensitivity. */ |
enum dwarf_id_case |
{ |
DW_ID_case_sensitive = 0, |
DW_ID_up_case = 1, |
DW_ID_down_case = 2, |
DW_ID_case_insensitive = 3 |
}; |
|
/* Calling convention. */ |
enum dwarf_calling_convention |
{ |
DW_CC_normal = 0x1, |
DW_CC_program = 0x2, |
DW_CC_nocall = 0x3, |
|
DW_CC_lo_user = 0x40, |
DW_CC_hi_user = 0xff, |
|
DW_CC_GNU_renesas_sh = 0x40, |
DW_CC_GNU_borland_fastcall_i386 = 0x41, |
|
/* This DW_CC_ value is not currently generated by any toolchain. It is |
used internally to GDB to indicate OpenCL C functions that have been |
compiled with the IBM XL C for OpenCL compiler and use a non-platform |
calling convention for passing OpenCL C vector types. This value may |
be changed freely as long as it does not conflict with any other DW_CC_ |
value defined here. */ |
DW_CC_GDB_IBM_OpenCL = 0xff |
}; |
|
/* Inline attribute. */ |
enum dwarf_inline_attribute |
{ |
DW_INL_not_inlined = 0, |
DW_INL_inlined = 1, |
DW_INL_declared_not_inlined = 2, |
DW_INL_declared_inlined = 3 |
}; |
|
/* Discriminant lists. */ |
enum dwarf_discrim_list |
{ |
DW_DSC_label = 0, |
DW_DSC_range = 1 |
}; |
|
/* Line number opcodes. */ |
enum dwarf_line_number_ops |
{ |
DW_LNS_extended_op = 0, |
DW_LNS_copy = 1, |
DW_LNS_advance_pc = 2, |
DW_LNS_advance_line = 3, |
DW_LNS_set_file = 4, |
DW_LNS_set_column = 5, |
DW_LNS_negate_stmt = 6, |
DW_LNS_set_basic_block = 7, |
DW_LNS_const_add_pc = 8, |
DW_LNS_fixed_advance_pc = 9, |
/* DWARF 3. */ |
DW_LNS_set_prologue_end = 10, |
DW_LNS_set_epilogue_begin = 11, |
DW_LNS_set_isa = 12 |
}; |
|
/* Line number extended opcodes. */ |
enum dwarf_line_number_x_ops |
{ |
DW_LNE_end_sequence = 1, |
DW_LNE_set_address = 2, |
DW_LNE_define_file = 3, |
DW_LNE_set_discriminator = 4, |
/* HP extensions. */ |
DW_LNE_HP_negate_is_UV_update = 0x11, |
DW_LNE_HP_push_context = 0x12, |
DW_LNE_HP_pop_context = 0x13, |
DW_LNE_HP_set_file_line_column = 0x14, |
DW_LNE_HP_set_routine_name = 0x15, |
DW_LNE_HP_set_sequence = 0x16, |
DW_LNE_HP_negate_post_semantics = 0x17, |
DW_LNE_HP_negate_function_exit = 0x18, |
DW_LNE_HP_negate_front_end_logical = 0x19, |
DW_LNE_HP_define_proc = 0x20, |
DW_LNE_HP_source_file_correlation = 0x80, |
|
DW_LNE_lo_user = 0x80, |
DW_LNE_hi_user = 0xff |
}; |
|
/* Sub-opcodes for DW_LNE_HP_source_file_correlation. */ |
enum dwarf_line_number_hp_sfc_ops |
{ |
DW_LNE_HP_SFC_formfeed = 1, |
DW_LNE_HP_SFC_set_listing_line = 2, |
DW_LNE_HP_SFC_associate = 3 |
}; |
|
/* Call frame information. */ |
enum dwarf_call_frame_info |
{ |
DW_CFA_advance_loc = 0x40, |
DW_CFA_offset = 0x80, |
DW_CFA_restore = 0xc0, |
DW_CFA_nop = 0x00, |
DW_CFA_set_loc = 0x01, |
DW_CFA_advance_loc1 = 0x02, |
DW_CFA_advance_loc2 = 0x03, |
DW_CFA_advance_loc4 = 0x04, |
DW_CFA_offset_extended = 0x05, |
DW_CFA_restore_extended = 0x06, |
DW_CFA_undefined = 0x07, |
DW_CFA_same_value = 0x08, |
DW_CFA_register = 0x09, |
DW_CFA_remember_state = 0x0a, |
DW_CFA_restore_state = 0x0b, |
DW_CFA_def_cfa = 0x0c, |
DW_CFA_def_cfa_register = 0x0d, |
DW_CFA_def_cfa_offset = 0x0e, |
/* DWARF 3. */ |
DW_CFA_def_cfa_expression = 0x0f, |
DW_CFA_expression = 0x10, |
DW_CFA_offset_extended_sf = 0x11, |
DW_CFA_def_cfa_sf = 0x12, |
DW_CFA_def_cfa_offset_sf = 0x13, |
DW_CFA_val_offset = 0x14, |
DW_CFA_val_offset_sf = 0x15, |
DW_CFA_val_expression = 0x16, |
|
DW_CFA_lo_user = 0x1c, |
DW_CFA_hi_user = 0x3f, |
|
/* SGI/MIPS specific. */ |
DW_CFA_MIPS_advance_loc8 = 0x1d, |
/* GNU extensions. */ |
DW_CFA_GNU_window_save = 0x2d, |
DW_CFA_GNU_args_size = 0x2e, |
DW_CFA_GNU_negative_offset_extended = 0x2f |
}; |
|
#define DW_CIE_ID 0xffffffff |
#define DW64_CIE_ID 0xffffffffffffffffULL |
#define DW_CIE_VERSION 1 |
|
#define DW_CFA_extended 0 |
|
#define DW_CHILDREN_no 0x00 |
#define DW_CHILDREN_yes 0x01 |
|
#define DW_ADDR_none 0 |
|
/* Source language names and codes. */ |
enum dwarf_source_language |
{ |
DW_LANG_C89 = 0x0001, |
DW_LANG_C = 0x0002, |
DW_LANG_Ada83 = 0x0003, |
DW_LANG_C_plus_plus = 0x0004, |
DW_LANG_Cobol74 = 0x0005, |
DW_LANG_Cobol85 = 0x0006, |
DW_LANG_Fortran77 = 0x0007, |
DW_LANG_Fortran90 = 0x0008, |
DW_LANG_Pascal83 = 0x0009, |
DW_LANG_Modula2 = 0x000a, |
/* DWARF 3. */ |
DW_LANG_Java = 0x000b, |
DW_LANG_C99 = 0x000c, |
DW_LANG_Ada95 = 0x000d, |
DW_LANG_Fortran95 = 0x000e, |
DW_LANG_PLI = 0x000f, |
DW_LANG_ObjC = 0x0010, |
DW_LANG_ObjC_plus_plus = 0x0011, |
DW_LANG_UPC = 0x0012, |
DW_LANG_D = 0x0013, |
/* DWARF 4. */ |
DW_LANG_Python = 0x0014, |
/* DWARF 5. */ |
DW_LANG_Go = 0x0016, |
|
DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */ |
DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */ |
|
/* MIPS. */ |
DW_LANG_Mips_Assembler = 0x8001, |
/* UPC. */ |
DW_LANG_Upc = 0x8765, |
/* HP extensions. */ |
DW_LANG_HP_Bliss = 0x8003, |
DW_LANG_HP_Basic91 = 0x8004, |
DW_LANG_HP_Pascal91 = 0x8005, |
DW_LANG_HP_IMacro = 0x8006, |
DW_LANG_HP_Assembler = 0x8007 |
}; |
|
/* Names and codes for macro information. */ |
enum dwarf_macinfo_record_type |
{ |
DW_MACINFO_define = 1, |
DW_MACINFO_undef = 2, |
DW_MACINFO_start_file = 3, |
DW_MACINFO_end_file = 4, |
DW_MACINFO_vendor_ext = 255 |
}; |
|
/* Names and codes for new style macro information. */ |
enum dwarf_macro_record_type |
{ |
DW_MACRO_GNU_define = 1, |
DW_MACRO_GNU_undef = 2, |
DW_MACRO_GNU_start_file = 3, |
DW_MACRO_GNU_end_file = 4, |
DW_MACRO_GNU_define_indirect = 5, |
DW_MACRO_GNU_undef_indirect = 6, |
DW_MACRO_GNU_transparent_include = 7, |
DW_MACRO_GNU_lo_user = 0xe0, |
DW_MACRO_GNU_hi_user = 0xff |
}; |
|
/* @@@ For use with GNU frame unwind information. */ |
|
#define DW_EH_PE_absptr 0x00 |
#define DW_EH_PE_omit 0xff |
|
#define DW_EH_PE_uleb128 0x01 |
#define DW_EH_PE_udata2 0x02 |
#define DW_EH_PE_udata4 0x03 |
#define DW_EH_PE_udata8 0x04 |
#define DW_EH_PE_sleb128 0x09 |
#define DW_EH_PE_sdata2 0x0A |
#define DW_EH_PE_sdata4 0x0B |
#define DW_EH_PE_sdata8 0x0C |
#define DW_EH_PE_signed 0x08 |
|
#define DW_EH_PE_pcrel 0x10 |
#define DW_EH_PE_textrel 0x20 |
#define DW_EH_PE_datarel 0x30 |
#define DW_EH_PE_funcrel 0x40 |
#define DW_EH_PE_aligned 0x50 |
|
#define DW_EH_PE_indirect 0x80 |
|
#endif /* _DWARF2_H */ |
/trunk/gnu-dev/or1k-gcc/include/md5.h
0,0 → 1,149
/* md5.h - Declaration of functions and data types used for MD5 sum |
computing library functions. |
Copyright 1995, 1996, 2000 Free Software Foundation, Inc. |
NOTE: The canonical source of this file is maintained with the GNU C |
Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. |
|
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 2, 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. */ |
|
#ifndef _MD5_H |
#define _MD5_H 1 |
|
#include <stdio.h> |
|
#if defined HAVE_LIMITS_H || _LIBC |
# include <limits.h> |
#endif |
|
#include "ansidecl.h" |
|
/* The following contortions are an attempt to use the C preprocessor |
to determine an unsigned integral type that is 32 bits wide. An |
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but |
doing that would require that the configure script compile and *run* |
the resulting executable. Locally running cross-compiled executables |
is usually not possible. */ |
|
#ifdef _LIBC |
# include <sys/types.h> |
typedef u_int32_t md5_uint32; |
typedef uintptr_t md5_uintptr; |
#else |
# define INT_MAX_32_BITS 2147483647 |
|
/* If UINT_MAX isn't defined, assume it's a 32-bit type. |
This should be valid for all systems GNU cares about because |
that doesn't include 16-bit systems, and only modern systems |
(that certainly have <limits.h>) have 64+-bit integral types. */ |
|
# ifndef INT_MAX |
# define INT_MAX INT_MAX_32_BITS |
# endif |
|
# if INT_MAX == INT_MAX_32_BITS |
typedef unsigned int md5_uint32; |
# else |
# if SHRT_MAX == INT_MAX_32_BITS |
typedef unsigned short md5_uint32; |
# else |
# if LONG_MAX == INT_MAX_32_BITS |
typedef unsigned long md5_uint32; |
# else |
/* The following line is intended to evoke an error. |
Using #error is not portable enough. */ |
"Cannot determine unsigned 32-bit data type." |
# endif |
# endif |
# endif |
/* We have to make a guess about the integer type equivalent in size |
to pointers which should always be correct. */ |
typedef unsigned long int md5_uintptr; |
#endif |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* Structure to save state of computation between the single steps. */ |
struct md5_ctx |
{ |
md5_uint32 A; |
md5_uint32 B; |
md5_uint32 C; |
md5_uint32 D; |
|
md5_uint32 total[2]; |
md5_uint32 buflen; |
char buffer[128] ATTRIBUTE_ALIGNED_ALIGNOF(md5_uint32); |
}; |
|
/* |
* The following three functions are build up the low level used in |
* the functions `md5_stream' and `md5_buffer'. |
*/ |
|
/* Initialize structure containing state of computation. |
(RFC 1321, 3.3: Step 3) */ |
extern void md5_init_ctx (struct md5_ctx *ctx); |
|
/* Starting with the result of former calls of this function (or the |
initialization function update the context for the next LEN bytes |
starting at BUFFER. |
It is necessary that LEN is a multiple of 64!!! */ |
extern void md5_process_block (const void *buffer, size_t len, |
struct md5_ctx *ctx); |
|
/* Starting with the result of former calls of this function (or the |
initialization function update the context for the next LEN bytes |
starting at BUFFER. |
It is NOT required that LEN is a multiple of 64. */ |
extern void md5_process_bytes (const void *buffer, size_t len, |
struct md5_ctx *ctx); |
|
/* Process the remaining bytes in the buffer and put result from CTX |
in first 16 bytes following RESBUF. The result is always in little |
endian byte order, so that a byte-wise output yields to the wanted |
ASCII representation of the message digest. |
|
IMPORTANT: On some systems it is required that RESBUF is correctly |
aligned for a 32 bits value. */ |
extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf); |
|
|
/* Put result from CTX in first 16 bytes following RESBUF. The result is |
always in little endian byte order, so that a byte-wise output yields |
to the wanted ASCII representation of the message digest. |
|
IMPORTANT: On some systems it is required that RESBUF is correctly |
aligned for a 32 bits value. */ |
extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf); |
|
|
/* Compute MD5 message digest for bytes read from STREAM. The |
resulting message digest number will be written into the 16 bytes |
beginning at RESBLOCK. */ |
extern int md5_stream (FILE *stream, void *resblock); |
|
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The |
result is always in little endian byte order, so that a byte-wise |
output yields to the wanted ASCII representation of the message |
digest. */ |
extern void *md5_buffer (const char *buffer, size_t len, void *resblock); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/trunk/gnu-dev/or1k-gcc/include/objalloc.h
0,0 → 1,115
/* objalloc.h -- routines to allocate memory for objects |
Copyright 1997, 2001 Free Software Foundation, Inc. |
Written by Ian Lance Taylor, Cygnus Solutions. |
|
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 2, 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, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef OBJALLOC_H |
#define OBJALLOC_H |
|
#include "ansidecl.h" |
|
/* These routines allocate space for an object. The assumption is |
that the object will want to allocate space as it goes along, but |
will never want to free any particular block. There is a function |
to free a block, which also frees all more recently allocated |
blocks. There is also a function to free all the allocated space. |
|
This is essentially a specialization of obstacks. The main |
difference is that a block may not be allocated a bit at a time. |
Another difference is that these routines are always built on top |
of malloc, and always pass an malloc failure back to the caller, |
unlike more recent versions of obstacks. */ |
|
/* This is what an objalloc structure looks like. Callers should not |
refer to these fields, nor should they allocate these structure |
themselves. Instead, they should only create them via |
objalloc_init, and only access them via the functions and macros |
listed below. The structure is only defined here so that we can |
access it via macros. */ |
|
struct objalloc |
{ |
char *current_ptr; |
unsigned int current_space; |
void *chunks; |
}; |
|
/* Work out the required alignment. */ |
|
struct objalloc_align { char x; double d; }; |
|
#if defined (__STDC__) && __STDC__ |
#ifndef offsetof |
#include <stddef.h> |
#endif |
#endif |
#ifndef offsetof |
#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER) |
#endif |
#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d) |
|
/* Create an objalloc structure. Returns NULL if malloc fails. */ |
|
extern struct objalloc *objalloc_create (void); |
|
/* Allocate space from an objalloc structure. Returns NULL if malloc |
fails. */ |
|
extern void *_objalloc_alloc (struct objalloc *, unsigned long); |
|
/* The macro version of objalloc_alloc. We only define this if using |
gcc, because otherwise we would have to evaluate the arguments |
multiple times, or use a temporary field as obstack.h does. */ |
|
#if defined (__GNUC__) && defined (__STDC__) && __STDC__ |
|
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and |
does not implement __extension__. But that compiler doesn't define |
__GNUC_MINOR__. */ |
#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) |
#define __extension__ |
#endif |
|
#define objalloc_alloc(o, l) \ |
__extension__ \ |
({ struct objalloc *__o = (o); \ |
unsigned long __len = (l); \ |
if (__len == 0) \ |
__len = 1; \ |
__len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \ |
(__len <= __o->current_space \ |
? (__o->current_ptr += __len, \ |
__o->current_space -= __len, \ |
(void *) (__o->current_ptr - __len)) \ |
: _objalloc_alloc (__o, __len)); }) |
|
#else /* ! __GNUC__ */ |
|
#define objalloc_alloc(o, l) _objalloc_alloc ((o), (l)) |
|
#endif /* ! __GNUC__ */ |
|
/* Free an entire objalloc structure. */ |
|
extern void objalloc_free (struct objalloc *); |
|
/* Free a block allocated by objalloc_alloc. This also frees all more |
recently allocated blocks. */ |
|
extern void objalloc_free_block (struct objalloc *, void *); |
|
#endif /* OBJALLOC_H */ |
/trunk/gnu-dev/or1k-gcc/include/splay-tree.h
0,0 → 1,168
/* A splay-tree datatype. |
Copyright 1998, 1999, 2000, 2002, 2005, 2007, 2009, 2010 |
Free Software Foundation, Inc. |
Contributed by Mark Mitchell (mark@markmitchell.com). |
|
This file is part of GCC. |
|
GCC 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 2, or (at your option) |
any later version. |
|
GCC 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 GCC; see the file COPYING. If not, write to |
the Free Software Foundation, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
/* For an easily readable description of splay-trees, see: |
|
Lewis, Harry R. and Denenberg, Larry. Data Structures and Their |
Algorithms. Harper-Collins, Inc. 1991. |
|
The major feature of splay trees is that all basic tree operations |
are amortized O(log n) time for a tree with n nodes. */ |
|
#ifndef _SPLAY_TREE_H |
#define _SPLAY_TREE_H |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
#include "ansidecl.h" |
|
#ifndef _WIN64 |
typedef unsigned long int libi_uhostptr_t; |
typedef long int libi_shostptr_t; |
#else |
#ifdef __GNUC__ |
__extension__ |
#endif |
typedef unsigned long long libi_uhostptr_t; |
#ifdef __GNUC__ |
__extension__ |
#endif |
typedef long long libi_shostptr_t; |
#endif |
|
#ifndef GTY |
#define GTY(X) |
#endif |
|
/* Use typedefs for the key and data types to facilitate changing |
these types, if necessary. These types should be sufficiently wide |
that any pointer or scalar can be cast to these types, and then |
cast back, without loss of precision. */ |
typedef libi_uhostptr_t splay_tree_key; |
typedef libi_uhostptr_t splay_tree_value; |
|
/* Forward declaration for a node in the tree. */ |
typedef struct splay_tree_node_s *splay_tree_node; |
|
/* The type of a function which compares two splay-tree keys. The |
function should return values as for qsort. */ |
typedef int (*splay_tree_compare_fn) (splay_tree_key, splay_tree_key); |
|
/* The type of a function used to deallocate any resources associated |
with the key. */ |
typedef void (*splay_tree_delete_key_fn) (splay_tree_key); |
|
/* The type of a function used to deallocate any resources associated |
with the value. */ |
typedef void (*splay_tree_delete_value_fn) (splay_tree_value); |
|
/* The type of a function used to iterate over the tree. */ |
typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*); |
|
/* The type of a function used to allocate memory for tree root and |
node structures. The first argument is the number of bytes needed; |
the second is a data pointer the splay tree functions pass through |
to the allocator. This function must never return zero. */ |
typedef void *(*splay_tree_allocate_fn) (int, void *); |
|
/* The type of a function used to free memory allocated using the |
corresponding splay_tree_allocate_fn. The first argument is the |
memory to be freed; the latter is a data pointer the splay tree |
functions pass through to the freer. */ |
typedef void (*splay_tree_deallocate_fn) (void *, void *); |
|
/* The nodes in the splay tree. */ |
struct GTY(()) splay_tree_node_s { |
/* The key. */ |
splay_tree_key GTY ((use_param1)) key; |
|
/* The value. */ |
splay_tree_value GTY ((use_param2)) value; |
|
/* The left and right children, respectively. */ |
splay_tree_node GTY ((use_params)) left; |
splay_tree_node GTY ((use_params)) right; |
}; |
|
/* The splay tree itself. */ |
struct GTY(()) splay_tree_s { |
/* The root of the tree. */ |
splay_tree_node GTY ((use_params)) root; |
|
/* The comparision function. */ |
splay_tree_compare_fn comp; |
|
/* The deallocate-key function. NULL if no cleanup is necessary. */ |
splay_tree_delete_key_fn delete_key; |
|
/* The deallocate-value function. NULL if no cleanup is necessary. */ |
splay_tree_delete_value_fn delete_value; |
|
/* Node allocate function. Takes allocate_data as a parameter. */ |
splay_tree_allocate_fn allocate; |
|
/* Free function for nodes and trees. Takes allocate_data as a parameter. */ |
splay_tree_deallocate_fn deallocate; |
|
/* Parameter for allocate/free functions. */ |
void * GTY((skip)) allocate_data; |
}; |
|
typedef struct splay_tree_s *splay_tree; |
|
extern splay_tree splay_tree_new (splay_tree_compare_fn, |
splay_tree_delete_key_fn, |
splay_tree_delete_value_fn); |
extern splay_tree splay_tree_new_with_allocator (splay_tree_compare_fn, |
splay_tree_delete_key_fn, |
splay_tree_delete_value_fn, |
splay_tree_allocate_fn, |
splay_tree_deallocate_fn, |
void *); |
extern splay_tree splay_tree_new_typed_alloc (splay_tree_compare_fn, |
splay_tree_delete_key_fn, |
splay_tree_delete_value_fn, |
splay_tree_allocate_fn, |
splay_tree_allocate_fn, |
splay_tree_deallocate_fn, |
void *); |
extern void splay_tree_delete (splay_tree); |
extern splay_tree_node splay_tree_insert (splay_tree, |
splay_tree_key, |
splay_tree_value); |
extern void splay_tree_remove (splay_tree, splay_tree_key); |
extern splay_tree_node splay_tree_lookup (splay_tree, splay_tree_key); |
extern splay_tree_node splay_tree_predecessor (splay_tree, splay_tree_key); |
extern splay_tree_node splay_tree_successor (splay_tree, splay_tree_key); |
extern splay_tree_node splay_tree_max (splay_tree); |
extern splay_tree_node splay_tree_min (splay_tree); |
extern int splay_tree_foreach (splay_tree, splay_tree_foreach_fn, void*); |
extern int splay_tree_compare_ints (splay_tree_key, splay_tree_key); |
extern int splay_tree_compare_pointers (splay_tree_key, splay_tree_key); |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* _SPLAY_TREE_H */ |
/trunk/gnu-dev/or1k-gcc/include/obstack.h
0,0 → 1,545
/* obstack.h - object stack macros |
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, |
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 |
Free Software Foundation, Inc. |
|
|
NOTE: The canonical source of this file is maintained with the GNU C Library. |
Bugs can be reported to bug-glibc@gnu.org. |
|
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 2, 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. */ |
|
/* Summary: |
|
All the apparent functions defined here are macros. The idea |
is that you would use these pre-tested macros to solve a |
very specific set of problems, and they would run fast. |
Caution: no side-effects in arguments please!! They may be |
evaluated MANY times!! |
|
These macros operate a stack of objects. Each object starts life |
small, and may grow to maturity. (Consider building a word syllable |
by syllable.) An object can move while it is growing. Once it has |
been "finished" it never changes address again. So the "top of the |
stack" is typically an immature growing object, while the rest of the |
stack is of mature, fixed size and fixed address objects. |
|
These routines grab large chunks of memory, using a function you |
supply, called `obstack_chunk_alloc'. On occasion, they free chunks, |
by calling `obstack_chunk_free'. You must define them and declare |
them before using any obstack macros. |
|
Each independent stack is represented by a `struct obstack'. |
Each of the obstack macros expects a pointer to such a structure |
as the first argument. |
|
One motivation for this package is the problem of growing char strings |
in symbol tables. Unless you are "fascist pig with a read-only mind" |
--Gosper's immortal quote from HAKMEM item 154, out of context--you |
would not like to put any arbitrary upper limit on the length of your |
symbols. |
|
In practice this often means you will build many short symbols and a |
few long symbols. At the time you are reading a symbol you don't know |
how long it is. One traditional method is to read a symbol into a |
buffer, realloc()ating the buffer every time you try to read a symbol |
that is longer than the buffer. This is beaut, but you still will |
want to copy the symbol from the buffer to a more permanent |
symbol-table entry say about half the time. |
|
With obstacks, you can work differently. Use one obstack for all symbol |
names. As you read a symbol, grow the name in the obstack gradually. |
When the name is complete, finalize it. Then, if the symbol exists already, |
free the newly read name. |
|
The way we do this is to take a large chunk, allocating memory from |
low addresses. When you want to build a symbol in the chunk you just |
add chars above the current "high water mark" in the chunk. When you |
have finished adding chars, because you got to the end of the symbol, |
you know how long the chars are, and you can create a new object. |
Mostly the chars will not burst over the highest address of the chunk, |
because you would typically expect a chunk to be (say) 100 times as |
long as an average object. |
|
In case that isn't clear, when we have enough chars to make up |
the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) |
so we just point to it where it lies. No moving of chars is |
needed and this is the second win: potentially long strings need |
never be explicitly shuffled. Once an object is formed, it does not |
change its address during its lifetime. |
|
When the chars burst over a chunk boundary, we allocate a larger |
chunk, and then copy the partly formed object from the end of the old |
chunk to the beginning of the new larger chunk. We then carry on |
accreting characters to the end of the object as we normally would. |
|
A special macro is provided to add a single char at a time to a |
growing object. This allows the use of register variables, which |
break the ordinary 'growth' macro. |
|
Summary: |
We allocate large chunks. |
We carve out one object at a time from the current chunk. |
Once carved, an object never moves. |
We are free to append data of any size to the currently |
growing object. |
Exactly one object is growing in an obstack at any one time. |
You can run one obstack per control block. |
You may have as many control blocks as you dare. |
Because of the way we do it, you can `unwind' an obstack |
back to a previous state. (You may remove objects much |
as you would with a stack.) |
*/ |
|
|
/* Don't do the contents of this file more than once. */ |
|
#ifndef _OBSTACK_H |
#define _OBSTACK_H 1 |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* We use subtraction of (char *) 0 instead of casting to int |
because on word-addressable machines a simple cast to int |
may ignore the byte-within-word field of the pointer. */ |
|
#ifndef __PTR_TO_INT |
# define __PTR_TO_INT(P) ((P) - (char *) 0) |
#endif |
|
#ifndef __INT_TO_PTR |
# define __INT_TO_PTR(P) ((P) + (char *) 0) |
#endif |
|
/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is |
defined, as with GNU C, use that; that way we don't pollute the |
namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is |
available, include it and use ptrdiff_t. In traditional C, long is |
the best that we can do. */ |
|
#ifdef __PTRDIFF_TYPE__ |
# define PTR_INT_TYPE __PTRDIFF_TYPE__ |
#else |
# ifdef HAVE_STDDEF_H |
# include <stddef.h> |
# define PTR_INT_TYPE ptrdiff_t |
# else |
# define PTR_INT_TYPE long |
# endif |
#endif |
|
#if defined _LIBC || defined HAVE_STRING_H |
# include <string.h> |
# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) |
#else |
# ifdef memcpy |
# define _obstack_memcpy(To, From, N) memcpy ((To), (char *)(From), (N)) |
# else |
# define _obstack_memcpy(To, From, N) bcopy ((char *)(From), (To), (N)) |
# endif |
#endif |
|
struct _obstack_chunk /* Lives at front of each chunk. */ |
{ |
char *limit; /* 1 past end of this chunk */ |
struct _obstack_chunk *prev; /* address of prior chunk or NULL */ |
char contents[4]; /* objects begin here */ |
}; |
|
struct obstack /* control current object in current chunk */ |
{ |
long chunk_size; /* preferred size to allocate chunks in */ |
struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ |
char *object_base; /* address of object we are building */ |
char *next_free; /* where to add next char to current object */ |
char *chunk_limit; /* address of char after current chunk */ |
PTR_INT_TYPE temp; /* Temporary for some macros. */ |
int alignment_mask; /* Mask of alignment for each object. */ |
/* These prototypes vary based on `use_extra_arg', and we use |
casts to the prototypeless function type in all assignments, |
but having prototypes here quiets -Wstrict-prototypes. */ |
struct _obstack_chunk *(*chunkfun) (void *, long); |
void (*freefun) (void *, struct _obstack_chunk *); |
void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ |
unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */ |
unsigned maybe_empty_object:1;/* There is a possibility that the current |
chunk contains a zero-length object. This |
prevents freeing the chunk if we allocate |
a bigger chunk to replace it. */ |
unsigned alloc_failed:1; /* No longer used, as we now call the failed |
handler on error, but retained for binary |
compatibility. */ |
}; |
|
/* Declare the external functions we use; they are in obstack.c. */ |
|
extern void _obstack_newchunk (struct obstack *, int); |
extern void _obstack_free (struct obstack *, void *); |
extern int _obstack_begin (struct obstack *, int, int, |
void *(*) (long), void (*) (void *)); |
extern int _obstack_begin_1 (struct obstack *, int, int, |
void *(*) (void *, long), |
void (*) (void *, void *), void *); |
extern int _obstack_memory_used (struct obstack *); |
|
/* Do the function-declarations after the structs |
but before defining the macros. */ |
|
void obstack_init (struct obstack *obstack); |
|
void * obstack_alloc (struct obstack *obstack, int size); |
|
void * obstack_copy (struct obstack *obstack, void *address, int size); |
void * obstack_copy0 (struct obstack *obstack, void *address, int size); |
|
void obstack_free (struct obstack *obstack, void *block); |
|
void obstack_blank (struct obstack *obstack, int size); |
|
void obstack_grow (struct obstack *obstack, void *data, int size); |
void obstack_grow0 (struct obstack *obstack, void *data, int size); |
|
void obstack_1grow (struct obstack *obstack, int data_char); |
void obstack_ptr_grow (struct obstack *obstack, void *data); |
void obstack_int_grow (struct obstack *obstack, int data); |
|
void * obstack_finish (struct obstack *obstack); |
|
int obstack_object_size (struct obstack *obstack); |
|
int obstack_room (struct obstack *obstack); |
void obstack_make_room (struct obstack *obstack, int size); |
void obstack_1grow_fast (struct obstack *obstack, int data_char); |
void obstack_ptr_grow_fast (struct obstack *obstack, void *data); |
void obstack_int_grow_fast (struct obstack *obstack, int data); |
void obstack_blank_fast (struct obstack *obstack, int size); |
|
void * obstack_base (struct obstack *obstack); |
void * obstack_next_free (struct obstack *obstack); |
int obstack_alignment_mask (struct obstack *obstack); |
int obstack_chunk_size (struct obstack *obstack); |
int obstack_memory_used (struct obstack *obstack); |
|
/* Error handler called when `obstack_chunk_alloc' failed to allocate |
more memory. This can be set to a user defined function. The |
default action is to print a message and abort. */ |
extern void (*obstack_alloc_failed_handler) (void); |
|
/* Exit value used when `print_and_abort' is used. */ |
extern int obstack_exit_failure; |
|
/* Pointer to beginning of object being allocated or to be allocated next. |
Note that this might not be the final address of the object |
because a new chunk might be needed to hold the final size. */ |
|
#define obstack_base(h) ((h)->object_base) |
|
/* Size for allocating ordinary chunks. */ |
|
#define obstack_chunk_size(h) ((h)->chunk_size) |
|
/* Pointer to next byte not yet allocated in current chunk. */ |
|
#define obstack_next_free(h) ((h)->next_free) |
|
/* Mask specifying low bits that should be clear in address of an object. */ |
|
#define obstack_alignment_mask(h) ((h)->alignment_mask) |
|
/* To prevent prototype warnings provide complete argument list in |
standard C version. */ |
# define obstack_init(h) \ |
_obstack_begin ((h), 0, 0, \ |
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) |
|
# define obstack_begin(h, size) \ |
_obstack_begin ((h), (size), 0, \ |
(void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) |
|
# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ |
_obstack_begin ((h), (size), (alignment), \ |
(void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun)) |
|
# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ |
_obstack_begin_1 ((h), (size), (alignment), \ |
(void *(*) (void *, long)) (chunkfun), \ |
(void (*) (void *, void *)) (freefun), (arg)) |
|
# define obstack_chunkfun(h, newchunkfun) \ |
((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) |
|
# define obstack_freefun(h, newfreefun) \ |
((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) |
|
#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar)) |
|
#define obstack_blank_fast(h,n) ((h)->next_free += (n)) |
|
#define obstack_memory_used(h) _obstack_memory_used (h) |
|
#if defined __GNUC__ && defined __STDC__ && __STDC__ |
/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and |
does not implement __extension__. But that compiler doesn't define |
__GNUC_MINOR__. */ |
# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) |
# define __extension__ |
# endif |
|
/* For GNU C, if not -traditional, |
we can define these macros to compute all args only once |
without using a global variable. |
Also, we can avoid using the `temp' slot, to make faster code. */ |
|
# define obstack_object_size(OBSTACK) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
(unsigned) (__o->next_free - __o->object_base); }) |
|
# define obstack_room(OBSTACK) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
(unsigned) (__o->chunk_limit - __o->next_free); }) |
|
# define obstack_make_room(OBSTACK,length) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
int __len = (length); \ |
if (__o->chunk_limit - __o->next_free < __len) \ |
_obstack_newchunk (__o, __len); \ |
(void) 0; }) |
|
# define obstack_empty_p(OBSTACK) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
(__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); }) |
|
# define obstack_grow(OBSTACK,where,length) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
int __len = (length); \ |
if (__o->next_free + __len > __o->chunk_limit) \ |
_obstack_newchunk (__o, __len); \ |
_obstack_memcpy (__o->next_free, (where), __len); \ |
__o->next_free += __len; \ |
(void) 0; }) |
|
# define obstack_grow0(OBSTACK,where,length) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
int __len = (length); \ |
if (__o->next_free + __len + 1 > __o->chunk_limit) \ |
_obstack_newchunk (__o, __len + 1); \ |
_obstack_memcpy (__o->next_free, (where), __len); \ |
__o->next_free += __len; \ |
*(__o->next_free)++ = 0; \ |
(void) 0; }) |
|
# define obstack_1grow(OBSTACK,datum) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
if (__o->next_free + 1 > __o->chunk_limit) \ |
_obstack_newchunk (__o, 1); \ |
obstack_1grow_fast (__o, datum); \ |
(void) 0; }) |
|
/* These assume that the obstack alignment is good enough for pointers or ints, |
and that the data added so far to the current object |
shares that much alignment. */ |
|
# define obstack_ptr_grow(OBSTACK,datum) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \ |
_obstack_newchunk (__o, sizeof (void *)); \ |
obstack_ptr_grow_fast (__o, datum); }) |
|
# define obstack_int_grow(OBSTACK,datum) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
if (__o->next_free + sizeof (int) > __o->chunk_limit) \ |
_obstack_newchunk (__o, sizeof (int)); \ |
obstack_int_grow_fast (__o, datum); }) |
|
# define obstack_ptr_grow_fast(OBSTACK,aptr) \ |
__extension__ \ |
({ struct obstack *__o1 = (OBSTACK); \ |
*(const void **) __o1->next_free = (aptr); \ |
__o1->next_free += sizeof (const void *); \ |
(void) 0; }) |
|
# define obstack_int_grow_fast(OBSTACK,aint) \ |
__extension__ \ |
({ struct obstack *__o1 = (OBSTACK); \ |
*(int *) __o1->next_free = (aint); \ |
__o1->next_free += sizeof (int); \ |
(void) 0; }) |
|
# define obstack_blank(OBSTACK,length) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
int __len = (length); \ |
if (__o->chunk_limit - __o->next_free < __len) \ |
_obstack_newchunk (__o, __len); \ |
obstack_blank_fast (__o, __len); \ |
(void) 0; }) |
|
# define obstack_alloc(OBSTACK,length) \ |
__extension__ \ |
({ struct obstack *__h = (OBSTACK); \ |
obstack_blank (__h, (length)); \ |
obstack_finish (__h); }) |
|
# define obstack_copy(OBSTACK,where,length) \ |
__extension__ \ |
({ struct obstack *__h = (OBSTACK); \ |
obstack_grow (__h, (where), (length)); \ |
obstack_finish (__h); }) |
|
# define obstack_copy0(OBSTACK,where,length) \ |
__extension__ \ |
({ struct obstack *__h = (OBSTACK); \ |
obstack_grow0 (__h, (where), (length)); \ |
obstack_finish (__h); }) |
|
/* The local variable is named __o1 to avoid a name conflict |
when obstack_blank is called. */ |
# define obstack_finish(OBSTACK) \ |
__extension__ \ |
({ struct obstack *__o1 = (OBSTACK); \ |
void *value; \ |
value = (void *) __o1->object_base; \ |
if (__o1->next_free == value) \ |
__o1->maybe_empty_object = 1; \ |
__o1->next_free \ |
= __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ |
& ~ (__o1->alignment_mask)); \ |
if (__o1->next_free - (char *)__o1->chunk \ |
> __o1->chunk_limit - (char *)__o1->chunk) \ |
__o1->next_free = __o1->chunk_limit; \ |
__o1->object_base = __o1->next_free; \ |
value; }) |
|
# define obstack_free(OBSTACK, OBJ) \ |
__extension__ \ |
({ struct obstack *__o = (OBSTACK); \ |
void *__obj = (void *) (OBJ); \ |
if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \ |
__o->next_free = __o->object_base = (char *) __obj; \ |
else (obstack_free) (__o, __obj); }) |
|
#else /* not __GNUC__ or not __STDC__ */ |
|
# define obstack_object_size(h) \ |
(unsigned) ((h)->next_free - (h)->object_base) |
|
# define obstack_room(h) \ |
(unsigned) ((h)->chunk_limit - (h)->next_free) |
|
# define obstack_empty_p(h) \ |
((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0) |
|
/* Note that the call to _obstack_newchunk is enclosed in (..., 0) |
so that we can avoid having void expressions |
in the arms of the conditional expression. |
Casting the third operand to void was tried before, |
but some compilers won't accept it. */ |
|
# define obstack_make_room(h,length) \ |
( (h)->temp = (length), \ |
(((h)->next_free + (h)->temp > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), (h)->temp), 0) : 0)) |
|
# define obstack_grow(h,where,length) \ |
( (h)->temp = (length), \ |
(((h)->next_free + (h)->temp > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ |
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \ |
(h)->next_free += (h)->temp) |
|
# define obstack_grow0(h,where,length) \ |
( (h)->temp = (length), \ |
(((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \ |
_obstack_memcpy ((h)->next_free, (where), (h)->temp), \ |
(h)->next_free += (h)->temp, \ |
*((h)->next_free)++ = 0) |
|
# define obstack_1grow(h,datum) \ |
( (((h)->next_free + 1 > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), 1), 0) : 0), \ |
obstack_1grow_fast (h, datum)) |
|
# define obstack_ptr_grow(h,datum) \ |
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ |
obstack_ptr_grow_fast (h, datum)) |
|
# define obstack_int_grow(h,datum) \ |
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ |
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ |
obstack_int_grow_fast (h, datum)) |
|
# define obstack_ptr_grow_fast(h,aptr) \ |
(((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr)) |
|
# define obstack_int_grow_fast(h,aint) \ |
(((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr)) |
|
# define obstack_blank(h,length) \ |
( (h)->temp = (length), \ |
(((h)->chunk_limit - (h)->next_free < (h)->temp) \ |
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ |
obstack_blank_fast (h, (h)->temp)) |
|
# define obstack_alloc(h,length) \ |
(obstack_blank ((h), (length)), obstack_finish ((h))) |
|
# define obstack_copy(h,where,length) \ |
(obstack_grow ((h), (where), (length)), obstack_finish ((h))) |
|
# define obstack_copy0(h,where,length) \ |
(obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) |
|
# define obstack_finish(h) \ |
( ((h)->next_free == (h)->object_base \ |
? (((h)->maybe_empty_object = 1), 0) \ |
: 0), \ |
(h)->temp = __PTR_TO_INT ((h)->object_base), \ |
(h)->next_free \ |
= __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \ |
& ~ ((h)->alignment_mask)), \ |
(((h)->next_free - (char *) (h)->chunk \ |
> (h)->chunk_limit - (char *) (h)->chunk) \ |
? ((h)->next_free = (h)->chunk_limit) : 0), \ |
(h)->object_base = (h)->next_free, \ |
(void *) __INT_TO_PTR ((h)->temp)) |
|
# define obstack_free(h,obj) \ |
( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ |
(((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\ |
? (((h)->next_free = (h)->object_base \ |
= (h)->temp + (char *) (h)->chunk), 0) \ |
: ((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0))) |
|
#endif /* not __GNUC__ or not __STDC__ */ |
|
#ifdef __cplusplus |
} /* C++ */ |
#endif |
|
#endif /* obstack.h */ |
/trunk/gnu-dev/or1k-gcc/include/sort.h
0,0 → 1,48
/* Sorting algorithms. |
Copyright (C) 2000, 2002 Free Software Foundation, Inc. |
Contributed by Mark Mitchell <mark@codesourcery.com>. |
|
This file is part of GCC. |
|
GCC 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 2, or (at your option) |
any later version. |
|
GCC 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 GCC; see the file COPYING. If not, write to |
the Free Software Foundation, 51 Franklin Street - Fifth Floor, |
Boston, MA 02110-1301, USA. */ |
|
#ifndef SORT_H |
#define SORT_H |
|
#include <sys/types.h> /* For size_t */ |
#ifdef __STDC__ |
#include <stddef.h> |
#endif /* __STDC__ */ |
|
#ifdef __cplusplus |
extern "C" { |
#endif /* __cplusplus */ |
|
#include "ansidecl.h" |
|
/* Sort an array of pointers. */ |
|
extern void sort_pointers (size_t, void **, void **); |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* SORT_H */ |
|
|
|
|