URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-old/gcc-4.2.2/include
- from Rev 154 to Rev 816
- ↔ Reverse comparison
Rev 154 → Rev 816
/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) |
|
|
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: |
/dyn-string.h
0,0 → 1,60
/* An abstract string datatype. |
Copyright (C) 1998, 1999, 2000, 2002, 2004 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. */ |
|
|
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); |
/fibheap.h
0,0 → 1,86
/* A Fibonacci heap datatype. |
Copyright 1998, 1999, 2000, 2001, 2002 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" |
|
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); |
|
#endif /* _FIBHEAP_H_ */ |
/symcat.h
0,0 → 1,49
/* Symbol concatenation utilities. |
|
Copyright (C) 1998, 2000 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 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 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) |
|
/* 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 */ |
/safe-ctype.h
0,0 → 1,119
/* <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 |
|
#ifdef isalpha |
#error "safe-ctype.h and ctype.h may not be used simultaneously" |
#endif |
|
/* 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] |
|
#endif /* SAFE_CTYPE_H */ |
/ChangeLog
0,0 → 1,325
2007-10-07 Release Manager |
|
* GCC 4.2.2 released. |
|
2007-07-19 Release Manager |
|
* GCC 4.2.1 released. |
|
2007-05-13 Release Manager |
|
* GCC 4.2.0 released. |
|
2007-05-04 Mark Mitchell <mark@codesourcery.com> |
|
* demangle.h: Change license to LGPL + exception. |
|
2007-02-09 Joseph S. Myers <joseph@codesourcery.com> |
|
* libiberty.h (pex_write_input): Remove prototype. |
|
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: |
/xregex.h
0,0 → 1,28
/* 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 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 */ |
/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 */ |
/filenames.h
0,0 → 1,51
/* 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 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 |
|
#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__) |
|
#ifndef HAVE_DOS_BASED_FILE_SYSTEM |
#define HAVE_DOS_BASED_FILE_SYSTEM 1 |
#endif |
|
#define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\') |
/* Note that 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(f) (IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':'))) |
#define FILENAME_CMP(s1, s2) strcasecmp(s1, s2) |
|
#else /* not DOSish */ |
|
#define IS_DIR_SEPARATOR(c) ((c) == '/') |
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0])) |
#define FILENAME_CMP(s1, s2) strcmp(s1, s2) |
|
#endif /* not DOSish */ |
|
#endif /* FILENAMES_H */ |
/xtensa-config.h
0,0 → 1,148
/* Xtensa configuration settings. |
Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
Contributed by Bob Wilson (bwilson@tensilica.com) 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 XCHAL_HAVE_MAC16 |
#define XCHAL_HAVE_MAC16 0 |
|
#undef XCHAL_HAVE_MUL16 |
#define XCHAL_HAVE_MUL16 0 |
|
#undef XCHAL_HAVE_MUL32 |
#define XCHAL_HAVE_MUL32 0 |
|
#undef XCHAL_HAVE_MUL32_HIGH |
#define XCHAL_HAVE_MUL32_HIGH 0 |
|
#undef XCHAL_HAVE_DIV32 |
#define XCHAL_HAVE_DIV32 0 |
|
#undef XCHAL_HAVE_NSA |
#define XCHAL_HAVE_NSA 1 |
|
#undef XCHAL_HAVE_MINMAX |
#define XCHAL_HAVE_MINMAX 0 |
|
#undef XCHAL_HAVE_SEXT |
#define XCHAL_HAVE_SEXT 0 |
|
#undef XCHAL_HAVE_LOOPS |
#define XCHAL_HAVE_LOOPS 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_WINDOWED |
#define XCHAL_HAVE_WINDOWED 1 |
|
#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 8192 |
|
#undef XCHAL_DCACHE_SIZE |
#define XCHAL_DCACHE_SIZE 8192 |
|
#undef XCHAL_ICACHE_LINESIZE |
#define XCHAL_ICACHE_LINESIZE 16 |
|
#undef XCHAL_DCACHE_LINESIZE |
#define XCHAL_DCACHE_LINESIZE 16 |
|
#undef XCHAL_ICACHE_LINEWIDTH |
#define XCHAL_ICACHE_LINEWIDTH 4 |
|
#undef XCHAL_DCACHE_LINEWIDTH |
#define XCHAL_DCACHE_LINEWIDTH 4 |
|
#undef XCHAL_DCACHE_IS_WRITEBACK |
#define XCHAL_DCACHE_IS_WRITEBACK 0 |
|
|
#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 4 |
|
|
#undef XCHAL_INST_FETCH_WIDTH |
#define XCHAL_INST_FETCH_WIDTH 4 |
|
#endif /* !XTENSA_CONFIG_H */ |
/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 */ |
/hashtab.h
0,0 → 1,206
/* An expandable hash tables datatype. |
Copyright (C) 1999, 2000, 2002, 2003, 2004 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 htab GTY(()) |
{ |
/* 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); |
|
/* 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 */ |
/demangle.h
0,0 → 1,545
/* Defs for interface to demanglers. |
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, |
2003, 2004, 2005, 2007 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 */ |
|
#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); |
|
/* V3 ABI demangling entry points, defined in cp-demangle.c. */ |
extern char* |
cplus_demangle_v3 (const char* mangled, int options); |
|
extern char* |
java_demangle_v3 (const char* mangled); |
|
|
enum gnu_v3_ctor_kinds { |
gnu_v3_complete_object_ctor = 1, |
gnu_v3_base_object_ctor, |
gnu_v3_complete_object_allocating_ctor |
}; |
|
/* 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 |
}; |
|
/* 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 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, |
/* 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, |
/* 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 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 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 |
}; |
|
/* 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_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_TEMPLATE_PARAM. */ |
struct |
{ |
/* Template parameter index. */ |
long number; |
} s_number; |
|
/* For other types. */ |
struct |
{ |
/* Left (or only) subtree. */ |
struct demangle_component *left; |
/* Right subtree. */ |
struct demangle_component *right; |
} s_binary; |
|
} 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); |
|
#ifdef __cplusplus |
} |
#endif /* __cplusplus */ |
|
#endif /* DEMANGLE_H */ |
/floatformat.h
0,0 → 1,140
/* IEEE floating point support declarations, for GDB, the GNU Debugger. |
Copyright 1991, 1994, 1995, 1997, 2000, 2003, 2005 |
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); |
}; |
|
/* floatformats for IEEE single and double, big and little endian. */ |
|
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; |
|
/* 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) */ |
/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 */ |
/ansidecl.h
0,0 → 1,371
/* ANSI and traditional C compatability macros |
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 |
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 |
|
/* 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 (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus)) |
/* 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 |
/* 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. */ |
#ifndef ATTRIBUTE_UNUSED_LABEL |
# if (!defined (__cplusplus) && GCC_VERSION >= 2093) |
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED |
# else |
# define ATTRIBUTE_UNUSED_LABEL |
# endif /* !__cplusplus && GNUC >= 2.93 */ |
#endif /* ATTRIBUTE_UNUSED_LABEL */ |
|
#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 */ |
|
/* 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 |
|
#endif /* ansidecl.h */ |
/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. |
/ternary.h
0,0 → 1,51
/* ternary.h - Ternary Search Trees |
Copyright 2001 Free Software Foundation, Inc. |
|
Contributed by Daniel Berlin (dan@cgsoftware.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, 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 TERNARY_H_ |
#define TERNARY_H_ |
/* Ternary search trees */ |
|
typedef struct ternary_node_def *ternary_tree; |
|
typedef struct ternary_node_def |
{ |
char splitchar; |
ternary_tree lokid; |
ternary_tree eqkid; |
ternary_tree hikid; |
} |
ternary_node; |
|
/* Insert string S into tree P, associating it with DATA. |
Return the data in the tree associated with the string if it's |
already there, and replace is 0. |
Otherwise, replaces if it it exists, inserts if it doesn't, and |
returns the data you passed in. */ |
void *ternary_insert (ternary_tree *p, const char *s, |
void *data, int replace); |
|
/* Delete the ternary search tree rooted at P. |
Does NOT delete the data you associated with the strings. */ |
void ternary_cleanup (ternary_tree p); |
|
/* Search the ternary tree for string S, returning the data associated |
with it if found. */ |
void *ternary_search (const ternary_node *p, const char *s); |
#endif |
/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: |
*/ |
/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 */ |
/md5.h
0,0 → 1,141
/* 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 |
|
/* 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); |
|
#endif |
/libiberty.h
0,0 → 1,621
/* Function declarations for libiberty. |
|
Copyright 2001, 2002, 2005 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 ***)); |
|
/* 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 *); |
|
/* 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; |
|
/* 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); |
|
|
/* 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 XNEW(T) ((T *) xmalloc (sizeof (T))) |
#define XCNEW(T) ((T *) xcalloc (1, sizeof (T))) |
#define XDELETE(P) free ((void*) (P)) |
|
/* Array allocators. */ |
|
#define XNEWVEC(T, N) ((T *) xmalloc (sizeof (T) * (N))) |
#define XCNEWVEC(T, N) ((T *) xcalloc ((N), sizeof (T))) |
#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 XNEWVAR(T, S) ((T *) xmalloc ((S))) |
#define XCNEWVAR(T, S) ((T *) xcalloc (1, (S))) |
#define XRESIZEVAR(T, P, S) ((T *) xrealloc ((P), (S))) |
|
/* Type-safe obstack allocator. */ |
|
#define XOBNEW(O, T) ((T *) obstack_alloc ((O), sizeof (T))) |
#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 |
|
/* 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); |
|
/* 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. */ |
|
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 |
|
#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) */ |
/splay-tree.h
0,0 → 1,144
/* A splay-tree datatype. |
Copyright 1998, 1999, 2000, 2002 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 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 unsigned long int splay_tree_key; |
typedef unsigned long int 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 splay_tree_node_s GTY(()) |
{ |
/* 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 splay_tree_s GTY(()) |
{ |
/* 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; |
|
/* Allocate/free functions, and a data pointer to pass to them. */ |
splay_tree_allocate_fn allocate; |
splay_tree_deallocate_fn deallocate; |
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 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 */ |
/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 |
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, \ |
__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)\ |
? (int) ((h)->next_free = (h)->object_base \ |
= (h)->temp + (char *) (h)->chunk) \ |
: (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0))) |
|
#endif /* not __GNUC__ or not __STDC__ */ |
|
#ifdef __cplusplus |
} /* C++ */ |
#endif |
|
#endif /* obstack.h */ |
/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 */ |
|
|
|
|