1//===- HexagonGNUInfo.h ---------------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef TARGET_HEXAGON_HEXAGONGNUINFO_H_
10#define TARGET_HEXAGON_HEXAGONGNUINFO_H_
11#include "mcld/Target/GNUInfo.h"
12#include "mcld/TargetOptions.h"
13
14#include <llvm/Support/ELF.h>
15
16namespace mcld {
17
18class HexagonGNUInfo : public GNUInfo {
19 public:
20  enum CPUType { V3 = 0x2, V4 = 0x3, V5 };
21
22 public:
23  explicit HexagonGNUInfo(const TargetOptions& pTargetOptions);
24
25  uint32_t machine() const { return llvm::ELF::EM_HEXAGON; }
26
27  uint64_t defaultTextSegmentAddr() const { return 0x0; }
28
29  /// flags - the value of ElfXX_Ehdr::e_flags
30  uint64_t flags() const;
31
32 private:
33  const TargetOptions& m_Options;
34};
35
36}  // namespace mcld
37
38#endif  // TARGET_HEXAGON_HEXAGONGNUINFO_H_
39