X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Fldexp.h;h=b8e8ddf6f82f4e48f0ad1cbd59abeb280d3d259f;hb=33275c22c0eebec8e2658eead8e6dda4fee33a50;hp=8211f44c17b14bac46b9e0f47ecae8b81ba7f55f;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldexp.h b/ld/ldexp.h index 8211f44c17..b8e8ddf6f8 100644 --- a/ld/ldexp.h +++ b/ld/ldexp.h @@ -1,12 +1,11 @@ /* ldexp.h - - - Copyright (C) 1991 Free Software Foundation, Inc. + Copyright 1991, 92, 93, 94, 95, 1998 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. GLD 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 1, or (at your option) + the Free Software Foundation; either version 2, or (at your option) any later version. GLD is distributed in the hope that it will be useful, @@ -15,18 +14,19 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with GLD; see the file COPYING. If not, write to - the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - + along with GLD; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ +#ifndef LDEXP_H +#define LDEXP_H /* The result of an expression tree */ typedef struct { bfd_vma value; struct lang_output_section_statement_struct *section; - boolean valid; + boolean valid_p; } etree_value_type; @@ -39,9 +39,12 @@ typedef struct etree_unary, etree_name, etree_assign, + etree_provide, etree_undef, etree_unspec, - etree_value } node_class; + etree_value, + etree_assert, + etree_rel } node_class; } node_type; @@ -62,7 +65,7 @@ typedef union etree_union } trinary; struct { node_type type; - char *dst; + CONST char *dst; union etree_union *src; } assign; @@ -72,56 +75,42 @@ typedef union etree_union } unary; struct { node_type type; - char *name; + CONST char *name; } name; struct { node_type type; bfd_vma value; } value; - + struct { + node_type type; + asection *section; + bfd_vma value; + } rel; + struct { + node_type type; + union etree_union *child; + const char *message; + } assert_s; } etree_type; -PROTO(etree_type *,exp_intop,(bfd_vma)); - -PROTO(etree_value_type, invalid,(void)); -PROTO(etree_value_type, exp_fold_tree,(etree_type *, struct - lang_output_section_statement_struct *, lang_phase_type, +etree_type *exp_intop PARAMS ((bfd_vma)); +etree_type *exp_relop PARAMS ((asection *, bfd_vma)); +etree_value_type invalid PARAMS ((void)); +etree_value_type exp_fold_tree PARAMS ((etree_type *, struct + lang_output_section_statement_struct *, + lang_phase_type, bfd_vma, bfd_vma *)); - -PROTO(etree_type *, exp_binop,(int, etree_type *, etree_type *)); -PROTO(etree_type *,exp_trinop,(int,etree_type *, etree_type *, etree_type *)); -PROTO(etree_type *,exp_unop,(int, etree_type *)); -PROTO(etree_type *,exp_nameop,(int, char *)); -PROTO(etree_type *,exp_assop,(int, char *, etree_type *)); -PROTO(void, exp_print_tree,(struct _iobuf *, etree_type *)); -PROTO(bfd_vma, exp_get_vma,(etree_type *, bfd_vma, char *, enum boolean)); -PROTO(int, exp_get_value_int,(etree_type *, int, char *, enum boolean)); -#if 0 -#define LONG 1000 -#define SHORT 1001 -#define BYTE 1002 -#define NAME 1003 -#define NEXT 1004 -#define DEFINED 1005 -#define SIZEOF 1006 -#define ADDR 1007 -#define ALIGN_K 1008 -#define BLOCK 1009 -#define SECTIONS 1010 -#define SIZEOF_HEADERS 1011 -#define MEMORY 1012 -#define DSECT 1013 -#define COPY 1014 -#define INFO 1015 -#define OVERLAY 1016 -#define TARGET_K 1017 -#define MAP 1018 -#define ENTRY 1019 -#define ORIGIN 1020 -#define LENGTH 1021 -#define NOLOAD 1022 -#define SEARCH_DIR 1023 -#define ALIGNMENT 1024 +etree_type *exp_binop PARAMS ((int, etree_type *, etree_type *)); +etree_type *exp_trinop PARAMS ((int,etree_type *, etree_type *, etree_type *)); +etree_type *exp_unop PARAMS ((int, etree_type *)); +etree_type *exp_nameop PARAMS ((int, CONST char *)); +etree_type *exp_assop PARAMS ((int, CONST char *, etree_type *)); +etree_type *exp_provide PARAMS ((const char *, etree_type *)); +etree_type *exp_assert PARAMS ((etree_type *, const char *)); +void exp_print_tree PARAMS ((etree_type *)); +bfd_vma exp_get_vma PARAMS ((etree_type *, bfd_vma, char *, lang_phase_type)); +int exp_get_value_int PARAMS ((etree_type *, int, char *,lang_phase_type)); +bfd_vma exp_get_abs_int PARAMS ((etree_type *, int, char *,lang_phase_type)); #endif