import gdb-1999-06-21 snapshot
[external/binutils.git] / ld / ldexp.h
index f7e1321..b8e8ddf 100644 (file)
@@ -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,
    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,28 +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));
+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