gdb/
[binutils-gdb.git] / elfcpp / sparc.h
index b403d58e446b9f57cf1fc64927464e0f958e813d..6a9193b355cbff8fa4c54041f9886abe4dd2eed7 100644 (file)
@@ -1,6 +1,6 @@
 // sparc.h -- ELF definitions specific to EM_SPARC  -*- C++ -*-
 
-// Copyright 2008, Free Software Foundation, Inc.
+// Copyright 2008, 2010 Free Software Foundation, Inc.
 // Written by David S. Miller <davem@davemloft.net>.
 
 // This file is part of elfcpp.
@@ -141,6 +141,8 @@ enum
   R_SPARC_SIZE32 = 86,        // size of symbol, 32-bit
   R_SPARC_SIZE64 = 87,        // size of symbol, 64-bit
 
+  R_SPARC_IRELATIVE = 249,    // Adjust indirectly by program base
+
   // GNU vtable garbage collection extensions.
   R_SPARC_GNU_VTINHERIT = 250,
   R_SPARC_GNU_VTENTRY = 251,
@@ -148,6 +150,22 @@ enum
   R_SPARC_REV32 = 252,
 };
 
+// e_flags values defined for sparc
+enum
+{
+  EF_SPARC_EXT_MASK = 0xffff00,    // reserved for vendor extensions
+  EF_SPARC_32PLUS_MASK = 0xffff00, // bits indicating V8+ type
+  EF_SPARC_32PLUS = 0x000100,      // generic V8+ features
+  EF_SPARC_SUN_US1 = 0x000200,     // Sun UltraSPARC-I extensions
+  EF_SPARC_HAL_R1 = 0x000400,      // HAL R1 extensions
+  EF_SPARC_SUN_US3 = 0x000800,     // Sun UltraSPARC-III extensions
+  EF_SPARC_LEDATA = 0x800000,      // little endian data
+  EF_SPARCV9_MM = 0x3,             // memory model mask
+  EF_SPARCV9_TSO = 0x0,            // total store ordering
+  EF_SPARCV9_PSO = 0x1,            // partial store ordering
+  EF_SPARCV9_RMO = 0x2,            // relaxed store ordering
+};
+
 } // End namespace elfcpp.
 
 #endif // !defined(ELFCPP_SPARC_H)